Përmbajtje:

Modulet e ekranit Arduino dhe TM1638 LED: 11 hapa
Modulet e ekranit Arduino dhe TM1638 LED: 11 hapa

Video: Modulet e ekranit Arduino dhe TM1638 LED: 11 hapa

Video: Modulet e ekranit Arduino dhe TM1638 LED: 11 hapa
Video: How to use TM1637 4 digits seven segment display with Arduino 2024, Korrik
Anonim
Modulet e ekranit Arduino dhe TM1638 LED
Modulet e ekranit Arduino dhe TM1638 LED

Nëse keni nevojë për një mënyrë të shpejtë dhe të lehtë për të shtuar një hyrje dhe dalje të përdoruesit në një projekt, këto module të ekranit janë interesante dhe argëtuese.

Ato përmbajnë tetë shifra LED të kuqe me 7 segmente, tetë LED të kuq/jeshil dhe gjithashtu tetë butona për hyrjen e përdoruesit. Njësitë gjithashtu mund të lidhen me zinxhirë margaritar, duke lejuar deri në pesë në të njëjtën kohë, dhe një kabllo e shkurtër përfshihet në secilin modul, si dhe disa ndarës dhe bulona të shkurtër, siç tregohet në imazh.

Hapi 1:

Imazhi
Imazhi

Hapësirët janë mjaft të gjatë për të ngritur PCB mbi një sipërfaqe, megjithatë për të montuar dërrasat kudo që janë të dobishme do t'ju duheshin ato më të gjata. Ju gjithashtu mund të dëshironi të hiqni bazat IDC nëse doni të montoni modulin afër sipërfaqes së një paneli. Kjo do të ishte një detyrë e thjeshtë e shkrirjes pasi ato janë bazat me vrima.

Hapi 2:

Imazhi
Imazhi

Bordi kontrollohet nga një IC TM1638.

Ky është një IC i drejtuesit LED dhe ndërfaqes nga "Titan Micro Electronics". Ju gjithashtu mund t'i blini këto IC nga PMD Way. Ju gjithashtu mund të shkarkoni fletën e të dhënave për më shumë detaje.

Hapi 3: Fillimi - Pajisje kompjuterike

Fillimi - Pajisje kompjuterike
Fillimi - Pajisje kompjuterike

Pajisje kompjuterike-Lidhja me një bord të pajtueshëm me Arduino (ose MCU tjetër) është mjaft i thjeshtë. Pinouts janë treguar në pjesën e pasme të PCB, dhe përputhen me montimin në kabllon e shiritit. Nëse shikoni fundin e kabllit si të tillë.

Vrima e sipërme-e djathtë është kunja e parë, me majën e majtë është kunja dy, kunja e poshtme-e djathtë nëntë dhe kunja e majtë e majtë dhjetë. Prandaj pinoutet janë:

  1. Vcc (5V)
  2. GND
  3. CLK
  4. DIO
  5. STB1
  6. STB2
  7. STB3
  8. STB4
  9. STB5
  10. Nuk është e lidhur.

Për përdorimin e Arduino, kunjat 1 ~ 4 janë minimumi i nevojshëm për të përdorur një modul. Çdo modul shtesë do të kërkojë një kunj tjetër digjital të lidhur me STB2, STB3, etj. Më shumë për këtë më vonë. Ju lutemi vini re se çdo modul i vendosur në shkëlqim të plotë me çdo LED të ndezur konsumon 127mA, kështu që do të ishte e mençur të përdorni energji të jashtme me më shumë se një modul dhe lidhje të tjera me bordet Arduino.

Hapi 4: Fillimi - Softuer

Softuer - shkarkoni dhe instaloni bibliotekën T1638 nga këtu. Faleminderit dhe nderime për rjbatista në gmail dot com për bibliotekën. Fillimi i moduleve në skicë është i thjeshtë. Përfshi bibliotekën me:

#përfshi

pastaj përdorni një nga sa vijon për secilin modul:

Moduli TM1638 (x, y, z);

x është kunja dixhitale Arduino e lidhur me kunjin 4 të kabllit të modulit, y është kunja dixhitale Arduino e lidhur me kunjin 3 të kabllit të modulit, dhe z është kunja e strobës. Pra, nëse do të kishit një modul me të dhëna, orë dhe strobe të lidhura me kunjat 8, 7 dhe 6, do të përdorni:

Moduli TM1638 (8, 7, 6);

Nëse do të kishit dy module, me strobën e modulit një të lidhur me Arduino dixhital 6, dhe strobën e modulit dy të lidhur me dixhital 5, do të përdorni:

Moduli TM1638 (8, 7, 6); moduli TM1638 (8, 7, 5);

dhe kështu me radhë për më shumë module. Tani për të kontrolluar ekranin…

Hapi 5: LED-të me dy ngjyra

LED me dy ngjyra
LED me dy ngjyra

Kontrollimi i LED -ve të kuqe/jeshile është i lehtë. Për referencë ata numërohen nga zero në shtatë nga e majta në të djathtë. Për të ndezur ose fikur një LED të vetëm, përdorni sa vijon:

moduli.setLED (TM1638_COLOR_RED, x); // vendosni numrin LED x në redmodule.setLED (TM1638_COLOR_GREEN, x); // vendosni numrin LED x në modulin e gjelbër.setLED (TM1638_COLOR_RED+TM1638_COLOR_GREEN, 0); // vendosni numrin LED x në të kuqe dhe jeshile

Përdorimi i metodës së mësipërme mund të jetë e thjeshtë, është disi joefikase. Një mënyrë më e mirë është adresimi i të gjitha LED -ve në një deklaratë. Për ta bërë këtë, ne dërgojmë dy byte të të dhënave në formë heksadecimale në ekran. MSB (bajti më domethënës) përbëhet nga tetë bit, secila përfaqëson një LED të gjelbër të ndezur (1) ose të fikur (0). LSB (bajti më pak i rëndësishëm) përfaqëson LED -të e kuqe.

Një mënyrë e thjeshtë për të përcaktuar vlerën heksadecimale për të kontrolluar LED -të është e thjeshtë, imazhi ju keni një rresht LED - tetë të parët janë jeshilë dhe tetë të dytë të kuq. Vendosni çdo shifër në 1 për aktiv dhe 0 për fikje. Shndërroni dy numrat binarë në heksadecimal dhe përdorni këtë funksion:

modul.setLEDs (0xgreenred);

Aty ku jeshilja është numri heksadecimal për LED -të e gjelbër dhe e kuqja është numri hexadecimal për LED -të e kuqe. Për shembull, për të ndezur tre LED -et e para si të kuqe dhe tre të fundit si jeshile, përfaqësimi binar do të jetë:

00000111 11100000 që në heksadecimal është E007.

Pra, ne do të përdorim:

modul.setLED (0xE007);

e cila prodhon imazhin siç tregohet më sipër.

Hapi 6: Ekrani me 7 segmente

Për të pastruar ekranin numerik (por jo LED -të më poshtë), thjesht përdorni:

moduli.clearDisplay ();

ose për të ndezur çdo segment DHE të gjitha LED -të, përdorni sa vijon

module.setupDisplay (e vërtetë, 7); // ku 7 është intensiteti (nga 0 ~ 7)

Për të shfaqur numrat dhjetorë, përdorni funksionin:

module.setDisplayToDecNumber (a, b, false);

ku a është numri i plotë, b është pozicioni për pikën dhjetore (0 për asnjë, 1 për shifrën 8, 2, për shifrën 7, 4 për shifrën 6, 8 për shifrën 4, etj), dhe parametri i fundit (i vërtetë/ false) ndez ose fik zerot kryesorë. Skica e mëposhtme demonstron përdorimin e këtij funksioni:

#include // përcaktoni një modul në pinin e të dhënave 8, pinin e orës 9 dhe modulin e strobës 7 TM1638 (8, 9, 7); i panënshkruar i gjatë a = 1; void setup () {} loop void () {për (a = 10000; a <11000; a ++) {module.setDisplayToDecNumber (a, 4, false); vonesa (1); } për (a = 10000; a <11000; a ++) {module.setDisplayToDecNumber (a, 0, e vërtetë); vonesa (1); }}

… Me rezultatet e treguara në video.

Hapi 7:

Image
Image

Një nga karakteristikat më interesante është aftësia për të lëvizur tekstin në një ose më shumë ekrane. Për ta bërë këtë nuk ka nevojë vërtet për një shpjegim pasi skica demonstruese e përfshirë:

tm_1638_scrolling_modules_example.pde

i përfshirë me bibliotekën TM1638 ndiqet lehtë. Thjesht futni tekstin tuaj në vargun const char , sigurohuni që moduli (et) të lidhen sipas përcaktimit të modulit në fillim të skicës dhe të jeni vendosur. Për të parë karakteret në dispozicion, vizitoni faqen e funksionit. Vini re se ekrani është vetëm shtatë segmente, kështu që disa personazhe mund të mos duken të përsosur, por në kontekst do t'ju japin një ide të mirë-shikoni videon në këtë hap.

Hapi 8:

Së fundi, ju gjithashtu mund të adresoni individualisht secilin segment të secilës shifër. Konsideroni përmbajtjen e këtij grupi:

vlerat e bajtit = {1, 2, 4, 8, 16, 32, 64, 128};

secili element paraqet shifrat 1 ~ 8. Vlera e secilit element përcakton se cili segment i shifrës ndizet. Për segmentet a ~ f, dp vlerat janë 1, 2, 4, 6, 16, 32, 64, 128. Pra, rezultatet e përdorimit të grupit të mësipërm në funksionin e mëposhtëm:

module.setDisplay (vlerat);

do të jetë sipas imazhit.

Hapi 9:

Imazhi
Imazhi

Natyrisht, ju mund të kombinoni vlerat për secilën shifër për të krijuar personazhet, simbolet, etj. Për shembull, duke përdorur vlerat e mëposhtme:

vlerat e bajtit = {99, 99, 99, 99, 99, 99, 99, 99, 99};

ne krijuam sipas figurës në këtë hap.

Hapi 10: Butonat

Vlerat e butonave kthehen si vlerë byte nga funksioni:

modul.getButtons ();

Meqenëse ka tetë butona, secila përfaqëson një bit të një numri binar që kthehet si një bajt. Butoni në të majtë kthen numrin dhjetor, dhe e djathta kthen 128. Mund të kthejë gjithashtu shtypje të njëkohshme, kështu që shtypja e butonave një dhe tetë kthen 129. Merrni parasysh skicën e mëposhtme, e cila kthen vlerat e shtypjeve të butonave në formë dhjetore, pastaj shfaqet vlera:

#include // përcaktoni një modul në pinin e të dhënave 8, pinin e orës 9 dhe modulin e strobës 7 TM1638 (8, 9, 7); butona byte; void setup () {} void loop () {buttons = module.getButtons (); module.setDisplayToDecNumber (butona, 0, false); }

dhe rezultatet në video.

Këto tabela të ekranit janë të dobishme dhe shpresojmë të gjejnë një shtëpi në projektet tuaja. Ky postim ju është sjellë nga pmdway.com - duke ofruar gjithçka për prodhuesit dhe entuziastët e elektronikës, me shpërndarje falas në të gjithë botën.

Recommended: