Turinys:

„Arduino“ir TM1638 LED ekrano moduliai: 11 žingsnių
„Arduino“ir TM1638 LED ekrano moduliai: 11 žingsnių

Video: „Arduino“ir TM1638 LED ekrano moduliai: 11 žingsnių

Video: „Arduino“ir TM1638 LED ekrano moduliai: 11 žingsnių
Video: Lesson 28: DHT11 Temperature Sensor with TM1637 Display| Arduino Step By Step Course 2024, Lapkritis
Anonim
„Arduino“ir TM1638 LED ekrano moduliai
„Arduino“ir TM1638 LED ekrano moduliai

Jei jums reikia greito ir paprasto būdo, kaip prie projekto pridėti vartotojo įvesties ir išvesties, šie ekrano moduliai yra įdomūs ir įdomūs.

Juose yra aštuoni 7 segmentų raudoni šviesos diodų skaitmenys, aštuoni raudoni/žali šviesos diodai ir aštuoni mygtukai vartotojo įvedimui. Įrenginiai taip pat gali būti sujungti grandinėlėmis, leidžiantys iki penkių vienu metu, o prie kiekvieno modulio pridedamas trumpas kabelis, taip pat keletas trumpų tarpiklių ir varžtų, kaip parodyta paveikslėlyje.

1 žingsnis:

Vaizdas
Vaizdas

Tarpikliai yra pakankamai ilgi, kad pakeltų PCB virš paviršiaus, tačiau, norint sumontuoti plokštes bet kurioje naudingoje vietoje, jums reikia ilgesnių. Taip pat galbūt norėsite pašalinti IDC lizdus, jei norite modulį pritvirtinti arti skydo paviršiaus. Tai būtų paprasta litavimo užduotis, nes jie yra lizdai per skyles.

2 žingsnis:

Vaizdas
Vaizdas

Plokštę valdo TM1638 IC.

Tai yra „Titan Micro Electronics“LED ir sąsajos tvarkyklės IC. Šiuos IC taip pat galite nusipirkti iš „PMD Way“. Norėdami gauti daugiau informacijos, taip pat galite atsisiųsti duomenų lapą.

3 veiksmas: pradžia - aparatinė įranga

Darbo pradžia - aparatinė įranga
Darbo pradžia - aparatinė įranga

Techninė įranga-prijungimas prie „Arduino“suderinamos plokštės (ar kitos MCU) yra gana paprasta. Smeigtukai rodomi galinėje PCB pusėje ir atitinka juostos kabelio tvirtinimą. Jei pažvelgsite į kabelio galą kaip tokį.

Viršutinė dešinė skylė yra vienas kaištis, o viršutinė kairioji-antrasis kaištis, apatinis dešinysis kaištis devyni ir apatinis kairysis kaištis-dešimt. Todėl spuogai yra šie:

  1. Vcc (5V)
  2. GND
  3. CLK
  4. DIO
  5. STB1
  6. STB2
  7. STB3
  8. STB4
  9. STB5
  10. neprisijungęs.

Naudojant „Arduino“, 1–4 kaiščiai yra minimalūs, reikalingi vienam moduliui naudoti. Kiekvienam papildomam moduliui reikės kito skaitmeninio kaiščio, prijungto prie STB2, STB3 ir tt Daugiau apie tai vėliau. Atminkite, kad kiekvienas modulis, nustatytas visu ryškumu su kiekvienu šviesos diodu, sunaudoja 127 mA, todėl būtų protinga naudoti išorinę energiją su daugiau nei vienu moduliu ir kitomis jungtimis su „Arduino“plokštėmis.

4 žingsnis: Darbo pradžia - programinė įranga

Programinė įranga - atsisiųskite ir įdiekite T1638 biblioteką iš čia. Ačiū ir pagarba rjbatista at gmail dot com už biblioteką. Inicijuoti eskizo modulius paprasta. Įtraukite biblioteką su:

#įtraukti

tada naudokite vieną iš šių būdų kiekvienam moduliui:

TM1638 modulis (x, y, z);

x yra „Arduino“skaitmeninis kaištis, prijungtas prie modulio kabelio kaiščio 4, y yra „Arduino“skaitmeninis kaištis, prijungtas prie modulio kabelio kaiščio 3, ir z yra „stroboskopas“. Taigi, jei prie 8, 7 ir 6 kaiščių būtų prijungtas vienas modulis su duomenimis, laikrodžiu ir švyturėliu, naudotumėte:

TM1638 modulis (8, 7, 6);

Jei turėtumėte du modulius, kurių pirmojo modulio švyturys būtų prijungtas prie „Arduino digital 6“, o antrojo modulio stroboskopas būtų prijungtas prie skaitmeninio 5, naudosite:

TM1638 modulis (8, 7, 6); TM1638 modulis (8, 7, 5);

ir tt daugiau modulių. Dabar valdykite ekraną …

5 žingsnis: dviejų spalvų šviesos diodai

Dviejų spalvų šviesos diodai
Dviejų spalvų šviesos diodai

Lengva valdyti raudonus/žalius šviesos diodus. Kaip nuoroda, jie yra sunumeruoti nuo nulio iki septynių iš kairės į dešinę. Norėdami įjungti arba išjungti vieną šviesos diodą, naudokite šiuos veiksmus:

module.setLED (TM1638_COLOR_RED, x); // nustatykite LED numerį x į redmodule.setLED (TM1638_COLOR_GREEN, x); // nustatykite LED numerį x į žalią modulį.setLED (TM1638_COLOR_RED+TM1638_COLOR_GREEN, 0); // nustatykite šviesos diodo skaičių x į raudoną ir žalią

Anksčiau pateikto metodo naudojimas gali būti paprastas, bet šiek tiek neefektyvus. Geresnis būdas yra įtraukti visus šviesos diodus į vieną teiginį. Norėdami tai padaryti, į ekraną siunčiame du baitus duomenų šešioliktainiais skaičiais. MSB (svarbiausias baitas) susideda iš aštuonių bitų, kurių kiekvienas yra vienas žalias šviesos diodas, įjungtas (1) arba išjungtas (0). LSB (mažiausiai reikšmingas baitas) reiškia raudonus šviesos diodus.

Paprastas būdas nustatyti šešioliktainę vertę valdyti šviesos diodus yra paprastas: vaizdas yra viena šviesos diodų eilutė - pirmosios aštuonios yra žalios, o antros aštuonios - raudonos. Kiekvieną skaitmenį nustatykite į 1, jei norite įjungti, o 0 - išjungti. Konvertuokite du dvejetainius skaičius į šešioliktainius ir naudokite šią funkciją:

module.setLEDs (0xgreenred);

Kur žalia yra šešioliktainis skaičius žalių šviesos diodų, o raudona - šešioliktainis skaičius raudonųjų šviesos diodų. Pavyzdžiui, norint įjungti pirmuosius tris šviesos diodus kaip raudonus, o paskutinius tris - žalius, dvejetainis vaizdas bus toks:

00000111 11100000, šešioliktainis yra E007.

Taigi mes naudosime:

module.setLEDs (0xE007);

kuris sukuria vaizdą, kaip parodyta aukščiau.

6 žingsnis: 7 segmentų ekranas

Norėdami išvalyti skaitinį ekraną (bet ne toliau esančius šviesos diodus), tiesiog naudokite:

module.clearDisplay ();

arba norėdami įjungti kiekvieną segmentą IR visus šviesos diodus, naudokite šiuos nurodymus

module.setupDisplay (tiesa, 7); // kur 7 yra intensyvumas (nuo 0 iki 7)

Norėdami rodyti dešimtainius skaičius, naudokite šią funkciją:

module.setDisplayToDecNumber (a, b, false);

kur a yra sveikasis skaičius, b yra dešimtainio taško padėtis (0 - nė vieno, 1 - 8, 2, 7, 4 - 6, 8 - 4 ir tt) ir paskutinis parametras (true/ false) įjungia arba išjungia priekinius nulius. Šis eskizas parodo šios funkcijos naudojimą:

#include // apibrėžti modulį duomenų kaištyje 8, laikrodžio kaištyje 9 ir strobos smeigtuke 7 TM1638 modulyje (8, 9, 7); nepasirašytas ilgas a = 1; void setup () {} void loop () {for (a = 10000; a <11000; a ++) {module.setDisplayToDecNumber (a, 4, false); uždelsimas (1); } for (a = 10000; a <11000; a ++) {module.setDisplayToDecNumber (a, 0, true); uždelsimas (1); }}

… Su rezultatais, parodytais vaizdo įraše.

7 žingsnis:

Image
Image

Viena iš įdomiausių funkcijų yra galimybė slinkti tekstu per vieną ar daugiau ekranų. Tam tikrai nereikia paaiškinimo, nes pridėtas demonstracinis eskizas:

tm_1638_scrolling_modules_example.pde

įtraukta į TM1638 biblioteką, yra lengvai sekama. Tiesiog įterpkite tekstą į „const char“eilutę , įsitikinkite, kad eskizo pradžioje modulis (-ai) yra prijungtas (-i) pagal modulio apibrėžimą ir esate pasiruošę. Norėdami pamatyti galimus simbolius, apsilankykite funkcijų puslapyje. Atkreipkite dėmesį, kad ekranas yra tik septynių segmentų, todėl kai kurie simboliai gali atrodyti nepriekaištingai, tačiau kontekstas suteiks jums gerą idėją-žiūrėkite vaizdo įrašą šiame žingsnyje.

8 žingsnis:

Galiausiai taip pat galite atskirai kreiptis į kiekvieną kiekvieno skaitmens segmentą. Apsvarstykite šio masyvo turinį:

baitų vertės = {1, 2, 4, 8, 16, 32, 64, 128};

kiekvienas elementas žymi skaitmenis nuo 1 iki 8. Kiekvieno elemento vertė nustato, kuris skaitmens segmentas įsijungia. Segmentų a ~ f, dp reikšmės yra 1, 2, 4, 6, 16, 32, 64, 128. Taigi aukščiau esančio masyvo naudojimo šioje funkcijoje rezultatai:

module.setDisplay (vertės);

bus pagal vaizdą.

9 veiksmas:

Vaizdas
Vaizdas

Žinoma, galite sujungti kiekvieno skaitmens reikšmes, kad sukurtumėte savo simbolius, simbolius ir pan. Pavyzdžiui, naudojant šias vertes:

baitų vertės = {99, 99, 99, 99, 99, 99, 99, 99};

mes sukūrėme pagal šį veiksmą.

10 žingsnis: mygtukai

Mygtuko reikšmės grąžinamos kaip baito reikšmė iš funkcijos:

module.getButtons ();

Kadangi yra aštuoni mygtukai, kiekvienas iš jų reiškia vieną dvejetainio skaičiaus bitą, kuris grąžinamas kaip baitas. Kairėje esantis mygtukas grąžina dešimtainį skaičių, o dešinysis - 128. Taip pat gali būti spaudžiami vienu metu, todėl paspaudus vieną ir aštuonis mygtukus, grąžinama 129. Apsvarstykite šį eskizą, kuriame pateikiamos mygtukų paspaudimų vertės dešimtaine forma, tada rodoma vertė:

#include // apibrėžti modulį duomenų kaištyje 8, laikrodžio kaištyje 9 ir strobe 7 TM1638 modulyje (8, 9, 7); baitų mygtukai; void setup () {} void loop () {mygtukai = module.getButtons (); module.setDisplayToDecNumber (mygtukai, 0, klaidinga); }

ir rezultatai vaizdo įraše.

Šios ekraninės plokštės yra naudingos ir, tikiuosi, suras namus jūsų projektuose. Šį įrašą jums pateikė pmdway.com - siūlo viską gamintojams ir elektronikos entuziastams, nemokamas pristatymas visame pasaulyje.

Rekomenduojamas: