INHOUDSOPGAWE:
2025 Outeur: John Day | [email protected]. Laas verander: 2025-01-13 06:56
Hallo almal, Ek werk graag met LED -skerms met 7 segmente of met dotmatrix en ek het al baie verskillende projekte daarmee gedoen.
Elke keer is dit interessant, want daar is 'n soort magie in hoe hulle kan werk, want wat u sien is 'n optiese illusie!
Displays bevat baie penne om met 'n Arduino (of 'n ander mikrobeheerder) verbind te word, en die beste oplossing is om die tegnieke van data -multiplexing toe te pas om die gebruik van hul poorte tot die minimum te beperk.
As u dit doen, word elke segment of elke LED vir 'n paar keer aangeskakel (milisekondes of minder), maar die herhaling daarvan in soveel keer per sekonde skep die illusie van die beeld wat u wil wys.
Vir my is die interessantste om die logika, die program, te ontwikkel om uit te vind hoe hulle die korrekte inligting volgens u projek kan toon.
In 'n enkele projek verg die gebruik van skerms baie tyd om alle komponente op 'n broodbord met baie drade vir verbindings te monteer.
Ek weet dat daar baie verskillende skerms op die mark is met I2C, met vereenvoudigde maniere (al dan nie), en ek het dit ook gebruik, maar ek verkies om met standaardkomponente soos 74HC595 (multiplexer IC) en ULN2803 (bestuurders) te werk omdat dit gee u meer beheer in u program en ook meer robuustheid en betroubaarheid in u gebruik.
Om die monteerproses te vereenvoudig, het ek 'n LED Dipslay -module vir verskeie doeleindes ontwikkel met behulp van eenvoudige en algemene komponente in die Arduino -wêreld.
Met hierdie module kan u werk met 'n puntmatriks met dubbele kleur -LED's in twee standaardgroottes (groter en kleiner), en u kan ook 7 Seg x 4 -syfers vertoon wat baie algemeen en maklik op die mark gevind kan word.
En u kan ook op 'n reekse manier met hierdie modules in kaskade werk (verskillende data na skerms) of op 'n parallelle manier (dieselfde data in skerms).
Laat ons dus kyk hoe hierdie module kan werk en u kan help met u ontwikkelinge!
Video (LED -skermmodule)
Video (Dot Matrix -toets)
Groete, LAGSILVA
Stap 1: Komponente
PCB (printboard)
- 74HC595 (03 x)
- ULN2803 (02 x)
- Transistor PNP - BC327 (08 x)
- Weerstand 150 Ohm (16 x)
- Weerstand 470 Ohm (08 x)
- Kondensator 100 nF (03 x)
- IC -aansluiting 16 penne (03 x)
- IC -aansluiting 18 penne (02 x)
- Pin connector female - 6 penne (8 x)
- Speldopskrifte 90º (01 x)
- Speldopskrifte 180º (01 x)
- KRE 02 -penne (02 x) met konnekteerborne
- PCB (01 x) - Vervaardig
Ander
- Arduino Uno R3 / Nano / soortgelyk
- LED -skerm 04 syfer x 7 segmente - (gewone anode)
- LED Dot Matrix dubbele kleur (groen en rooi) - (algemene anode)
Belangrike opmerkings:
- Ek het die datablad van alle belangrikste komponente slegs as verwysing geplaas, maar u moet die datablad van u eie komponente nagaan voordat u dit gebruik.
- Hierdie bord is ontwerp om slegs uitstallings van GEMEENSKAPLIKE ANODE te gebruik.
Stap 2: Eerste prototipes
My eerste prototipe is op 'n broodbord gedoen om die kring te toets.
Daarna het ek nog 'n prototipe gemaak met 'n universele bord, soos u op die foto's kan sien.
Hierdie soort bord is interessant om 'n vinnige prototipe te vervaardig, maar u besef dat daar steeds baie drade is.
Dit is 'n funksionele oplossing, maar nie so elegant in vergelyking met 'n finale vervaardigde PCB (die blou) nie.
Ek is nie goed met soldeer nie, want ek het nie genoeg ervaring met hierdie proses nie, maar ek het goeie resultate behaal met beide ervarings en belangriker: ek het geen komponent verbrand nie en ook nie my hande nie!
Die resultate op my volgende bord sal waarskynlik beter wees as gevolg van die oefening.
Daarom moedig ek u aan om hierdie soort ervaring te probeer, want dit sal uitstekend vir u wees.
Hou net in gedagte dat u met die warm strykyster versigtig moet wees en probeer om nie meer as 'n paar sekondes aan 'n komponent te spandeer om te voorkom dat dit verbrand word nie!
En uiteindelik kan u op Youtube baie video's vind oor soldeer wat u kan leer voordat u na die regte wêreld gaan.
Stap 3: PCB -ontwerp
Ek het hierdie PCB ontwerp met behulp van 'n spesiale sagteware om 'n dubbellaagbord te vervaardig, en dit is voor hierdie laaste weergawe ontwikkel.
Aan die begin het ek een weergawe vir elke soort uitstallings, en ek het immers besluit om alles in net een weergawe te kombineer.
Ontwerp teikens:
- Eenvoudig en nuttig vir prototipes.
- Maklike opstelling en uitbreidbaar.
- Kan 3 verskillende skerms gebruik.
- Maksimum breedte van die groot kolletjie matriks van LED.
- Maksimum lengte op 100 mm om die produksiekoste van die bord te verminder.
- Pas tradisionele komponente in plaas van SMD toe om meer probleme tydens die handmatige soldeerproses te vermy.
- Die bord moet modulêr wees om in 'n waterval met ander borde verbind te word.
- Seriële of parallelle uitvoer vir ander borde.
- Verskeie borde moet slegs deur 'n Arduino beheer word.
- Slegs 3 draaddata vir die verbinding van Arduino.
- Eksterne 5V kragverbinding.
- Verhoog die elektriese robuustheid deur transistors en drywers (ULN2803) toe te pas om die LED's te beheer.
Opmerking:
Met betrekking tot hierdie laaste item, beveel ek aan dat u my ander instruksies oor hierdie komponente lees:
Gebruik Shift Register 74HC595 met ULN2803, UDN2981 en BC327
PCB vervaardiging:
Nadat ek die ontwerp voltooi het, stuur ek dit na 'n PCB -vervaardiger in China na baie soektogte by verskillende plaaslike verskaffers en in verskillende lande.
Die belangrikste probleem was die hoeveelheid borde teenoor die koste, want ek benodig net 'n paar daarvan.
Uiteindelik het ek besluit om 'n gewone bestelling (slegs 'n uitdruklike bestelling vanweë hoër koste) van slegs 10 direksies by 'n onderneming in China te plaas.
Na slegs 3 dae is die planke vervaardig en binne vier dae na my gestuur om die wêreld oor te steek.
Die resultate was uitstekend !!
In 'n week na die bestelling was die planke in my hande en ek was regtig beïndruk met die hoë kwaliteit daarvan en die vinnige spoed!
Stap 4: Programmering
Vir programmering moet u 'n paar belangrike konsepte in gedagte hou oor die hardeware -ontwerp en die skofregister 74HC595.
Die hooffunksie van 74HC595 is om 8-bis Serial-In in 8 Parallel-Out Shift om te skakel.
Alle seriële data gaan in pen #14 en by elke kloksein gaan die stukkies na die ooreenstemmende parallel-uit penne (Qa tot Qh).
As u voortgaan om meer data te stuur, sal die stukkies weer een vir een na Pin #9 (Qh ') as seriële uitset verskuif word, en as gevolg van hierdie funksie kan u nog 'n skyfie in 'n waterval verbind.
Belangrik:
In hierdie projek het ons drie IC's van 74HC595. Die eerste twee werk om die kolomme te beheer (met POSITIEWE logika) en die laaste een om die lyne te beheer (met NEGATIEWE logika omdat die PNP -transistors funksioneer).
Positiewe logika beteken dat u 'n HOOG -vlaksein (+5V) van Arduino moet stuur, en 'n negatiewe logika beteken dat u 'n LAE -vlaksein (0V) moet stuur.
Puntmatriks van LED's
- Die eerste is vir die uitsette van die katodes van Rooi LED's (8 x) >> KOLOM ROOI (1 tot 8).
- Die tweede is vir die uitvoer L van die katodes van groen LED's (8 x) >> KOLOM GROEN (1 tot 8).
- Die laaste een is vir die uitset van anodes van al die LED's (08 x rooi en groen) >> LYNE (1 tot 8).
As u byvoorbeeld slegs die groen LED van kolom 1 en reël 1 wil aanskakel, moet u die volgende reeks reeks data stuur:
1º) LYNE
~ 10000000 (slegs die eerste reël is aangeskakel) - Die simbool ~ is om alle stukkies van 1 na 0 om te keer en omgekeerd.
2º) KOLOM Groen
10000000 (slegs die eerste kolom van groen LED is aangeskakel)
3º) KOLOM ROOI
00000000 (al die kolomme rooi LED's is af)
Arduino verklarings:
shiftOut (dataPin, clockPin, LSBFIRST, ~ B10000000); // Negatiewe logika vir die reëls
shiftOut (dataPin, clockPin, LSBFIRST, B10000000); // Positiewe logika vir die groen kolomme
shiftOut (dataPin, clockPin, LSBFIRST, B00000000); // Positiewe logika vir die Rooi kolomme
Opmerking:
U kan ook beide LED's (groen en rooi) kombineer om die kleur GEEL soos volg te produseer:
shiftOut (dataPin, clockPin, LSBFIRST, ~ B10000000);
shiftOut (dataPin, clockPin, LSBFIRST, B10000000);
shiftOut (dataPin, clockPin, LSBFIRST, B10000000);
7 segmente vertoon
Vir hierdie soort vertonings is die volgorde dieselfde. Die enigste verskil is dat u nie die groen LED's hoef te gebruik nie.
1º) DIGIT (1 tot 4 van links na regs) ~ 10000000 (stel syfer #1)
~ 01000000 (stel syfer 2)
~ 00100000 (stel syfer 3)
~ 00010000 (stel syfer #4)
2º) NIE GEBRUIK NIE
00000000 (alle bisse is op nul gestel)
3º) SEGMENTS (A tot F en DP - kyk na die skermbladsy)
10000000 (stel segment A)
01000000 (stel segment B)
00100000 (stel segment C)
00010000 (stel segment D)
00001000 (stel segment E)
00000100 (stel segment F)
00000010 (stel segment G)
00000001 (stel DP)
Arduino -voorbeeld om Display #2 met nommer 3 in te stel:
shiftOut (dataPin, clockPin, LSBFIRST, ~ B01000000); // Stel DISPLAY 2 in (negatiewe logika)
shiftOut (dataPin, clockPin, LSBFIRST, 0); // Stel data op nul (word nie gebruik nie)
shiftOut (dataPin, clockPin, LSBFIRST, B11110010); // Stel segmente A, B, C, D, G)
Uiteindelik kan u, met hierdie proses, enige LED van u skerm beheer, en u kan ook spesiale karakters skep wat u benodig.
Stap 5: Toets
Hier is twee programme as voorbeeld van die funksionaliteit van die vertoonmodule.
1) Aftelvertoning (van 999,9 sekondes tot nul)
2) Puntmatriks (syfers 0 tot 9 en alfabet A tot Z)
3) Digitale klok RTC in LED -vertoning van 4 syfers en 7 segmente
Hierdie laaste een is 'n opdatering van my eerste weergawe van Digital Clock.
Stap 6: Gevolgtrekking en volgende stappe
Hierdie module sal nuttig wees in alle toekomstige projekte wat 'n LED -skerm benodig.
In die volgende stappe sal ek meer planke bymekaarmaak om in die kaskademodus te werk, en ek sal ook 'n biblioteek ontwikkel om die programmering nog meer te vereenvoudig.
Ek hoop dat u hierdie projek geniet het.
Stuur asseblief u kommentaar vir my, want dit is belangrik om die projek en die inligting van hierdie instruksies te verbeter.
Groete, LAGSILVA
26. Mei 2016