Cuprins:

Module de afișare LED Arduino și TM1638: 11 pași
Module de afișare LED Arduino și TM1638: 11 pași

Video: Module de afișare LED Arduino și TM1638: 11 pași

Video: Module de afișare LED Arduino și TM1638: 11 pași
Video: TM1638 Display Module with Arduino Mega Pro (#142) 2024, Iulie
Anonim
Module de afișare LED Arduino și TM1638
Module de afișare LED Arduino și TM1638

Dacă aveți nevoie de o modalitate rapidă și ușoară de a adăuga o intrare și o ieșire de utilizator la un proiect, aceste module de afișare sunt interesante și distractive.

Acestea conțin opt cifre cu LED-uri roșii pe 7 segmente, opt LED-uri roșii / verzi și, de asemenea, opt butoane pentru introducerea utilizatorului. Unitățile pot fi, de asemenea, în lanț de margaretă, permițând până la cinci simultan, și un cablu scurt este inclus cu fiecare modul, precum și câteva distanțieri și șuruburi scurte, așa cum se arată în imagine.

Pasul 1:

Imagine
Imagine

Distanțierii sunt suficient de lungi pentru a ridica PCB-ul deasupra unei suprafețe, totuși pentru a monta plăcile oriunde este util, ai avea nevoie de altele mai lungi. De asemenea, poate doriți să eliminați soclurile IDC dacă doriți să montați modulul aproape de suprafața unui panou. Aceasta ar fi o sarcină simplă de desoldare, deoarece acestea sunt prize orificiale.

Pasul 2:

Imagine
Imagine

Placa este controlată de un IC TM1638.

Acesta este un LED și un driver de interfață IC de la „Titan Micro Electronics“. Puteți cumpăra aceste IC-uri de la PMD Way. De asemenea, puteți descărca foaia de date pentru mai multe detalii.

Pasul 3: Noțiuni introductive - Hardware

Noțiuni introductive - Hardware
Noțiuni introductive - Hardware

Hardware - Conexiunea la o placă compatibilă Arduino (sau la un alt MCU) este destul de simplă. Pinouturile sunt afișate în partea din spate a PCB-ului și se potrivesc cu montajul cablului cu bandă. Dacă priviți capătul cablului ca atare.

Gaura din dreapta sus este pinul unu, cu partea stângă sus fiind pinul doi, pinul dreapta jos nouă și pinul stânga jos zece. Prin urmare, pinouturile sunt:

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

Pentru utilizarea Arduino, pinii 1 ~ 4 sunt minimul necesar pentru a utiliza un modul. Fiecare modul suplimentar va necesita un alt pin digital conectat la STB2, STB3 etc. Mai multe despre acest lucru mai târziu. Vă rugăm să rețineți că fiecare modul setat la luminozitate maximă cu fiecare LED aprins consumă 127mA, deci ar fi înțelept să utilizați energie externă cu mai mult de un modul și alte conexiuni cu plăci Arduino.

Pasul 4: Noțiuni introductive - Software

Software - descărcați și instalați biblioteca T1638 de aici. Mulțumiri și felicitări către rjbatista la gmail dot com pentru bibliotecă. Inițializarea modulelor în schiță este simplă. Includeți biblioteca cu:

#include

apoi utilizați una dintre următoarele pentru fiecare modul:

Modulul TM1638 (x, y, z);

x este pinul digital Arduino conectat la pinul 4 al cablului modulului, y este pinul digital Arduino conectat la pinul 3 al cablului modulului și z este pinul stroboscopic. Deci, dacă ați avea un modul cu date, ceas și stroboscop conectat la pinii 8, 7 și 6, ați folosi:

Modul TM1638 (8, 7, 6);

Dacă ați avea două module, cu stroboscopul modulului unu conectat la Arduino digital 6 și stroboscopul modulului doi conectat la digitalul 5, ați utiliza:

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

și așa mai departe pentru mai multe module. Acum, pentru a controla afișajul …

Pasul 5: LED-urile bicolore

LED-urile bi-color
LED-urile bi-color

Controlul LED-urilor roșii / verzi este ușor. Pentru referință, acestea sunt numerotate de la zero la șapte de la stânga la dreapta. Pentru a porni sau opri un singur LED, utilizați următoarele:

module.setLED (TM1638_COLOR_RED, x); // setați numărul LED-ului x la redmodule.setLED (TM1638_COLOR_GREEN, x); // setați numărul LED x la modulul verde.setLED (TM1638_COLOR_RED + TM1638_COLOR_GREEN, 0); // setați numărul LED-ului x la roșu și verde

Utilizarea metodei de mai sus poate fi simplă, este oarecum ineficientă. O modalitate mai bună este de a aborda toate LED-urile într-o singură declarație. Pentru a face acest lucru, trimitem pe ecran doi octeți de date în hexazecimal. MSB (cel mai semnificativ octet) este format din opt biți, fiecare reprezentând un LED verde fiind aprins (1) sau oprit (0). LSB (octetul cel mai puțin semnificativ) reprezintă LED-urile roșii.

O modalitate ușoară de a determina valoarea hexazecimală pentru a controla LED-urile este simplă, imaginea aveți un rând de LED-uri - primele opt fiind verzi și al doilea opt fiind roșii. Setați fiecare cifră la 1 pentru activat și 0 pentru dezactivat. Convertiți cele două numere binare în hexazecimale și utilizați această funcție:

module.setLEDs (0xverde);

Unde verde este numărul hexazecimal pentru LED-urile verzi și roșu este numărul hexazecimal pentru LED-urile roșii. De exemplu, pentru a activa primele trei LED-uri ca roșu, iar ultimele trei ca verzi, reprezentarea binară va fi:

00000111 11100000 care în hexazecimal este E007.

Deci am folosi:

module.setLEDs (0xE007);

care produce imaginea așa cum se arată mai sus.

Pasul 6: Afișajul pe 7 segmente

Pentru a șterge afișajul numeric (dar nu LED-urile de mai jos), utilizați pur și simplu:

module.clearDisplay ();

sau pentru a porni fiecare segment ȘI toate LED-urile, utilizați următoarele

module.setupDisplay (adevărat, 7); // unde 7 este intensitate (de la 0 ~ 7)

Pentru a afișa numerele zecimale, utilizați funcția:

module.setDisplayToDecNumber (a, b, false);

unde a este numărul întreg, b este poziția pentru punctul zecimal (0 pentru niciunul, 1 pentru cifra 8, 2, pentru cifra 7, 4 pentru cifra 6, 8 pentru cifra 4 etc.) și ultimul parametru (adevărat / false) activează sau dezactivează zerourile din partea de sus. Următoarea schiță demonstrează utilizarea acestei funcții:

#include // definește un modul pe pinul de date 8, pinul de ceas 9 și pinul stroboscopic 7 modulul TM1638 (8, 9, 7); nesemnat lung a = 1; void setup () {} void loop () {for (a = 10000; a <11000; a ++) {module.setDisplayToDecNumber (a, 4, false); întârziere (1); } pentru (a = 10000; a <11000; a ++) {module.setDisplayToDecNumber (a, 0, true); întârziere (1); }}

… Cu rezultatele afișate în videoclip.

Pasul 7:

Image
Image

Una dintre cele mai interesante caracteristici este posibilitatea de a derula text pe unul sau mai multe afișaje. Pentru a face acest lucru, nu este nevoie de o explicație, deoarece schița demonstrativă inclusă:

tm_1638_scrolling_modules_example.pde

inclus cu biblioteca TM1638 este ușor de urmărit. Introduceți textul în șirul de caractere const , asigurați-vă că modulele sunt conectate conform definiției modulului la începutul schiței și că sunteți setat. Pentru a vedea caracterele disponibile, vizitați pagina funcției. Rețineți că afișajul are doar șapte segmente, deci este posibil ca unele caractere să nu arate perfect, dar în context vă va oferi o idee bună - consultați videoclipul din acest pas.

Pasul 8:

În cele din urmă, puteți adresa individual fiecărui segment al fiecărei cifre. Luați în considerare conținutul acestei matrice:

valori de octeți = {1, 2, 4, 8, 16, 32, 64, 128};

fiecare element reprezintă cifrele 1 ~ 8. Valoarea fiecărui element determină ce segment al cifrei se aprinde. Pentru segmentele a ~ f, dp valorile sunt 1, 2, 4, 6, 16, 32, 64, 128. Deci, rezultatele utilizării matricei de mai sus în următoarea funcție:

module.setDisplay (valori);

va fi pe imagine.

Pasul 9:

Imagine
Imagine

Bineînțeles, puteți combina valorile pentru fiecare cifră pentru a vă crea propriile caractere, simboluri etc. De exemplu, folosind următoarele valori:

valori de octeți = {99, 99, 99, 99, 99, 99, 99, 99};

am creat conform imaginii în acest pas.

Pasul 10: Butoanele

Valorile butoanelor sunt returnate ca o valoare de octeți din funcția:

module.getButtons ();

Deoarece există opt butoane, fiecare reprezintă un bit dintr-un număr binar care este returnat ca un octet. Butonul din stânga returnează una zecimală, iar dreapta returnează 128. De asemenea, poate returna apăsări simultane, astfel încât apăsarea butoanelor unu și opt returnează 129. Luați în considerare următoarea schiță, care returnează valorile butoanelor apăsate în formă zecimală, apoi afișează valoarea:

#include // definește un modul pe pinul de date 8, pinul de ceas 9 și pinul stroboscop 7 modulul TM1638 (8, 9, 7); butoane de octeți; void setup () {} void loop () {butoane = module.getButtons (); module.setDisplayToDecNumber (butoane, 0, false); }

și rezultatele din videoclip.

Aceste panouri de afișare sunt utile și sperăm că găsesc o casă în proiectele dvs. Această postare ți-a fost adusă de pmdway.com - oferind totul pentru producătorii și pasionații de electronice, cu livrare gratuită în toată lumea.

Recomandat: