Satura rādītājs:

Arduino un TM1638 LED displeja moduļi: 11 soļi
Arduino un TM1638 LED displeja moduļi: 11 soļi

Video: Arduino un TM1638 LED displeja moduļi: 11 soļi

Video: Arduino un TM1638 LED displeja moduļi: 11 soļi
Video: Цифровой модуль Led&Key (TM1638) подключаем к Arduino Pro Micro 2024, Jūlijs
Anonim
Arduino un TM1638 LED displeja moduļi
Arduino un TM1638 LED displeja moduļi

Ja jums ir nepieciešams ātrs un vienkāršs veids, kā projektam pievienot lietotāja ievadi un izvadi, šie displeja moduļi ir interesanti un jautri.

Tajos ir astoņi 7 segmentu sarkani LED cipari, astoņas sarkanas/zaļas gaismas diodes, kā arī astoņas pogas lietotāja ievadīšanai. Ierīces var arī savienot ar ķēdi, pieļaujot līdz piecām vienlaicīgi, un katrā modulī ir iekļauts īss kabelis, kā arī daži īsi starplikas un skrūves, kā parādīts attēlā.

1. darbība:

Attēls
Attēls

Starplikas ir pietiekami garas, lai paceltu PCB virs virsmas, tomēr, lai uzstādītu dēļus jebkur noderīgā vietā, jums būtu nepieciešami garāki. Iespējams, vēlēsities noņemt arī IDC ligzdas, ja moduli vēlaties uzstādīt tuvu paneļa virsmai. Tas būtu vienkāršs atkausēšanas uzdevums, jo tie ir caurumi caurumiem.

2. darbība:

Attēls
Attēls

Plāksni kontrolē TM1638 IC.

Tas ir LED un saskarnes draivera IC no “Titan Micro Electronics”. Jūs varat arī iegādāties šos IC no PMD Way. Lai iegūtu sīkāku informāciju, varat arī lejupielādēt datu lapu.

3. darbība. Darba sākšana - aparatūra

Darba sākšana - aparatūra
Darba sākšana - aparatūra

Aparatūra-Savienojums ar ar Arduino saderīgu plati (vai citu MCU) ir diezgan vienkāršs. Spraudņi ir parādīti PCB aizmugurē un atbilst lentes kabeļa stiprinājumam. Ja paskatās uz kabeļa galu kā tādu.

Augšējais labais caurums ir pirmā tapa, augšējā kreisā ir otrā tapa, apakšējā labā tapa deviņi un apakšējā kreisā tapa desmit. Tāpēc pinouts ir:

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

Lai izmantotu Arduino, viena moduļa izmantošanai ir nepieciešami vismaz 1–4 tapas. Katram papildu modulim būs nepieciešama cita digitālā tapa, kas savienota ar STB2, STB3 utt. Vairāk par to vēlāk. Lūdzu, ņemiet vērā, ka katrs modulis, kas ir iestatīts uz pilnu spilgtumu ar katru ieslēgtu gaismas diodi, patērē 127 mA, tāpēc būtu prātīgi izmantot ārējo barošanu ar vairākiem moduļiem un citiem savienojumiem ar Arduino plāksnēm.

4. darbība. Darba sākšana - programmatūra

Programmatūra - lejupielādējiet un instalējiet bibliotēku T1638 no šejienes. Paldies un slava rjbatista at gmail dot com bibliotēkai. Moduļu inicializēšana skicē ir vienkārša. Iekļaujiet bibliotēku ar:

#iekļaut

tad katram modulim izmantojiet vienu no šīm iespējām:

TM1638 modulis (x, y, z);

x ir Arduino digitālā tapa, kas savienota ar moduļa kabeļa tapu 4, y ir Arduino digitālā tapa, kas pievienota moduļa kabeļa tapai 3, un z ir stroba tapa. Tātad, ja jums būtu viens modulis ar datiem, pulksteni un zibspuldzi, kas savienots ar 8., 7. un 6. tapu, jūs izmantotu:

TM1638 modulis (8, 7, 6);

Ja jums būtu divi moduļi, pirmā moduļa strobs būtu savienots ar Arduino digital 6, bet otrā moduļa strobs būtu savienots ar digitālo 5, jūs izmantotu:

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

un tā tālāk, lai iegūtu vairāk moduļu. Tagad, lai kontrolētu displeju …

5. solis: divkrāsu gaismas diodes

Divkrāsu gaismas diodes
Divkrāsu gaismas diodes

Sarkano/zaļo gaismas diodes ir viegli kontrolēt. Uzziņai tie ir numurēti no nulles līdz septiņiem no kreisās uz labo pusi. Lai ieslēgtu vai izslēgtu vienu gaismas diodi, rīkojieties šādi:

module.setLED (TM1638_COLOR_RED, x); // iestatiet LED numuru x uz redmodule.setLED (TM1638_COLOR_GREEN, x); // iestatiet LED numuru x uz zaļo moduli.setLED (TM1638_COLOR_RED+TM1638_COLOR_GREEN, 0); // iestatiet LED numuru x uz sarkanu un zaļu

Iepriekš minētās metodes izmantošana var būt vienkārša, bet nedaudz neefektīva. Labāks veids ir aplūkot visas gaismas diodes vienā paziņojumā. Lai to izdarītu, mēs displejam nosūtām divus baitus datu heksadecimālos skaitļos. MSB (nozīmīgākais baits) sastāv no astoņiem bitiem, no kuriem katrs attēlo vienu zaļu gaismas diodi, kas ir ieslēgta (1) vai izslēgta (0). LSB (vismazāk nozīmīgais baits) apzīmē sarkanās gaismas diodes.

Vienkāršs veids, kā noteikt heksadecimālo vērtību, lai kontrolētu gaismas diodes, ir vienkāršs, un jums ir viena gaismas diožu rinda - pirmās astoņas ir zaļas un otras astoņas ir sarkanas. Iestatiet katru ciparu, lai ieslēgtu un 0 izslēgtu. Pārveidojiet divus bināros skaitļus heksadecimālos un izmantojiet šo funkciju:

module.setLEDs (0xzaļš);

Kur zaļš ir zaļo gaismas diožu heksadecimālais skaitlis, bet sarkanais - heksadecimālais skaitlis sarkanajām gaismas diodēm. Piemēram, lai pirmās trīs gaismas diodes ieslēgtu kā sarkanas, bet pēdējās trīs - zaļas, binārais attēlojums būs šāds:

00000111 11100000, kas heksadecimālā skaitlī ir E007.

Tātad mēs izmantotu:

module.setLEDs (0xE007);

kas rada attēlu, kā parādīts iepriekš.

6. darbība: 7 segmentu displejs

Lai notīrītu ciparu displeju (bet ne zemāk esošās gaismas diodes), vienkārši izmantojiet:

module.clearDisplay ();

vai, lai ieslēgtu katru segmentu UN visas gaismas diodes, izmantojiet sekojošo

module.setupDisplay (true, 7); // kur 7 ir intensitāte (no 0 ~ 7)

Lai parādītu decimāldaļas, izmantojiet šo funkciju:

module.setDisplayToDecNumber (a, b, false);

kur a ir vesels skaitlis, b ir decimāldaļas pozīcija (0 - nevienam, 1 - 8, 2, cipars 7, 4 - 6, 8 - 4, utt.) un pēdējais parametrs (true/ false) ieslēdz vai izslēdz sākuma nulles. Sekojošā skice parāda šīs funkcijas izmantošanu:

#include // definējiet moduli datu tapā 8, pulksteņa tapā 9 un stroboskopā 7 TM1638 modulī (8, 9, 7); neparakstīts garš a = 1; void setup () {} void loop () {for (a = 10000; a <11000; a ++) {module.setDisplayToDecNumber (a, 4, false); kavēšanās (1); } par (a = 10000; a <11000; a ++) {module.setDisplayToDecNumber (a, 0, true); kavēšanās (1); }}

… Ar video redzamajiem rezultātiem.

7. darbība:

Image
Image

Viena no interesantākajām funkcijām ir iespēja ritināt tekstu pa vienu vai vairākiem displejiem. Lai to izdarītu, nav vajadzīgs paskaidrojums, jo iekļautajā demonstrācijas skicē:

tm_1638_scrolling_modules_example.pde

iekļauts TM1638 bibliotēkā, ir viegli sekojams. Vienkārši ievietojiet tekstu const char virknē , pārliecinieties, ka modulis (-i) ir savienoti saskaņā ar moduļa definīciju skices sākumā un esat gatavs. Lai redzētu pieejamās rakstzīmes, apmeklējiet funkciju lapu. Ņemiet vērā, ka displejs ir tikai septiņu segmentu, tāpēc dažas rakstzīmes var neizskatīties nevainojami, bet kontekstā sniegs jums labu ideju-skatiet videoklipu šajā solī.

8. darbība

Visbeidzot, jūs varat arī individuāli adresēt katru katra cipara segmentu. Apsveriet šī masīva saturu:

baitu vērtības = {1, 2, 4, 8, 16, 32, 64, 128};

katrs elements apzīmē ciparus 1 ~ 8. Katra elementa vērtība nosaka, kurš cipara segments tiek ieslēgts. Segmentiem a ~ f, dp vērtības ir 1, 2, 4, 6, 16, 32, 64, 128. Tātad rezultāti, izmantojot iepriekš minēto masīvu šādā funkcijā:

module.setDisplay (vērtības);

būs pēc attēla.

9. darbība

Attēls
Attēls

Protams, jūs varat apvienot katra cipara vērtības, lai izveidotu savas rakstzīmes, simbolus utt. Piemēram, izmantojot šādas vērtības:

baitu vērtības = {99, 99, 99, 99, 99, 99, 99, 99};

mēs izveidojām saskaņā ar attēlu šajā solī.

10. solis: pogas

Pogu vērtības tiek atdotas kā baita vērtība no funkcijas:

module.getButtons ();

Tā kā ir astoņas pogas, katra no tām apzīmē vienu bināra skaitļa bitu, kas tiek atgriezts kā baits. Kreisajā pusē esošā poga atgriež decimāldaļskaitli, bet labā - 128. Tā var atgriezt arī vienlaicīgu nospiešanu, tāpēc nospiežot vienu un astoto pogu, tiek atgriezta 129. Apsveriet šādu skici, kas atgriež pogu nospiešanas vērtības decimāldaļā, pēc tam tiek parādīts vērtība:

#include // definējiet moduli datu tapā 8, pulksteņa tapā 9 un stroboskopā 7 TM1638 modulī (8, 9, 7); baitu pogas; void setup () {} void loop () {pogas = module.getButtons (); module.setDisplayToDecNumber (pogas, 0, nepatiesa); }

un rezultāti video.

Šie displeju dēļi ir noderīgi un, cerams, atradīs jūsu mājās projektu. Šo ziņu jums sniedza pmdway.com - tas piedāvā visu ražotājiem un elektronikas entuziastiem ar bezmaksas piegādi visā pasaulē.

Ieteicams: