Inhoudsopgave:
- Stap 1:
- Stap 2:
- Stap 3: Aan de slag - Hardware
- Stap 4: Aan de slag - Software
- Stap 5: De tweekleurige LED's
- Stap 6: Het 7-segments display
- Stap 7:
- Stap 8:
- Stap 9:
- Stap 10: De knoppen
Video: Arduino en TM1638 LED-displaymodules - Ajarnpa
2024 Auteur: John Day | [email protected]. Laatst gewijzigd: 2024-01-30 11:16
Als je een snelle en gemakkelijke manier nodig hebt om wat gebruikersinvoer en -uitvoer aan een project toe te voegen, zijn deze weergavemodules interessant en leuk.
Ze bevatten acht 7-segments rode LED-cijfers, acht rood/groene LED's en ook acht knoppen voor gebruikersinvoer. De units kunnen ook in serie worden geschakeld, zodat er maximaal vijf tegelijk kunnen worden gebruikt, en bij elke module wordt een korte kabel meegeleverd, evenals enkele korte afstandhouders en bouten, zoals weergegeven in de afbeelding.
Stap 1:
De afstandhouders zijn net lang genoeg om de printplaat boven een oppervlak te brengen, maar om de printplaten overal te monteren waar u maar wilt, heeft u langere nodig. U kunt ook de IDC-sockets verwijderen als u de module dicht bij het oppervlak van een paneel wilt monteren. Dit zou een eenvoudige desoldeertaak zijn, omdat het doorlopende sockets zijn.
Stap 2:
Het bord wordt aangestuurd door een TM1638 IC.
Dit is een LED en interface driver IC van "Titan Micro Electronics". U kunt deze IC's ook kopen bij PMD Way. U kunt ook de datasheet downloaden voor meer details.
Stap 3: Aan de slag - Hardware
Hardware - Aansluiting op een Arduino-compatibel bord (of andere MCU) is vrij eenvoudig. De pinouts staan op de achterkant van de print en komen overeen met de fitting op de lintkabel. Als je het uiteinde van de kabel als zodanig bekijkt.
Het gat rechtsboven is pin één, linksboven pin twee, pin rechtsonder negen en pin linksonder tien. Daarom zijn de pinouts:
- Vcc (5V)
- GND
- CLK
- DIO
- STB1
- STB2
- STB3
- STB4
- STB5
- niet verbonden.
Voor Arduino-gebruik zijn pinnen 1 ~ 4 het minimum dat nodig is om één module te gebruiken. Elke extra module heeft een andere digitale pin nodig die is aangesloten op STB2, STB3, enz. Hierover later meer. Houd er rekening mee dat elke module die op volledige helderheid is ingesteld met elke LED aan 127mA verbruikt, dus het zou verstandig zijn om externe voeding te gebruiken met meer dan één module en andere verbindingen met Arduino-kaarten.
Stap 4: Aan de slag - Software
Software - download en installeer de T1638-bibliotheek vanaf hier. Bedankt en een pluim voor rjbatista op gmail dot com voor de bibliotheek. Het initialiseren van modules in de schets is eenvoudig. Voeg de bibliotheek toe met:
#erbij betrekken
gebruik dan een van de volgende voor elke module:
TM1638-module (x, y, z);
x is de Arduino digitale pin aangesloten op de module kabel pin 4, y is de Arduino digitale pin aangesloten op de module kabel pin 3, en z is de stroboscoop pin. Dus als je één module had met data, klok en stroboscoop aangesloten op pinnen 8, 7 en 6, zou je gebruiken:
TM1638-module (8, 7, 6);
Als u twee modules had, met de flitser van module één aangesloten op Arduino digital 6 en de flitser van module twee aangesloten op digitale 5, zou u het volgende gebruiken:
TM1638-module (8, 7, 6); TM1638-module (8, 7, 5);
enzovoort voor meer modules. Nu het display bedienen…
Stap 5: De tweekleurige LED's
Het bedienen van de rood/groene LED's is eenvoudig. Ter referentie zijn ze van links naar rechts genummerd van nul tot zeven. Gebruik het volgende om een enkele LED in of uit te schakelen:
module.setLED(TM1638_COLOR_RED, x); // stel LED-nummer x in op redmodule.setLED (TM1638_COLOR_GREEN, x); // stel LED-nummer x in op groene module.setLED (TM1638_COLOR_RED+TM1638_COLOR_GREEN, 0); // stel LED-nummer x in op rood en groen
Het gebruik van de bovenstaande methode kan eenvoudig zijn, het is enigszins inefficiënt. Een betere manier is om alle LED's in één verklaring aan te pakken. Om dit te doen, sturen we twee bytes aan gegevens in hexadecimaal naar het display. De MSB (meest significante byte) bestaat uit acht bits, die elk een groene LED vertegenwoordigen die aan (1) of uit (0) is. De LSB (minst significante byte) vertegenwoordigt de rode LED's.
Een gemakkelijke manier om de hexadecimale waarde te bepalen om de LED's aan te sturen, is eenvoudig, je hebt een rij LED's - de eerste acht zijn groen en de tweede acht zijn rood. Stel elk cijfer in op 1 voor aan en 0 voor uit. Zet de twee binaire getallen om naar hexadecimaal en gebruik deze functie:
module.setLED's (0xgroenrood);
Waar groen het hexadecimale getal is voor de groene LED's en rood het hexadecimale nummer is voor de rode LED's. Als u bijvoorbeeld de eerste drie LED's als rood en de laatste drie als groen wilt inschakelen, is de binaire weergave:
00000111 11100000 wat in hexadecimaal E007 is.
Dus we zouden gebruiken:
module.setLEDs(0xE007);
die de afbeelding produceert zoals hierboven weergegeven.
Stap 6: Het 7-segments display
Om het numerieke display te wissen (maar niet de onderstaande LED's), gebruikt u eenvoudig:
module.clearDisplay();
of om elk segment EN alle LED's in te schakelen, gebruikt u het volgende:
module.setupDisplay(true, 7); // waarbij 7 intensiteit is (van 0 ~ 7)
Gebruik de functie om decimale getallen weer te geven:
module.setDisplayToDecNumber(a, b, false);
waarbij a het gehele getal is, b de positie voor de komma (0 voor geen, 1 voor cijfer 8, 2, voor cijfer 7, 4 voor cijfer 6, 8 voor cijfer 4, enz.), en de laatste parameter (true/ false) schakelt voorloopnullen in of uit. De volgende schets laat het gebruik van deze functie zien:
#include // definieer een module op datapin 8, klokpin 9 en stroboscooppin 7 TM1638-module (8, 9, 7); niet-ondertekend lang a=1; void setup(){} void loop() { for (a=10000; a<11000; a++) { module.setDisplayToDecNumber(a, 4, false); vertraging(1); } for (a=10000; a<11000; a++) { module.setDisplayToDecNumber(a, 0, true); vertraging(1); } }
… met de resultaten die in de video worden getoond.
Stap 7:
Een van de meest interessante functies is de mogelijkheid om tekst over een of meer schermen te scrollen. Om dit te doen is niet echt een uitleg nodig, zoals de meegeleverde demonstratieschets:
tm_1638_scrolling_modules_example.pde
meegeleverd met de TM1638-bibliotheek is gemakkelijk te volgen. Voeg gewoon uw tekst in de const char string , zorg ervoor dat de module(s) bedraad zijn volgens de moduledefinitie aan het begin van de schets en u bent klaar. Ga naar de functiepagina om de beschikbare tekens te zien. Houd er rekening mee dat het scherm slechts uit zeven segmenten bestaat, dus sommige tekens zien er misschien niet perfect uit, maar in de context krijgt u een goed idee - zie de video in deze stap.
Stap 8:
Ten slotte kunt u ook elk segment van elk cijfer afzonderlijk adresseren. Overweeg de inhoud van deze array:
bytewaarden = { 1, 2, 4, 8, 16, 32, 64, 128 };
elk element vertegenwoordigt cijfers 1~8. De waarde van elk element bepaalt welk segment van het cijfer wordt ingeschakeld. Voor segmenten a~f, dp zijn de waarden 1, 2, 4, 6, 16, 32, 64, 128. Dus de resultaten van het gebruik van de bovenstaande array in de volgende functie:
module.setDisplay (waarden);
zal zijn volgens de afbeelding.
Stap 9:
Uiteraard kunt u voor elk cijfer waarden combineren om uw eigen tekens, symbolen, enzovoort te maken. Gebruik bijvoorbeeld de volgende waarden:
bytewaarden = { 99, 99, 99, 99, 99, 99, 99, 99 };
we hebben gemaakt volgens de afbeelding in deze stap.
Stap 10: De knoppen
De waarden van de knoppen worden geretourneerd als een bytewaarde van de functie:
module.getButtons();
Omdat er acht knoppen zijn, vertegenwoordigt elk een bit van een binair getal dat wordt geretourneerd als een byte. De knop aan de linkerkant retourneert decimaal één, en de rechter retourneert 128. Het kan ook gelijktijdig drukken retourneren, dus het indrukken van de knoppen één en acht levert 129 op. Bekijk de volgende schets, die de waarden van de knopdrukken in decimale vorm retourneert, en toont dan de waarde:
#include // definieer een module op datapin 8, klokpin 9 en stroboscooppin 7 TM1638-module (8, 9, 7); byte-knoppen; void setup(){} void loop() { buttons=module.getButtons(); module.setDisplayToDecNumber(knoppen, 0, false); }
en de resultaten in de video.
Deze displayborden zijn nuttig en vinden hopelijk een thuis in uw projecten. Dit bericht aangeboden door pmdway.com - biedt alles voor makers en elektronica-enthousiastelingen, met gratis levering wereldwijd.
Aanbevolen:
Hoe maak je een LED-kubus - LED-kubus 4x4x4: 3 stappen
Hoe maak je een LED-kubus | LED Cube 4x4x4: Een LED Cube kan worden gezien als een LED-scherm, waarin eenvoudige 5 mm LED's de rol van digitale pixels spelen. Met een LED-kubus kunnen we afbeeldingen en patronen creëren door gebruik te maken van het concept van een optisch fenomeen dat bekend staat als persistentie van het gezichtsvermogen (POV). Dus
DIY SCHIJNWERPER W/AC LED's (+EFFICIENCY VS DC LED's): 21 stappen (met afbeeldingen)
DIY FLOODLIGHT W/AC LED's (+EFFICIENCY VS DC LED's): In deze instructable/video maak ik een schijnwerper met extreem goedkope driverless AC LED-chips. Zijn ze goed? Of zijn het complete rommel? Om dat te beantwoorden, zal ik een volledige vergelijking maken met al mijn gemaakte DIY-lampen. Zoals gewoonlijk, voor goedkope
Eenvoudige LED-striplampen (upgrade van uw LED-strips): 4 stappen (met afbeeldingen)
Eenvoudige LED-striplampen (upgrade uw LED-strips): ik gebruik al een tijdje LED-strips en heb altijd genoten van de eenvoud ervan. Je knipt gewoon een stukje van een rol af, soldeert er wat draden aan, sluit een voeding aan en je hebt een lichtbron. Door de jaren heen heb ik een c
Muziek Reactieve Multicolor LED Verlichting - Arduino-geluidsdetectiesensor - RGB LED-strip: 4 stappen
Muziek Reactieve Multicolor LED Verlichting | Arduino-geluidsdetectiesensor | RGB LED Strip: Muziek-reactief meerkleurig LED-lichtproject. In dit project werden een eenvoudige 5050 RGB LED-strip (niet de adresseerbare LED WS2812), Arduino-geluidsdetectiesensor en 12V-adapter gebruikt
Goedkoopste Arduino -- Kleinste Arduino -- Arduino Pro Mini -- Programmeren -- Arduino Neno: 6 stappen (met afbeeldingen)
Goedkoopste Arduino || Kleinste Arduino || Arduino Pro Mini || Programmeren || Arduino Neno:…………………………….. ABONNEER aub op mijn YouTube-kanaal voor meer video's……. Dit project gaat over hoe je een kleinste en goedkoopste arduino ooit kunt aansluiten. De kleinste en goedkoopste arduino is arduino pro mini. Het lijkt op arduino