Sadržaj:

Matrica LED ekrana 5x4 pomoću osnovnog žiga 2 (bs2) i Charlieplexinga: 7 koraka
Matrica LED ekrana 5x4 pomoću osnovnog žiga 2 (bs2) i Charlieplexinga: 7 koraka

Video: Matrica LED ekrana 5x4 pomoću osnovnog žiga 2 (bs2) i Charlieplexinga: 7 koraka

Video: Matrica LED ekrana 5x4 pomoću osnovnog žiga 2 (bs2) i Charlieplexinga: 7 koraka
Video: LED-матрицы для видео-экранов 2024, Novembar
Anonim
Matrica 5x4 LED zaslona pomoću osnovnog žiga 2 (bs2) i Charlieplexing
Matrica 5x4 LED zaslona pomoću osnovnog žiga 2 (bs2) i Charlieplexing

Imate li Basic Stamp 2 i neke dodatne LED diode u blizini? Zašto se ne poigrate s konceptom charlieplexinga i stvorite izlaz koristeći samo 5 pinova.

Za ovu instrukciju ću koristiti BS2e, ali svaki član porodice BS2 bi trebao raditi.

Korak 1: Charlieplexing: šta, zašto i kako

Idemo prvo ukloniti zašto. Zašto koristiti charlieplexing sa osnovnim žigom 2? --- Dokaz koncepta: Naučite kako funkcionira charlieplexing i naučite nešto o BS2. Ovo bi mi kasnije moglo biti korisno ako koristim brže 8-pinske čipove (samo 5 će biti u/i).--- Koristan razlog: U osnovi nema. BS2 je prespor za prikaz bez primjetnog treperenja. Šta je charlieplexing? --- Charlieplexing je metoda pokretanja velikog broja LED dioda s malim brojem mikroprocesorskih u/i pinova. Naučio sam o charlieplexingu sa www.instructables.com, a možete i vi: Charlieplexing LED diode- teorijaKako pokrenuti mnogo LED dioda s nekoliko pinova mikrokontrolera. Također na wikipediji: CharlieplexingKako mogu voziti 20 LED-a sa 5 i/o igle? --- Pročitajte tri veze pod "Šta je charlieplexing?". To objašnjava bolje nego što sam ikada mogao. Charlieplexing se razlikuje od tradicionalnog multipleksiranja kojemu je potreban jedan ulazno/izlazni pin za svaki red i svaki stupac (to bi bilo ukupno 9 i/o pinova za 5/4 prikaz).

Korak 2: Hardver i shema

Hardver i sheme
Hardver i sheme

Spisak materijala: 1x - Osnovni pečat 220x - Svetleće diode (LED) istog tipa (boja i pad napona) 5x - otpornici (pogledajte dole u vezi vrednosti otpornika) Pomoćni/Opcionalno: Način programiranja vašeg tastera BS2Momentary kao prekidač za resetovanje6v -9vNapajanje napajanjem ovisno o vašoj verziji BS2 (pročitajte priručnik) Shema: Ova shema je sastavljena s mehaničkim rasporedom na umu. Sa lijeve strane vidjet ćete mrežu LED dioda, ovo je orijentacija za koju je napisan BS2 kod. Primijetite da svaki par LED dioda ima anodu povezanu s drugom katodom. Zatim su spojeni na jedan od pet i/o pinova. Vrijednosti otpornika: Trebali biste izračunati vlastite vrijednosti otpornika. Provjerite tablicu s podacima za vaše LED diode ili upotrijebite postavku LED na vašem digitalnom multimetru da pronađete pad napona vaših LED dioda. Napravimo neke proračune: Napon napajanja - Pad napona / Željena struja = Vrijednost otpornika BS2 opskrbljuje 5V reguliranom snagom, a može izvor 20 mA struje. Moje LED diode imaju pad od 1,6 V i rade pri 20ma.5v - 1.6v /.02amps = 155ohmsDa biste zaštitili svoj BS2, trebali biste koristiti sljedeću veću vrijednost otpornika od onoga što dobijete proračunom, u ovom slučaju vjerujem da bi to bilo 180ohms. Koristio sam 220 ohma jer moja razvojna ploča ima ugrađenu vrijednost otpornika za svaki ulazno -izlazni pin. NAPOMENA: Vjerujem da budući da na svakom pinu postoji otpornik, ovo efektivno udvostručuje otpor svakog vodiča jer je jedan pin V+, a drugi Gnd. U tom slučaju trebate smanjiti vrijednosti otpornika za pola. Štetni učinak previsoke vrijednosti otpornika je prigušena LED dioda. Može li to netko potvrditi i ostaviti mi PM ili komentar kako bih mogao ažurirati ove informacije? Programiranje: Koristio sam razvojnu ploču koja ima DB9 konektor za programiranje čipa direktno na ploči. Ovaj čip također koristim na svojoj matičnoj ploči bez lemljenja i uključio sam zaglavlje In Circuit Serial Programming (ICSP). Zaglavlje ima 5 pinova, pinovi 2 do 5 se spajaju na pinove 2-5 na DB9 serijskom kabelu (Pin 1 se ne koristi). Imajte na umu da za korištenje ovog ICSP zaglavlja pinovi 6 i 7 na DB9 kablu moraju biti međusobno povezani. Resetiraj: Tipka za resetiranje na trenutak nije obavezna. Ovo samo povlači iglu 22 na tlo kada se pritisne.

Korak 3: Breadboarding

Breadboarding
Breadboarding
Breadboarding
Breadboarding

Sada je vrijeme za izradu matrice na ploči. Koristio sam priključnu traku za povezivanje jedne nogice sa svakog LED para zajedno i malu kratkospojnu žicu za povezivanje drugih nogu. Ovo je detaljno prikazano na fotografiji izbliza i detaljno je objašnjeno ovdje: 1. Orijentirajte svoju matičnu ploču tako da odgovara većoj slici2. Postavite LED 1 s anodom (+) prema vama i katodom (-) dalje od vas.3. Postavite LED 2 u istoj orijentaciji s anodom (+) u priključnu klemu LED 1 katode.4. Upotrijebite malu kratkospojnu žicu za povezivanje anode LED 1 s katodom LED 2,5. Ponavljajte sve dok se svaki par LED dioda ne doda na ploču. Koristim ono što bi inače bile trake sabirnice napajanja ploče za kruh kao sabirnice za BS2 I/O pinove. Budući da postoje samo 4 sabirnice, koristim priključnu traku za P4 (peta I/O veza). To se može vidjeti na većoj slici ispod.6. Priključite terminalnu traku za katodu LED 1 na traku sabirnice P0. Ponovite za svaku neparnu LED diodu zamjenjujući odgovarajući P* za svaki par (pogledajte shemu).7. Priključite terminalnu traku za LED 2 katodu na P1 sabirnicu. Ponovite za svaku neparnu LED diodu zamjenjujući odgovarajući P* za svaki par (pogledajte shemu).8. Priključite svaku sabirničku traku na odgovarajući U/I pin na BS2 (P0-P4).9. Provjerite sve veze kako biste bili sigurni da odgovaraju shemi.10. NAPOMENA: U krupnom planu vidjet ćete da se ne čini da sam slijedio korak 7 jer je veza s drugim U/I pinom na anodi neparnih LED dioda. Upamtite da je katoda parnih LED dioda spojena na anodu LED dioda s neparnim brojevima, tako da je veza u svakom slučaju ista. Ako vas ova bilješka zbunjuje, samo je zanemarite.

Korak 4: Osnove programiranja

Da bi charlieplexing funkcionirao, uključujete samo jednu LED lampicu odjednom. Da bi ovo funkcioniralo s našim BS2 potrebna su nam dva osnovna koraka: 1. Podesite izlazne načine za pinove pomoću naredbe OUTS.2. Recite BS2 koje pinove treba koristiti kao izlaze pomoću naredbe DIRSOvo funkcionira jer se BS2 može reći koje pinove treba pokretati visoko i nisko i čekat će da to učine dok ne navedete koji su pinovi izlazi. Da vidimo jesu li stvari ispravno spojene. samo pokušavam treptati LED 1. Ako pogledate shemu, možete vidjeti da je P0 spojen na katodu (-) LED 1, a P1 je spojen na anodu te iste LED. To znači da želimo voziti P0 nisko, a P1 visoko. To se može učiniti ovako: "OUTS = % 11110" koji pokreće P4-P1 visoko, a P0 nisko. (% Označava da slijedi binarni broj. Najniža binarna znamenka uvijek je s desne strane. 0 = NISKA, 1 = VISOKA) BS2 pohranjuje te informacije, ali neće djelovati na njih dok ne proglasimo koji su pinovi izlazi. Ovaj korak je ključan jer samo dva pina trebaju biti izlazi u isto vrijeme. Ostatak bi trebali biti ulazi, koji postavlja te pinove na način visoke impedancije tako da neće potonuti nikakvu struju. Moramo voziti P0 i P1 pa ćemo ih postaviti na izlaze, a ostale na ulaze ovako: "DIRS = % 00011". (% Označava da slijedi binarni broj. Najniža binarna znamenka uvijek je s desne strane. 0 = INPUT, 1 = OUTPUT) Hajde da to spojimo u neki korisni kod: '{$ STAMP BS2e}' {$ PBASIC 2.5} DO OUTS = %11110 'Pogon P0 nizak i P1-P4 visok DIRS = %00011' Postavite P0- P1 kao izlazi i P2-P4 kao ulazi PAUSE 250 'Pauza da LED ostane uključena DIRS = 0' Postavite sve pinove na ulaz. Ovo će isključiti LED PAUZU 250 'Pauza da LED ostane isključena

Korak 5: Razvojni ciklus

