Innehållsförteckning:
- Steg 1:
- Steg 2:
- Steg 3: Komma igång - Hårdvara
- Steg 4: Komma igång - Programvara
- Steg 5: Bifärgade lysdioder
- Steg 6: 7-segmentskärmen
- Steg 7:
- Steg 8:
- Steg 9:
- Steg 10: Knapparna
Video: Arduino och TM1638 LED -displaymoduler: 11 steg
2024 Författare: John Day | [email protected]. Senast ändrad: 2024-01-30 12:44
Om du behöver ett snabbt och enkelt sätt att lägga till användarinmatning och utdata till ett projekt är dessa visningsmoduler intressanta och roliga.
De innehåller åtta 7-segment röda LED-siffror, åtta röda/gröna lysdioder och även åtta knappar för användarinmatning. Enheterna kan också kopplas ihop med tusensköna, vilket möjliggör upp till fem samtidigt, och en kort kabel medföljer varje modul samt några korta distanser och bultar, som visas på bilden.
Steg 1:
Distanserna är precis tillräckligt långa för att lyfta kretskortet ovanför en yta, men för att montera brädorna var som helst användbart skulle du behöva längre sådana. Du kanske också vill ta bort IDC -uttagen om du vill montera modulen nära panelens yta. Detta skulle vara en enkel avlödningsuppgift eftersom de är genomgående hål.
Steg 2:
Kortet styrs av en TM1638 IC.
Detta är en LED och gränssnittsdrivrutin IC från "Titan Micro Electronics". Du kan också köpa dessa IC: er från PMD Way. Du kan också ladda ner databladet för mer information.
Steg 3: Komma igång - Hårdvara
Hårdvara-Anslutning till ett Arduino-kompatibelt kort (eller annan MCU) är ganska enkelt. Pinouterna visas på baksidan av kretskortet och matchar kopplingen på bandkabeln. Om du tittar på kabeländen som sådan.
Det övre högra hålet är stift ett, med det övre vänstra är stift två, det nedre högra stiftet nio och det nedre vänstra stiftet tio. Därför är pinouts:
- Vcc (5V)
- GND
- CLK
- DIO
- STB1
- STB2
- STB3
- STB4
- STB5
- ej ansluten.
För Arduino -användning är stift 1 ~ 4 det minimum som krävs för att använda en modul. Varje ytterligare modul kommer att kräva en annan digital stift ansluten till STB2, STB3, etc. Mer om detta senare. Observera att varje modul som är inställd på full ljusstyrka med varje lysdiod tänd förbrukar 127mA, så det vore klokt att använda extern ström med mer än en modul och andra anslutningar med Arduino -kort.
Steg 4: Komma igång - Programvara
Programvara - ladda ner och installera T1638 -biblioteket härifrån. Tack och kudos till rjbatista på gmail dot com för biblioteket. Att initialisera moduler i skissen är enkelt. Inkludera biblioteket med:
#omfatta
använd sedan något av följande för varje modul:
TM1638 -modul (x, y, z);
x är den Arduino digitala stift som är ansluten till modulens kabelstift 4, y är den Arduino digitala stift som är ansluten till modulens kabelstift 3 och z är strobetappen. Så om du hade en modul med data, klocka och strobe ansluten till stift 8, 7 och 6 skulle du använda:
TM1638 -modul (8, 7, 6);
Om du hade två moduler, med modulens strobe ansluten till Arduino digital 6 och modul tvås strobe ansluten till digital 5, skulle du använda:
TM1638 -modul (8, 7, 6); TM1638 -modul (8, 7, 5);
och så vidare för fler moduler. Nu för att styra displayen …
Steg 5: Bifärgade lysdioder
Det är enkelt att styra de röda/gröna lysdioderna. Som referens är de numrerade noll till sju från vänster till höger. För att slå på eller stänga av en enda lysdiod, använd följande:
module.setLED (TM1638_COLOR_RED, x); // ställ in LED -nummer x till redmodule.setLED (TM1638_COLOR_GREEN, x); // ställ in LED -nummer x till grön modul.setLED (TM1638_COLOR_RED+TM1638_COLOR_GREEN, 0); // ställ LED nummer x till rött och grönt
Att använda metoden ovan kan vara enkel, det är något ineffektivt. Ett bättre sätt är att adressera alla lysdioder i ett uttalande. För att göra detta skickar vi två byte med data i hexadecimal till displayen. MSB (mest signifikanta byte) består av åtta bitar, var och en representerar en grön lysdiod som är på (1) eller av (0). LSB (minst signifikant byte) representerar de röda lysdioderna.
Ett enkelt sätt att bestämma det hexadecimala värdet för att styra lysdioderna är enkelt, bilden du har en rad lysdioder - de första åtta är gröna och de andra åtta är röda. Ställ in varje siffra på 1 för på och 0 för av. Konvertera de två binära talen till hexadecimal och använd den här funktionen:
module.setLED (0xgrön);
Där grönt är hexadecimaltalet för de gröna lysdioderna och rött är hexadecimaltalet för de röda lysdioderna. Till exempel, för att slå på de tre första lysdioderna som röda och de tre sista som gröna, kommer den binära representationen att vara:
00000111 11100000 som i hexadecimal är E007.
Så vi skulle använda:
module.setLEDs (0xE007);
som producerar bilden enligt ovan.
Steg 6: 7-segmentskärmen
För att rensa den numeriska displayen (men inte lysdioderna nedan), använd helt enkelt:
module.clearDisplay ();
eller för att slå på varje segment OCH alla lysdioder, använd följande
module.setupDisplay (true, 7); // där 7 är intensitet (från 0 ~ 7)
Använd funktionen för att visa decimaltal:
module.setDisplayToDecNumber (a, b, false);
där a är heltalet, b är positionen för decimalpunkten (0 för ingen, 1 för siffra 8, 2, för siffra 7, 4 för siffra 6, 8 för siffra 4, etc) och den sista parametern (true/ false) slår på eller av ledande nollor. Följande skiss visar användningen av denna funktion:
#include // definiera en modul på datastift 8, klockstift 9 och strobstift 7 TM1638 -modul (8, 9, 7); osignerad lång a = 1; void setup () {} void loop () {för (a = 10000; a <11000; a ++) {module.setDisplayToDecNumber (a, 4, false); fördröjning (1); } för (a = 10000; a <11000; a ++) {module.setDisplayToDecNumber (a, 0, true); fördröjning (1); }}
… med resultaten som visas i videon.
Steg 7:
En av de mest intressanta funktionerna är möjligheten att rulla text över en eller flera skärmar. För att göra det behöver du inte riktigt en förklaring eftersom den medföljande demonstrationsskissen:
tm_1638_scrolling_modules_example.pde
som ingår i TM1638 -biblioteket följs enkelt. Sätt bara in din text i const char -strängen , se till att modulen / modulerna är anslutna enligt moduldefinitionen i början av skissen och du är klar. Besök funktionssidan för att se de tillgängliga tecknen. Observera att displayen bara är sju segment, så vissa tecken kanske inte ser perfekta ut, men i sammanhanget kommer du att få en bra idé-se videon i det här steget.
Steg 8:
Slutligen kan du också individuellt adressera varje segment i varje siffra. Tänk på innehållet i den här matrisen:
bytevärden = {1, 2, 4, 8, 16, 32, 64, 128};
varje element representerar siffrorna 1 ~ 8. Värdet på varje element avgör vilket segment av siffran som slås på. För segment a ~ f, dp är värdena 1, 2, 4, 6, 16, 32, 64, 128. Resultaten av att använda arrayen ovan i följande funktion:
module.setDisplay (värden);
kommer att vara enligt bilden.
Steg 9:
Naturligtvis kan du kombinera värden för varje siffra för att skapa dina egna tecken, symboler, etc. Till exempel med följande värden:
byte -värden = {99, 99, 99, 99, 99, 99, 99, 99};
vi skapade enligt bilden i detta steg.
Steg 10: Knapparna
Knapparnas värden returneras som ett byte -värde från funktionen:
module.getButtons ();
Eftersom det finns åtta knappar representerar var och en en bit av ett binärt tal som returneras som en byte. Knappen till vänster returnerar en decimal, och den högra returnerar 128. Den kan också returnera samtidiga tryckningar, så att trycka på knapparna ett och åtta returnerar 129. Tänk på följande skiss, som returnerar knapptryckningarnas värden i decimalform och visar sedan värdet:
#include // definiera en modul på datastift 8, klockstift 9 och strobstift 7 TM1638 -modul (8, 9, 7); byte -knappar; void setup () {} void loop () {buttons = module.getButtons (); module.setDisplayToDecNumber (knappar, 0, false); }
och resultaten i videon.
Dessa displayskivor är användbara och hittar förhoppningsvis ett hem i dina projekt. Det här inlägget kommer till dig av pmdway.com - erbjuder allt för tillverkare och elektronikentusiaster, med gratis leverans över hela världen.
Rekommenderad:
Hur man skapar och infogar en tabell och lägger till ytterligare kolumner och/eller rader till den tabellen i Microsoft Office Word 2007: 11 steg
Hur man skapar och infogar en tabell och lägger till ytterligare kolumner och/eller rader till den tabellen i Microsoft Office Word 2007: Har du någonsin haft mycket data du arbetar med och tänkt för dig själv … " hur kan jag göra allt av dessa data ser bättre ut och blir lättare att förstå? " Om så är fallet kan en tabell i Microsoft Office Word 2007 vara ditt svar
Ansiktsigenkänning och identifiering - Arduino Face ID med OpenCV Python och Arduino .: 6 steg
Ansiktsigenkänning och identifiering | Arduino Face ID Med OpenCV Python och Arduino .: Ansiktsigenkänning AKA face ID är en av de viktigaste funktionerna på mobiltelefoner nuförtiden. Så jag hade en fråga " kan jag ha ett ansikts -id för mitt Arduino -projekt " och svaret är ja … Min resa började enligt följande: Steg 1: Tillgång till vi
Ansluter bearbetning och Arduino och gör 7 segment och servo GUI -kontroller: 4 steg
Ansluta bearbetning och Arduino och göra 7 segment och servo GUI -kontroller: För vissa projekt måste du använda Arduino eftersom det ger en enkel prototypplattform men visning av grafik i seriell bildskärm av Arduino kan ta ganska lång tid och är till och med svårt att göra. Du kan visa grafer på Arduino Serial Monitor
8 Reläkontroll med NodeMCU och IR -mottagare med WiFi och IR -fjärrkontroll och Android -app: 5 steg (med bilder)
8 Reläkontroll med NodeMCU och IR -mottagare med WiFi och IR -fjärrkontroll och Android -app: Styrning av 8 reläväxlar med nodemcu och IR -mottagare via wifi och IR -fjärrkontroll och Android -app. Fjärrkontrollen fungerar oberoende av wifi -anslutning. HÄR ÄR EN UPPDATERAD VERSIONKLICK HÄR
Temperatur och fuktighet Display och datainsamling med Arduino och bearbetning: 13 steg (med bilder)
Temperatur- och luftfuktighetsvisning och datainsamling med Arduino och bearbetning: Intro: Detta är ett projekt som använder ett Arduino -kort, en sensor (DHT11), en Windows -dator och ett bearbetningsprogram (ett gratis nedladdningsbart) för att visa temperatur, luftfuktighetsdata i digital och stapeldiagramform, visa tid och datum och kör en räkningstid