Innholdsfortegnelse:
- Trinn 1:
- Steg 2:
- Trinn 3: Komme i gang - Maskinvare
- Trinn 4: Komme i gang - Programvare
- Trinn 5: Bi-farge lysdioder
- Trinn 6: 7-segmentet Display
- Trinn 7:
- Trinn 8:
- Trinn 9:
- Trinn 10: Knappene
Video: Moduler for Arduino og TM1638 LED -skjerm: 11 trinn
2024 Forfatter: John Day | [email protected]. Sist endret: 2024-01-30 11:23
Hvis du trenger en rask og enkel måte å legge til brukerinngang og utdata til et prosjekt, er disse visningsmodulene interessante og morsomme.
De inneholder åtte 7-segmenters røde LED-sifre, åtte røde/grønne lysdioder og åtte knapper for brukerinngang. Enhetene kan også være daisy-lenket, slik at opptil fem på en gang, og en kort kabel er inkludert i hver modul, samt noen korte avstandsstykker og bolter, som vist på bildet.
Trinn 1:
Avstandsstykkene er akkurat lange nok til å heve kretskortet over en overflate, men for å montere brettene hvor som helst som er nyttig, trenger du lengre. Det kan også være lurt å fjerne IDC -kontaktene hvis du vil montere modulen nær overflaten på et panel. Dette ville være en enkel avlodingsoppgave ettersom de er gjennomgående hull.
Steg 2:
Brettet styres av en TM1638 IC.
Dette er en LED og grensesnittdriver IC fra "Titan Micro Electronics". Du kan også kjøpe disse IC -ene fra PMD Way. Du kan også laste ned databladet for mer informasjon.
Trinn 3: Komme i gang - Maskinvare
Maskinvare-Tilkobling til et Arduino-kompatibelt kort (eller annen MCU) er ganske enkelt. Pinoutene er vist på baksiden av kretskortet, og matcher beslaget på båndkabelen. Hvis du ser på enden av kabelen som sådan.
Det øverste høyre hullet er pinne ett, med topp-venstre er pinne to, nederst til høyre pinne ni og nederst til venstre pinne ti. Derfor er pinoutene:
- Vcc (5V)
- GND
- CLK
- DIO
- STB1
- STB2
- STB3
- STB4
- STB5
- ikke tilkoblet.
For Arduino -bruk er pinnene 1 ~ 4 minimum nødvendig for å bruke en modul. Hver tilleggsmodul vil kreve en annen digital pinne koblet til STB2, STB3, etc. Mer om dette senere. Vær oppmerksom på at hver modul satt til full lysstyrke for hver LED på, bruker 127mA, så det ville være lurt å bruke ekstern strøm med mer enn én modul og andre tilkoblinger med Arduino -kort.
Trinn 4: Komme i gang - Programvare
Programvare - last ned og installer T1638 -biblioteket herfra. Takk og ros til rjbatista på gmail dot com for biblioteket. Det er enkelt å initialisere moduler i skissen. Inkluder biblioteket med:
#inkludere
bruk deretter ett av følgende for hver modul:
TM1638 -modul (x, y, z);
x er den digitale Arduino -pinnen som er koblet til modulens kabelpinne 4, y er den digitale Arduino -pinnen som er koblet til modulens kabelpinne 3, og z er strobetappen. Så hvis du hadde en modul med data, klokke og strobe koblet til pinne 8, 7 og 6, ville du brukt:
TM1638 -modul (8, 7, 6);
Hvis du hadde to moduler, med modulens strobe koblet til Arduino digital 6, og modul tos strobe koblet til digital 5, ville du bruke:
TM1638 -modul (8, 7, 6); TM1638 -modul (8, 7, 5);
og så videre for flere moduler. Nå for å kontrollere skjermen …
Trinn 5: Bi-farge lysdioder
Det er enkelt å kontrollere de røde/grønne lysdiodene. Til referanse er de nummerert null til syv fra venstre til høyre. For å slå på eller av en enkelt LED, bruk følgende:
module.setLED (TM1638_COLOR_RED, x); // sett LED -nummer x til redmodule.setLED (TM1638_COLOR_GREEN, x); // sett LED -nummer x til grønn modul.setLED (TM1638_COLOR_RED+TM1638_COLOR_GREEN, 0); // sett LED nummer x til rødt og grønt
Å bruke metoden ovenfor kan være enkel, den er litt ineffektiv. En bedre måte er å adressere alle lysdiodene i en uttalelse. For å gjøre dette sender vi to byte med data i heksadesimal til skjermen. MSB (mest signifikante byte) består av åtte bits, hver representerer en grønn LED som er på (1) eller av (0). LSB (minst signifikant byte) representerer de røde lysdiodene.
En enkel måte å bestemme den heksadesimale verdien for å kontrollere lysdiodene på er enkel, bildet du har en rad med lysdioder - den første åtte er grønn og den andre åtte er rød. Sett hvert siffer til 1 for på og 0 for av. Konverter de to binære tallene til heksadesimale og bruk denne funksjonen:
module.setLEDs (0xgrønn);
Hvor grønt er det heksadesimale tallet for de grønne lysdiodene og rødt er det heksadesimale tallet for de røde lysdiodene. For eksempel, for å slå på de tre første lysdiodene som røde, og de tre siste som grønne, vil den binære representasjonen være:
00000111 11100000 som i heksadesimal er E007.
Så vi vil bruke:
module.setLEDs (0xE007);
som produserer bildet som vist ovenfor.
Trinn 6: 7-segmentet Display
For å slette det numeriske displayet (men ikke lysdiodene nedenfor), bruker du bare:
module.clearDisplay ();
eller for å slå på hvert segment OG alle lysdiodene, bruk følgende
module.setupDisplay (true, 7); // hvor 7 er intensitet (fra 0 ~ 7)
For å vise desimaltall, bruk funksjonen:
module.setDisplayToDecNumber (a, b, false);
hvor a er heltall, b er posisjonen for desimaltegnet (0 for ingen, 1 for siffer 8, 2, for siffer 7, 4 for siffer 6, 8 for siffer 4, etc) og den siste parameteren (true/ false) slår på eller av ledende nuller. Følgende skisse viser bruken av denne funksjonen:
#include // definere en modul på datapinne 8, klokkepinne 9 og stroppinne 7 TM1638 -modul (8, 9, 7); usignert 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 resultatene vist i videoen.
Trinn 7:
En av de mest interessante funksjonene er muligheten til å rulle tekst over en eller flere skjermer. For å gjøre dette trenger du egentlig ikke en forklaring som den medfølgende demonstrasjonsskissen:
tm_1638_scrolling_modules_example.pde
følger med TM1638 -biblioteket er lett å følge. Bare sett inn teksten din i const char -strengen , sørg for at modulen (e) er koblet i henhold til moduldefinisjonen i begynnelsen av skissen, og du er klar. For å se de tilgjengelige tegnene, gå til funksjonssiden. Vær oppmerksom på at displayet bare er syv segmenter, så noen tegn ser kanskje ikke perfekte ut, men i kontekst vil det gi deg en god idé-se videoen i dette trinnet.
Trinn 8:
Til slutt kan du også individuelt adressere hvert segment av hvert siffer. Vurder innholdet i denne matrisen:
byteverdier = {1, 2, 4, 8, 16, 32, 64, 128};
hvert element representerer sifrene 1 ~ 8. Verdien av hvert element bestemmer hvilket segment av sifferet som slås på. For segmenter a ~ f, dp er verdiene 1, 2, 4, 6, 16, 32, 64, 128. Så resultatene av å bruke matrisen ovenfor i følgende funksjon:
module.setDisplay (verdier);
vil være per bildet.
Trinn 9:
Naturligvis kan du kombinere verdier for hvert siffer for å lage dine egne tegn, symboler osv. For eksempel ved å bruke følgende verdier:
byteverdier = {99, 99, 99, 99, 99, 99, 99, 99};
vi opprettet i henhold til bildet i dette trinnet.
Trinn 10: Knappene
Verdiene til knappene returneres som en byteverdi fra funksjonen:
module.getButtons ();
Siden det er åtte knapper, representerer hver enkelt en bit av et binært tall som returneres som en byte. Knappen til venstre returnerer desimal en, og høyre returnerer 128. Den kan også returnere samtidige trykk, så trykk på knappene en og åtte returnerer 129. Vurder følgende skisse, som returnerer verdiene til knappetrykkene i desimalform, og viser deretter verdien:
#include // definere en modul på datapinne 8, klokkepinne 9 og stroppinne 7 TM1638 -modul (8, 9, 7); byte knapper; void setup () {} void loop () {buttons = module.getButtons (); module.setDisplayToDecNumber (knapper, 0, usanne); }
og resultatene i videoen.
Disse skjermtavlene er nyttige og finner forhåpentligvis et hjem i prosjektene dine. Dette innlegget ble brakt til deg av pmdway.com - og tilbyr alt for produsenter og elektronikkentusiaster, med gratis levering over hele verden.
Anbefalt:
DIY Fitness Tracker Smart Watch med oksymeter og puls - Modulære elektroniske moduler fra TinyCircuits - Minste arkade: 6 trinn
DIY Fitness Tracker Smart Watch med oksymeter og puls | Modulære elektroniske moduler fra TinyCircuits | Minste arkade: Hei, hva skjer, gutter! Akarsh her fra CETech. I dag har vi med oss noen av sensormodulene som er veldig nyttige i vårt daglige liv, men i en liten versjon av seg selv. Sensorene vi har i dag er veldig små i størrelse sammenlignet med tra
DIY Walkie-Talkie med generiske 433MHz RF-moduler: 4 trinn
DIY Walkie-Talkie med generiske 433MHz RF-moduler: I dette prosjektet vil jeg vise deg hvordan du bruker generiske 433MHz RF-moduler fra Ebay for å lage en funksjonell Walkie-Talkie. Det betyr at vi vil sammenligne forskjellige RF-moduler, lære litt om en klasse d-forsterker og til slutt bygge Walkie-Talkie
Kul belysning for Fre (LED -moduler): 9 trinn
Cool Lighting for Fre (LED -moduler): i denne instruksjonsboken laget jeg små LED -lamper for noen fine lyseffekter. Jeg brukte resirkulerte batterier fordi det var gratis, men du kan bruke det batteriet du vil
En ekstremt enkel måte å komme i gang med hjemmeautomatisering ved hjelp av DIY -moduler: 6 trinn
En ekstremt enkel måte å komme i gang med hjemmeautomatisering ved hjelp av DIY -moduler: Jeg ble positivt overrasket da jeg bestemte meg for å prøve å legge til noen DIY -sensorer til hjemmeassistenten. Å bruke ESPHome er ekstremt enkelt, og i dette innlegget vil vi lære å kontrollere en GPIO -pin og også oppnå temperatur og amp; fuktighetsdata fra et trådløst n
RSSI til avstand med RF -moduler (Xbees): 4 trinn
RSSI til avstand med RF -moduler (Xbees): Xbees er små radiofrekvensmoduler som kan være nyttige for å sende informasjon frem og tilbake, og noen andre mer spesifikke bruksområder. For dette prosjektet bruker jeg dem til å få mottatte RSSI -verdier (Signal Strength Indicator) for å estimere dis