Indholdsfortegnelse:
- Trin 1:
- Trin 2:
- Trin 3: Kom godt i gang - Hardware
- Trin 4: Kom godt i gang - Software
- Trin 5: Bi-farve LED'erne
- Trin 6: 7-segmentet Display
- Trin 7:
- Trin 8:
- Trin 9:
- Trin 10: Knapperne
Video: Arduino og TM1638 LED Display moduler: 11 trin
2024 Forfatter: John Day | [email protected]. Sidst ændret: 2024-01-30 08:28
Hvis du har brug for en hurtig og nem måde at tilføje brugerindgang og output til et projekt, er disse displaymoduler interessante og sjove.
De indeholder otte 7-segmenters røde LED-cifre, otte røde/grønne lysdioder og også otte knapper til brugerindgang. Enhederne kan også være daisy-chainet, hvilket giver mulighed for op til fem på én gang, og der følger et kort kabel med hvert modul samt nogle korte afstandsstykker og bolte, som vist på billedet.
Trin 1:
Afstandsstykkerne er lige lange nok til at hæve printet over en overflade, men for at montere brædderne hvor som helst brugbart, ville du have brug for længere. Du vil måske også fjerne IDC -stikkene, hvis du vil montere modulet tæt på overfladen af et panel. Dette ville være en simpel aflodningsopgave, da de er gennemgående huller.
Trin 2:
Brættet styres af en TM1638 IC.
Dette er en LED og interface driver IC fra "Titan Micro Electronics". Du kan også købe disse IC'er fra PMD Way. Du kan også downloade databladet for flere detaljer.
Trin 3: Kom godt i gang - Hardware
Hardware-Tilslutning til et Arduino-kompatibelt kort (eller anden MCU) er ganske enkel. Pinouterne er vist på bagsiden af printkortet og matcher beslaget på båndkablet. Hvis du ser på enden af kablet som sådan.
Det øverste højre hul er pin et, hvor top-venstre er pin to, den nederste højre pin ni og nederste venstre pin ti. Derfor er pinouts:
- Vcc (5V)
- GND
- CLK
- DIO
- STB1
- STB2
- STB3
- STB4
- STB5
- ikke forbundet.
Til Arduino -brug er ben 1 ~ 4 minimum nødvendige for at bruge et modul. Hvert ekstra modul kræver en anden digital pin, der er forbundet til STB2, STB3, osv. Mere om dette senere. Bemærk, at hvert modul indstillet til fuld lysstyrke med hver LED tændt bruger 127mA, så det ville være klogt at bruge ekstern strøm med mere end et modul og andre forbindelser med Arduino -kort.
Trin 4: Kom godt i gang - Software
Software - download og installer T1638 -biblioteket herfra. Tak og ros til rjbatista på gmail dot com for biblioteket. Initialisering af moduler i skitsen er enkel. Inkluder biblioteket med:
#omfatte
brug derefter et af følgende for hvert modul:
TM1638 modul (x, y, z);
x er Arduino digital pin tilsluttet modul kabel pin 4, y er Arduino digital pin tilsluttet modul kabel pin 3, og z er strobe pin. Så hvis du havde et modul med data, ur og strobe forbundet til ben 8, 7 og 6, ville du bruge:
TM1638 modul (8, 7, 6);
Hvis du havde to moduler, hvor modulets strobe var forbundet til Arduino digital 6 og modul tos strobe tilsluttet digital 5, ville du bruge:
TM1638 modul (8, 7, 6); TM1638 modul (8, 7, 5);
og så videre for flere moduler. Nu for at styre displayet …
Trin 5: Bi-farve LED'erne
Det er let at kontrollere de røde/grønne lysdioder. Til reference er de nummereret fra nul til syv fra venstre mod højre. For at tænde eller slukke en enkelt LED skal du bruge følgende:
module.setLED (TM1638_COLOR_RED, x); // indstil LED -nummer x til redmodule.setLED (TM1638_COLOR_GREEN, x); // indstil LED -nummer x til grønt modul.setLED (TM1638_COLOR_RED+TM1638_COLOR_GREEN, 0); // indstil LED -nummer x til rødt og grønt
Brug af metoden ovenfor kan være enkel, den er lidt ineffektiv. En bedre måde er at adressere alle lysdioderne i en erklæring. For at gøre dette sender vi to bytes med data i hexadecimal til displayet. MSB (mest signifikante byte) består af otte bits, der hver repræsenterer en grøn LED, der er tændt (1) eller slukket (0). LSB (mindst signifikant byte) repræsenterer de røde lysdioder.
En let måde at bestemme den hexadecimale værdi for at styre lysdioderne er enkel, billede du har en række lysdioder - de første otte er grønne og de anden otte er røde. Indstil hvert ciffer til 1 for on og 0 for off. Konverter de to binære tal til hexadecimal og brug denne funktion:
module.setLED'er (0xgrønne);
Hvor grønt er det hexadecimale tal for de grønne lysdioder og rødt er det hexadecimale tal for de røde lysdioder. For eksempel for at tænde de første tre lysdioder som rødt og de sidste tre som grøn vil den binære repræsentation være:
00000111 11100000 som i hexadecimal er E007.
Så vi ville bruge:
modul.setLED'er (0xE007);
som producerer billedet som vist ovenfor.
Trin 6: 7-segmentet Display
For at slette det numeriske display (men ikke lysdioderne herunder) skal du blot bruge:
module.clearDisplay ();
eller for at tænde hvert segment OG alle lysdioderne, skal du bruge følgende
module.setupDisplay (sand, 7); // hvor 7 er intensitet (fra 0 ~ 7)
Brug funktionen til at vise decimaltal:
module.setDisplayToDecNumber (a, b, false);
hvor a er heltalet, b er positionen for decimalpunktet (0 for ingen, 1 for ciffer 8, 2, for ciffer 7, 4 for ciffer 6, 8 for ciffer 4 osv.) og den sidste parameter (true/ false) tænder eller deaktiverer førende nuller. Følgende skitse viser brugen af denne funktion:
#include // definer et modul på datapind 8, urpind 9 og strobepind 7 TM1638 -modul (8, 9, 7); usigneret lang a = 1; void setup () {} void loop () {for (a = 10000; a <11000; a ++) {module.setDisplayToDecNumber (a, 4, false); forsinkelse (1); } for (a = 10000; a <11000; a ++) {module.setDisplayToDecNumber (a, 0, true); forsinkelse (1); }}
… med resultaterne vist i videoen.
Trin 7:
En af de mest interessante funktioner er muligheden for at rulle tekst hen over en eller flere skærme. For at gøre det behøver du ikke rigtig en forklaring som den medfølgende demonstrationsskitse:
tm_1638_scrolling_modules_example.pde
inkluderet i TM1638 -biblioteket følges let. Indsæt bare din tekst i const char -strengen , sørg for at modulet / modulerne er kablet i henhold til moduldefinitionen i starten af skitsen, og du er indstillet. Besøg funktionssiden for at se de tilgængelige tegn. Bemærk, at displayet kun er syv segmenter, så nogle tegn ser måske ikke perfekte ud, men i kontekst vil det give dig en god idé-se videoen i dette trin.
Trin 8:
Endelig kan du også individuelt adressere hvert segment af hvert ciffer. Overvej indholdet af denne matrix:
byte værdier = {1, 2, 4, 8, 16, 32, 64, 128};
hvert element repræsenterer cifrene 1 ~ 8. Værdien af hvert element bestemmer, hvilket segment af cifret der tændes. For segmenter a ~ f, dp er værdierne 1, 2, 4, 6, 16, 32, 64, 128. Så resultaterne af at bruge arrayet ovenfor i følgende funktion:
module.setDisplay (værdier);
vil være pr. billede.
Trin 9:
Naturligvis kan du kombinere værdier for hvert ciffer for at oprette dine egne tegn, symboler osv. For eksempel ved at bruge følgende værdier:
byte værdier = {99, 99, 99, 99, 99, 99, 99, 99};
vi skabte i henhold til billedet i dette trin.
Trin 10: Knapperne
Knappernes værdier returneres som en byteværdi fra funktionen:
module.getButtons ();
Da der er otte knapper, repræsenterer hver enkelt en bit af et binært tal, der returneres som en byte. Knappen til venstre returnerer en decimal, og den højre returnerer 128. Den kan også returnere samtidige tryk, så tryk på knapperne et og otte returnerer 129. Overvej følgende skitse, der returnerer værdierne for knappetrykkene i decimalform, og derefter viser værdien:
#include // definer et modul på datapind 8, urpind 9 og strobepind 7 TM1638 -modul (8, 9, 7); byte knapper; void setup () {} void loop () {buttons = module.getButtons (); module.setDisplayToDecNumber (knapper, 0, falsk); }
og resultaterne i videoen.
Disse displaybrætter er nyttige og finder forhåbentlig et hjem i dine projekter. Dette indlæg blev bragt til dig af pmdway.com - tilbyder alt til producenter og elektronikentusiaster, med gratis levering over hele verden.
Anbefalede:
DIY Fitness Tracker Smart Watch med oximeter og puls - Modulære elektroniske moduler fra TinyCircuits - Mindste Arcade: 6 trin
DIY Fitness Tracker Smart Watch med oximeter og puls | Modulære elektroniske moduler fra TinyCircuits | Mindste Arcade: Hey, hvad sker der, fyre! Akarsh her fra CETech. I dag har vi nogle af sensormodulerne med, som er meget nyttige i vores daglige liv, men i en lille version af dem selv. De sensorer, vi har i dag, er meget små i størrelse i forhold til tra
DIY Walkie-Talkie med generiske 433MHz RF-moduler: 4 trin
DIY Walkie-Talkie med generiske 433MHz RF-moduler: I dette projekt vil jeg vise dig, hvordan du bruger generiske 433MHz RF-moduler fra Ebay for at oprette en funktionel Walkie-Talkie. Det betyder, at vi vil sammenligne forskellige RF-moduler, lære lidt om en klasse d-forstærker og endelig bygge Walkie-Talkie
Cool Lighting for Fre (LED -moduler): 9 trin
Cool Lighting for Fre (LED -moduler): i denne instruktive lavede jeg små LED -lamper til nogle flotte lyseffekter. Jeg brugte genbrugsbatterier, fordi det var gratis, men du kan bruge det batteri, du vil have
En yderst enkel måde at komme i gang med hjemmeautomatisering ved hjælp af DIY -moduler: 6 trin
En yderst enkel måde at komme i gang med hjemmeautomatisering ved hjælp af DIY -moduler: Jeg blev glædeligt overrasket, da jeg besluttede at prøve at tilføje nogle DIY -sensorer til hjemmeassistenten. Brug af ESPHome er ekstremt enkelt, og i dette indlæg lærer vi, hvordan du styrer en GPIO -pin og også opnår temperatur & fugtighedsdata fra en trådløs n
Byg din første IOT ved hjælp af Arduino uden yderligere moduler: 5 trin (med billeder)
Byg din første IOT ved hjælp af Arduino uden yderligere moduler: Verden går smartere hver dag, og den største årsag bag dette er udviklingen af smart teknologi. Som teknisk entusiast må du have hørt om udtrykket IOT, der betyder tingenes internet. Tingenes internet betyder at kontrollere og fodre