Inhoudsopgave:
- Stap 1: Componenten
- Stap 2: Eerste prototypes
- Stap 3: PCB-ontwerp
- Stap 4: Programmeren
- Stap 5: Testen
- Stap 6: Conclusie & volgende stappen
Video: Meerdere LED-displaymodule: 6 stappen (met afbeeldingen)
2024 Auteur: John Day | [email protected]. Laatst gewijzigd: 2024-01-30 11:17
Hallo allemaal, Ik werk graag met LED-displays met 7 segmenten of met dot matrix en heb daar al veel verschillende projecten mee gedaan.
Elke keer zijn ze interessant omdat er een soort magie zit in hoe ze kunnen werken, want wat je ziet is een optische illusie!
Displays hebben veel pinnen voor verbinding met een Arduino (of een andere microcontroller) en de beste oplossing is om de techniek van datamultiplexing toe te passen om het gebruik van hun poorten te minimaliseren.
Wanneer u dit doet, wordt elk segment of elke LED een paar ogenblikken (milliseconden of minder) ingeschakeld, maar de herhaling daarvan in zoveel keren per seconde creëert de illusie van het beeld dat u wilt laten zien.
Voor mij is het meest interessante om de logica, het programma, te ontwikkelen om erachter te komen hoe ze de juiste informatie kunnen tonen volgens uw project.
In een enkel project kost het gebruik van displays veel tijd om alle componenten op een breadboard te monteren met veel draden voor verbindingen.
Ik weet dat er veel verschillende beeldschermen op de markt zijn met I2C, met vereenvoudigde manieren (of niet), om ze te programmeren en ik heb ze ook gebruikt, maar ik werk liever met standaardcomponenten zoals 74HC595 (multiplexer IC) en ULN2803 (stuurprogramma's) omdat ze geven u meer controle over uw programma en ook meer robuustheid en betrouwbaarheid in uw gebruik.
Om het assemblageproces te vereenvoudigen, heb ik een LED Dipslay-module ontwikkeld voor meerdere doeleinden met behulp van eenvoudige en gemeenschappelijke componenten in de Arduino-wereld.
Met deze module kunt u werken met dot-matrix met tweekleurige LED's in twee standaardformaten (groter en kleiner) en ook kunt u 7 Seg x 4 Digits-displays bedienen die heel gebruikelijk zijn en gemakkelijk te vinden zijn op de markt.
En u kunt met deze modules ook in cascade op een seriële manier (verschillende data in displays) of op een parallelle manier (dezelfde data in displays) werken.
Dus laten we eens kijken hoe deze module kan werken en u helpen bij uw ontwikkelingen!
Video (LED-displaymodule)
Video (dotmatrixtest)
Groeten, LAGSILVA
Stap 1: Componenten
PCB (printplaat)
- 74HC595 (03x)
- ULN2803 (02x)
- Transistor PNP - BC327 (08x)
- Weerstand 150 Ohm (16x)
- Weerstand 470 Ohm (08x)
- Condensator 100 nF (03x)
- IC-voet 16 pinnen (03 x)
- IC-voet 18 pinnen (02 x)
- Pin connector vrouwelijk - 6 pins (8x)
- Pin headers 90º (01 x)
- Pin headers 180º (01 x)
- Conector Borne KRE 02 pinnen (02 x)
- PCB (01 x) - Gefabriceerd
anderen
- Arduino Uno R3 / Nano / vergelijkbaar
- LED-display 04 cijfers x 7 segmenten - (gemeenschappelijke anode)
- LED Dot Matrix Dual Color (groen en rood) - (gemeenschappelijke anode)
Belangrijke opmerkingen:
- Ik plaats de datasheet van alle belangrijkste componenten alleen als referentie, maar je moet de datasheet van je eigen componenten controleren voordat je ze gebruikt.
- Dit bord is ontworpen om alleen displays van COMMON ANODE te gebruiken.
Stap 2: Eerste prototypes
Mijn eerste prototype werd gemaakt op een breadboard om het circuit te testen.
Daarna heb ik nog een prototype gemaakt met een universeel bord zoals je op de foto's kunt zien.
Dit soort bord is interessant om snel een prototype te maken, maar je realiseert je dat er nog steeds veel draden overblijven.
Het is een functionele oplossing, maar niet zo elegant in vergelijking met een uiteindelijke vervaardigde PCB (de blauwe).
Ik ben niet goed met solderen omdat ik niet genoeg ervaring heb met dit proces, maar zelfs dit kreeg ik goede resultaten met beide ervaringen en belangrijker: ik heb geen enkel onderdeel verbrand en ook mijn handen niet!
Waarschijnlijk zullen de resultaten op mijn volgende bord beter zijn door de oefening.
Daarom moedig ik je aan om dit soort ervaring te proberen, omdat het uitstekend voor je zal zijn.
Houd er rekening mee dat u voorzichtig moet zijn met het hete strijkijzer en probeer niet meer dan enkele seconden aan een onderdeel te besteden om te voorkomen dat het verbrandt !!
En tot slot, op YouTube kun je veel video's vinden over solderen die je kunt leren voordat je naar de echte wereld gaat.
Stap 3: PCB-ontwerp
Ik heb deze PCB ontworpen met behulp van speciale software om een dubbellaags bord te maken en er zijn verschillende versies voor deze laatste ontwikkeld.
In het begin had ik één versie voor elk soort beeldscherm en uiteindelijk besloot ik alles in één versie te combineren.
Ontwerpdoelen:
- Eenvoudig en handig voor prototypes.
- Eenvoudige installatie en uitbreidbaar.
- Geschikt om 3 verschillende soorten displays te gebruiken.
- Maximale breedte van de grote dot matrix van LED.
- Maximale lengte bij 100 mm om de productiekosten van het bord te minimaliseren.
- Pas traditionele componenten toe in plaats van SMD om meer problemen tijdens het handmatige soldeerproces te voorkomen.
- Het bord moet modulair zijn om in cascade met een ander bord te kunnen worden verbonden.
- Seriële of parallelle uitgang voor een ander bord.
- Meerdere boards mogen alleen door een Arduino worden bestuurd.
- Slechts 3 datadraden voor Arduino's verbinding.
- Externe 5V stroomaansluiting.
- Vergroot de elektrische robuustheid door transistors en drivers (ULN2803) toe te passen om de LEDS aan te sturen.
Opmerking:
Met betrekking tot dit laatste item raad ik u aan mijn andere Instructables over deze componenten te lezen:
Schakelregister 74HC595 gebruiken met ULN2803, UDN2981 en BC327
PCB-productie:
Nadat het ontwerp klaar was, stuurde ik het naar een PCB-fabrikant in China na veel zoeken bij verschillende lokale leveranciers en in verschillende landen.
Het belangrijkste probleem was het aantal boards versus de kosten, omdat ik er maar een paar nodig heb.
Uiteindelijk heb ik besloten om een reguliere bestelling (geen expresbestelling vanwege hogere kosten) van slechts 10 boards te plaatsen bij een bedrijf in China.
Na slechts 3 dagen werden de boards gefabriceerd en in meer dan 4 dagen de wereld overgestoken.
De resultaten waren uitstekend!!
Binnen een week na de bestelling had ik de planken in mijn handen en ik was echt onder de indruk van de hoge kwaliteit en de hoge snelheid!
Stap 4: Programmeren
Voor het programmeren moet u rekening houden met enkele belangrijke concepten over het hardware-ontwerp en over het schuifregister 74HC595.
De belangrijkste functie van de 74HC595 is het transformeren van 8-Bit Serial-In naar 8 Parallel-Out Shift.
Alle seriële gegevens gaan naar pin #14 en bij elk kloksignaal gaan de bits naar de bijbehorende parallel-out-pinnen (Qa tot Qh).
Als je continu meer data stuurt, worden de bits één voor één verplaatst naar Pin #9 (Qh') als seriële uitgang en door deze functionaliteit kun je een andere chips in cascade aansluiten.
Belangrijk:
In dit project hebben we drie IC's van 74HC595. De eerste twee werken om de kolommen te besturen (met POSITIEVE logica) en de laatste om de lijnen te besturen (met NEGATIEVE logica omdat de PNP-transistoren werken).
Positieve logica betekent dat je een HOOG niveau signaal (+5V) van Arduino moet sturen en negatieve logica betekent dat je een LAAG niveau signaal (0V) moet sturen.
Puntmatrix van LED's
- De eerste is voor de uitgangen van de kathodes van Rode LED's (8 x) >> KOLOM ROOD (1 tot 8).
- De tweede is voor de outputL van de kathodes van Groene LED's (8 x) >> KOLOM GROEN (1 tot 8).
- De laatste is voor de output van anodes van alle LED's (08 x rood en groen) >> LIJNEN (1 tot 8).
Als u bijvoorbeeld alleen de groene LED van kolom 1 en regel 1 wilt inschakelen, moet u de volgende reeks seriële gegevens verzenden:
1º) LIJNEN
~10000000 (alleen de eerste regel is ingeschakeld) - Het symbool ~ is om alle bits van 1 naar 0 om te keren en vice versa.
2º) KOLOM Groen
10000000 (alleen de eerste kolom van de groene LED is ingeschakeld)
3º) KOLOM ROOD
00000000 (alle kolommen met rode LED's zijn uit)
Arduino-verklaringen:
shiftOut(dataPin, clockPin, LSBFIRST, ~B10000000); // Negatieve logica voor de lijnen
shiftOut(dataPin, klokPin, LSBFIRST, B10000000); // Positieve logica voor de groene kolommen
shiftOut(dataPin, klokPin, LSBFIRST, B00000000); // Positieve logica voor de rode kolommen
Opmerking:
U kunt beide LED's (groen en rood) ook combineren om de kleur GEEL als volgt te produceren:
shiftOut(dataPin, clockPin, LSBFIRST, ~B10000000);
shiftOut(dataPin, klokPin, LSBFIRST, B10000000);
shiftOut(dataPin, klokPin, LSBFIRST, B10000000);
7 segmenten weergave
Voor dit soort displays is de volgorde hetzelfde. Het enige verschil is dat u de Groene LED's niet hoeft te gebruiken.
1º) CIJFER (1 tot 4 van links naar rechts) ~10000000 (stel cijfer #1 in)
~01000000 (stel cijfer #2 in)
~00100000 (stel cijfer #3 in)
~00010000 (stel cijfer #4 in)
2º) NIET GEBRUIKT
00000000 (alle bits op nul gezet)
3º) SEGMENTEN (A tot F en DP - controleer uw weergavegegevensblad)
10000000 (stel segment A in)
01000000 (stel segment B in)
00100000 (set segment C)
00010000 (set segment D)
00001000 (stel segment E in)
00000100 (stel segment F in)
00000010 (set segment G)
00000001 (set DP)
Arduino voorbeeld om Display #2 in te stellen met nummer 3:
shiftOut(dataPin, clockPin, LSBFIRST, ~B01000000); //Stel DISPLAY 2 in (negatieve logica)
shiftOut(dataPin, klokPin, LSBFIRST, 0); // Zet gegevens op nul (niet gebruikt)
shiftOut(dataPin, klokPin, LSBFIRST, B11110010); //Set segmenten A, B, C, D, G)
Als u dit proces toepast, kunt u ten slotte elke LED van uw display bedienen en kunt u ook speciale tekens maken die u nodig hebt.
Stap 5: Testen
Hier zijn twee programma's als voorbeeld van functionaliteit van de Display Module.
1) Countdown-weergave (van 999,9 seconden tot nul)
2) Dot Matrix (cijfers 0 tot 9 en alfabet A tot Z)
3) Digitale klok RTC in LED-display van 4 cijfers en 7 segmenten
Deze laatste is een update van mijn eerste versie van Digital Clock.
Stap 6: Conclusie & volgende stappen
Deze module zal nuttig zijn in alle toekomstige projecten die een LED-display vereisen.
Als volgende stappen zal ik meer boards samenstellen om er in cascademodus mee te werken en ik zal ook een bibliotheek ontwikkelen om het programmeren nog meer te vereenvoudigen.
Ik hoop dat je genoten hebt van dit project.
Stuur me alsjeblieft je opmerkingen, want dit is belangrijk om het project en de informatie van deze Instructable te verbeteren.
Groeten, LAGSILVA
26.mei.2016
Aanbevolen:
Achtergrond van meerdere afbeeldingen verwijderen met Photoshop 2020 - Ajarnpa
Achtergrond van meerdere afbeeldingen verwijderen met Photoshop 2020: het verwijderen van de achtergrond van een afbeelding is nu supereenvoudig! Zo gebruik je Adobe Photoshop 2020 om de achtergrond van meerdere (batch)afbeeldingen te verwijderen met een eenvoudig script
Meerdere ESP-gesprekken voeren via ESP-NOW met ESP32 en ESP8266: 8 stappen
Meerdere ESP-gesprekken maken via ESP-NOW ESP32 en ESP8266 gebruiken: voor mijn lopende project heb ik meerdere ESP nodig om met elkaar te praten zonder een router. Om dit te doen, zal ik de ESP-NOW gebruiken om draadloos met elkaar te communiceren zonder een router op de ESP
Meerdere LED's besturen met Python en de GPIO-pinnen van je Raspberry Pi: 4 stappen (met afbeeldingen)
Meerdere LED's besturen met Python en de GPIO-pinnen van je Raspberry Pi: deze Instructable laat zien hoe je meerdere GPIO-pinnen op je RaspberryPi kunt besturen om 4 LED's van stroom te voorzien. Het zal je ook kennis laten maken met parameters en voorwaardelijke uitspraken in Python.Onze vorige Instructable met behulp van de GPIO-pinnen van je Raspberry Pi om
Arduino Werken met meerdere bestanden (LEZEN/SCHRIJVEN): 4 stappen
Arduino werkt met meerdere bestanden (LEZEN/SCHRIJVEN): Hallo allemaal, vandaag presenteer ik jullie een Arduino-project dat werkt met een RTC-schild dat gegevens kan opslaan. De hoofdtaak van dit project is het werken met meerdere bestanden die op de sc-kaart zijn opgeslagen. Dit project bevat code die werkt met drie bestanden die
Een computer demonteren met eenvoudige stappen en afbeeldingen: 13 stappen (met afbeeldingen) Antwoorden op al uw "Hoe?"
Een computer demonteren met eenvoudige stappen en afbeeldingen: dit is een instructie over het demonteren van een pc. De meeste basiscomponenten zijn modulair en gemakkelijk te verwijderen. Wel is het belangrijk dat je er goed over georganiseerd bent. Dit zal helpen voorkomen dat u onderdelen kwijtraakt, en ook bij het maken van de hermontage e