Sada kada smo vidjeli kako jedan pin radi kako bismo bili sigurni da svi rade.20led_Zig-Zag.bseOvaj priloženi kôd trebao bi osvijetliti svaku od 20 LED dioda u cik-cak obrascu. Primijetit ćete da nakon što se svaki pin upali, koristim "DIRS = 0" da sve pinove ponovo pretvorim u ulaze. Ako promijenite OUTS bez isključivanja izlaznih pinova, možda ćete dobiti neke "duhove" gdje LED dioda koja ne bi trebala svijetliti može treptati između ciklusa. Ako promijenite varijablu W1 na početku ovog koda u "W1 = 1" bit će samo 1 milisekunda pauze između svakog LED treptaja. To će uzrokovati učinak upornosti vida (POV) zbog kojeg izgleda kao da su sve LED diode upaljene. Ovo ima efekt prigušivanja LED dioda, ali je suština načina na koji ćemo prikazati znakove na ovoj matrici.20led_Interpreter_Proto.bse Odlučio sam u ovom trenutku da moram razviti neku vrstu tumačkog koda kako bih uključio lude kombinacije potrebne za osvjetljavanje LED diode u upotrebljiv uzorak. Ova datoteka je moj prvi pokušaj. Vidjet ćete da su na dnu datoteke znakovi pohranjeni u četiri retka petoznamenkastog binarnog zapisa. Svaki redak se čita, raščlanjuje i potprogram se poziva svaki put kad LED lampicu treba upaliti. Ovaj kôd radi, prelazeći kroz brojeve 1-0. Ako ga pokušate pokrenuti, primijetite da ga muči vrlo spora frekvencija osvježavanja zbog čega likovi bljeskaju gotovo presporo da bi se prepoznali. Ovaj kod je loš iz mnogo razloga. Prvo, pet znamenki binarnog zauzima isto toliko prostora u EEPROM -u kao i 8 znamenki binarnog binarnog koda jer su sve informacije pohranjene u grupama od četiri bita. Drugo, SELECT CASE koji se koristi za odlučivanje koji pin treba upaliti zahtijeva 20 slučajeva. BS2 je ograničen na 16 slučajeva po operaciji SELECT. To znači da sam morao ograničiti to ograničenje izjavom IF-THEN-ELSE. Mora postojati bolji način. Nakon nekoliko sati češanja po glavi otkrio sam to.

Korak 6: Bolji tumač

Svaki red naše matrice sastoji se od 4 LED diode, svaka može biti uključena ili isključena. BS2 pohranjuje informacije u svoj EEPROM u grupama od četiri bita. Ta bi nam korelacija trebala olakšati stvari. Osim ove činjenice, četiri bita odgovaraju decimalnim brojevima 0-15 za ukupno 16 mogućnosti. Ovo čini ili SELECT CASE mnogo lakšim. Ovdje je broj 7 pohranjen u EEPROM-u: '7 %1111, %1001, %0010, %0100, %0100, Svaki red ima decimalni ekvivalent do 0-15 pa čitamo a unesite iz memorije i unesite je direktno u funkciju SELECT CASE. To znači da je ljudsko čitljiva binarna matrica koja se koristi za izradu svakog znaka (1 = uključeno, 0 = isključeno) ključ za tumača. Da bih koristio isti SELECT CASE za svaki od 5 redova, koristio sam još jedno odabrano slovo da biste postavili DIRS i OUTS kao varijable. Prvo sam pročitao u svakom od pet redova karaktera varijable ROW1-ROW5. Glavni program tada poziva potprogram za prikaz znaka. Ova potprogram zauzima prvi red i dodjeljuje četiri moguće OUTS kombinacije varijabli outp1-outp4, a dvije moguće DIRS kombinacije direc1 & direc2. LED diode trepere, brojač redova se povećava, a isti proces se izvodi za svaki od ostala četiri reda. Ovo je mnogo brže od prvog programa tumača. S obzirom na to, još uvijek postoji zamjetno treperenje. Pogledajte video, kamera čini da treperenje izgleda mnogo gore, ali shvatite. Prenošenje ovog koncepta na mnogo brži čip, poput picMicro ili AVR čipa, omogućio bi prikaz ovih znakova bez primjetnog treperenja.

Korak 7: Odakle krenuti odavde

Nemam cnc mlin niti potrepštine za graviranje za izradu ploča pa neću provoditi ovaj projekt. Ako imate mlin i želite da sarađujete da biste napredovali, pošaljite mi poruku. Rado ću platiti materijal i dostaviti još sretniji da pokažem nešto od gotovog proizvoda za ovaj projekt.

Druge mogućnosti: 1. Prenesite ovo na drugi čip. Ovaj dizajn matrice može se koristiti sa bilo kojim čipom koji ima na raspolaganju 5 ulazno-izlaznih pinova za tri stanja (pinovi koji mogu biti visoki, niski ili ulazni (visoka impedansa)). 2. Koristeći brži čip (možda AVR ili picMicro) možete povećati skalu. S čipom od 20 pinova mogli biste koristiti 14 pinova za charlieplex ekran veličine 8x22, a preostale pinove za primanje serijskih naredbi s računara ili drugog kontrolera. Koristite još tri 20-pinska čipa i možete imati klizni ekran veličine 8x88 za ukupno 11 znakova odjednom (u zavisnosti od širine svakog znaka, naravno). Sretno, zabavite se!

Preporučuje se: