Talaan ng mga Nilalaman:

Arduino at TM1638 LED Display Modules: 11 Mga Hakbang
Arduino at TM1638 LED Display Modules: 11 Mga Hakbang

Video: Arduino at TM1638 LED Display Modules: 11 Mga Hakbang

Video: Arduino at TM1638 LED Display Modules: 11 Mga Hakbang
Video: TM1638 Display Module with Arduino Mega Pro (#142) 2024, Nobyembre
Anonim
Mga Module ng Display LED ng Arduino at TM1638
Mga Module ng Display LED ng Arduino at TM1638

Kung kailangan mo ng isang mabilis at madaling paraan upang magdagdag ng ilang mga input at output ng gumagamit sa isang proyekto, ang mga module ng pagpapakita na ito ay kawili-wili at masaya.

Naglalaman ang mga ito ng walong 7-segment na pulang LED digit, walong pula / berde na LED at walong mga pindutan din para sa pag-input ng gumagamit. Ang mga yunit ay maaari ring ma-changey, na pinapayagan ang hanggang sa lima nang sabay-sabay, at isang maikling cable ay kasama sa bawat module, pati na rin ang ilang mga maikling spacer at bolts, tulad ng ipinakita sa imahe.

Hakbang 1:

Larawan
Larawan

Ang mga spacer ay sapat lamang sa haba upang itaas ang PCB sa itaas ng isang ibabaw, subalit upang mai-mount ang mga board kahit saan kapaki-pakinabang na kakailanganin mo ng mas mahaba. Maaari mo ring alisin ang mga socket ng IDC kung nais mong i-mount ang module malapit sa ibabaw ng isang panel. Ito ay magiging isang simpleng mapanirang gawain dahil ang mga ito ay through-hole sockets.

Hakbang 2:

Larawan
Larawan

Ang board ay kinokontrol ng isang TM1638 IC.

Ito ay isang LED at interface ng driver ng IC mula sa "Titan Micro Electronics". Maaari mo ring bilhin ang mga IC na ito mula sa PMD Way. Maaari mo ring i-download ang datasheet para sa higit pang mga detalye.

Hakbang 3: Pagsisimula - Hardware

Pagsisimula - Hardware
Pagsisimula - Hardware

Hardware - Ang koneksyon sa isang board na tumutugma sa Arduino (o iba pang MCU) ay medyo simple. Ang mga pinout ay ipinapakita sa likuran ng PCB, at tumutugma sa angkop sa ribbon cable. Kung titingnan mo ang dulo ng cable tulad nito.

Ang kanang-itaas na butas ay isang pin, na may kaliwang tuktok na kaliwang tuktok, ang kanang-kanang pin na siyam at ibabang kaliwang pin na sampu. Samakatuwid ang mga pinout ay:

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

Para sa paggamit ng Arduino, ang mga pin na 1 ~ 4 ang pinakamaliit na kinakailangan upang magamit ang isang module. Ang bawat karagdagang module ay mangangailangan ng isa pang digital pin na konektado sa STB2, STB3, atbp Marami pa sa paglaon. Mangyaring tandaan na ang bawat module na nakatakda sa buong ningning sa bawat LED sa kumonsumo ng 127mA, kaya't magiging matalino na gumamit ng panlabas na lakas na may higit sa isang module at iba pang mga koneksyon sa mga board ng Arduino.

Hakbang 4: Pagsisimula - Software

Software - i-download at i-install ang T1638 library mula dito. Salamat at kudos sa rjbatista sa gmail dot com para sa library. Ang mga inisyal na modyul sa sketch ay simple. Isama ang library sa:

# isama

pagkatapos ay gamitin ang isa sa mga sumusunod para sa bawat module:

TM1638 module (x, y, z);

x ay ang Arduino digital pin na konektado sa module cable pin 4, y ang Arduino digital pin na konektado sa module cable pin 3, at ang z ay ang stro pin. Kaya't kung mayroon kang isang module na may data, orasan at strober na konektado sa mga pin 8, 7, at 6 gagamitin mo:

TM1638 module (8, 7, 6);

Kung mayroon kang dalawang mga module, na may koneksyon ng strob ng isa na nakakonekta sa Arduino digital 6, at ang strobe ng module na dalawa ay konektado sa digital 5, gagamitin mo:

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

at iba pa para sa higit pang mga module. Ngayon upang makontrol ang display …

Hakbang 5: Ang Bi-color LEDs

Ang Bi-color LEDs
Ang Bi-color LEDs

Madali ang pagkontrol sa pula / berde na LED. Para sa sanggunian binilang sila ng zero hanggang pitong mula kaliwa hanggang kanan. Upang i-on o i-off ang isang solong LED, gamitin ang sumusunod:

module.setLED (TM1638_COLOR_RED, x); // set LED number x to redmodule.setLED (TM1638_COLOR_GREEN, x); // set LED number x to green module.setLED (TM1638_COLOR_RED + TM1638_COLOR_GREEN, 0); // itakda ang LED number x sa pula at berde

Ang paggamit ng pamamaraan sa itaas ay maaaring maging simple ito ay medyo hindi mabisa. Ang isang mas mahusay na paraan ay upang matugunan ang lahat ng mga LED sa isang pahayag. Upang magawa ito, nagpapadala kami ng dalawang byte ng data sa hexadecimal sa display. Ang MSB (pinaka makabuluhang byte) ay binubuo ng walong piraso, bawat isa ay kumakatawan sa isang berdeng LED na nasa (1) o off (0). Ang LSB (hindi bababa sa makabuluhang byte) ay kumakatawan sa mga pulang LED.

Ang isang madaling paraan upang matukoy ang hexadecimal na halaga upang makontrol ang mga LED ay simple, ang imahe ay mayroon kang isang hilera ng mga LED - ang unang walo ay berde at ang pangalawang walo ay pula. Itakda ang bawat digit sa 1 para sa on at 0 para sa off. Ang pag-convert ng dalawang binary na numero sa hexadecimal at gamitin ang pagpapaandar na ito:

module.setLEDs (0xgreenred);

Kung saan ang berde ay ang hexadecimal na numero para sa berdeng LEDs at pula ang hexadecimal na numero para sa mga pulang LED. Halimbawa, upang buksan ang unang tatlong LEDs bilang pula, at ang huling tatlong bilang berde, ang representasyong binary ay:

00000111 11100000 na sa hexadecimal ay E007.

Kaya gagamitin namin ang:

module.setLEDs (0xE007);

na gumagawa ng imahe tulad ng ipinakita sa itaas.

Hakbang 6: Ang 7-segment na Display

Upang i-clear ang numeric display (ngunit hindi ang mga LED sa ibaba), gamitin lamang:

module.clearDisplay ();

o upang buksan ang bawat segment AT lahat ng mga LED, gamitin ang sumusunod

module.setupDisplay (totoo, 7); // kung saan ang intensity ng 7 (mula sa 0 ~ 7)

Upang maipakita ang mga decimal number, gamitin ang pagpapaandar:

module.setDisplayToDecNumber (a, b, false);

kung saan ang integer, b ang posisyon para sa decimal point (0 para sa wala, 1 para sa digit 8, 2, para sa digit 7, 4 para sa digit 6, 8 para sa digit 4, atbp), at ang huling parameter (totoo / false) binubuksan o patayin ang mga nangungunang zero. Ipinapakita ng sumusunod na sketch ang paggamit ng pagpapaandar na ito:

# isama // tukuyin ang isang module sa data pin 8, orasan pin 9 at stro pin 7 TM1638 module (8, 9, 7); unsigned mahaba a = 1; void setup () {} void loop () {para (a = 10000; a <11000; a ++) {module.setDisplayToDecNumber (a, 4, false); antala (1); } para sa (a = 10000; a <11000; a ++) {module.setDisplayToDecNumber (a, 0, true); antala (1); }}

… kasama ang mga resulta na ipinakita sa video.

Hakbang 7:

Image
Image

Ang isa sa mga pinaka-kagiliw-giliw na tampok ay ang kakayahang mag-scroll ng teksto sa isa o higit pang mga pagpapakita. Upang magawa ito, hindi talaga kailangan ng paliwanag tulad ng isinamang demonstrasyong sketch:

tm_1638_scrolling_modules_example.pde

kasama sa TM1638 library ay madaling sundin. Ipasok lamang ang iyong teksto sa const char string , tiyakin na ang (mga) module ay naka-wire alinsunod sa kahulugan ng module sa simula ng sketch at nakatakda ka na. Upang makita ang mga magagamit na character, bisitahin ang pahina ng pag-andar. Tandaan na ang display ay pitong-segment lamang, kaya't ang ilang mga character ay maaaring hindi magmukhang perpekto, ngunit sa konteksto ay bibigyan ka ng isang magandang ideya - tingnan ang video sa hakbang na ito.

Hakbang 8:

Panghuli, maaari mo ring i-address ang bawat segment ng bawat digit. Isaalang-alang ang mga nilalaman ng array na ito:

mga halaga ng byte = {1, 2, 4, 8, 16, 32, 64, 128};

ang bawat elemento ay kumakatawan sa mga digit na 1 ~ 8. Tinutukoy ng halaga ng bawat elemento kung aling segment ng digit ang nakabukas. Para sa mga segment a ~ f, dp ang mga halaga ay 1, 2, 4, 6, 16, 32, 64, 128. Kaya ang mga resulta ng paggamit ng array sa itaas sa sumusunod na pagpapaandar:

module.setDisplay (mga halaga);

ay magiging ayon sa imahe.

Hakbang 9:

Larawan
Larawan

Naturally maaari mong pagsamahin ang mga halaga para sa bawat digit upang lumikha ng iyong sariling mga character, simbolo, atbp. Halimbawa, gamit ang mga sumusunod na halaga:

mga halagang byte = {99, 99, 99, 99, 99, 99, 99, 99};

nilikha namin ayon sa imahe sa hakbang na ito.

Hakbang 10: Ang Mga Pindutan

Ang mga halaga ng mga pindutan ay ibinalik bilang isang byte na halaga mula sa pagpapaandar:

module.get Button ();

Tulad ng mayroong walong mga pindutan, ang bawat isa ay kumakatawan sa isang piraso ng isang binary na numero na ibinalik bilang isang byte. Ang pindutan sa kaliwa ay nagbabalik ng decimal, at ang kanang nagbabalik 128. Maaari rin itong ibalik nang sabay-sabay na pagpindot, kaya ang pagpindot sa mga pindutan ng isa at walong pagbalik 129. Isaalang-alang ang sumusunod na sketch, na nagbabalik ng mga halaga ng mga pagpindot sa pindutan sa decimal form, pagkatapos ay ipinapakita ang halaga:

# isama // tukuyin ang isang module sa data pin 8, orasan pin 9 at stro pin 7 TM1638 module (8, 9, 7); mga pindutan ng byte; void setup () {} void loop () {button = module.get Buttons (); module.setDisplayToDecNumber (mga pindutan, 0, hindi totoo); }

at ang mga resulta sa video.

Ang mga display board na ito ay kapaki-pakinabang at sana makahanap ng bahay sa iyong mga proyekto. Ang post na ito ay dinala sa iyo ng pmdway.com - nag-aalok ng lahat para sa mga tagagawa ng tagahanga at electronics, na may libreng paghahatid sa buong mundo.

Inirerekumendang: