Sadržaj:

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

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

Video: Matrica LED zaslona 5x4 pomoću osnovnog žiga 2 (bs2) i Charlieplexinga: 7 koraka
Video: СВЕТОДИОДНЫЕ МОДУЛИ MATRIX BI-LED H2 2024, Studeni
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 pomoću samo 5 pinova.

Za ove upute koristit ću BS2e, ali svaki član obitelji BS2 bi trebao raditi.

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

Idemo prvo ukloniti zašto. Zašto koristiti charlieplexing s 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. Što je charlieplexing? --- Charlieplexing je metoda za pogon velikog broja LED dioda s malim brojem ulaza/izlaza mikroprocesora. Naučio sam o charlieplexingu s 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 dioda s 5 i/o igle? --- Pročitajte tri veze pod "Što 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 redak i svaki stupac (to bi bilo ukupno 9 i/o pinova za 5/4 zaslon).

Korak 2: Hardver i shema

Hardver i shematski
Hardver i shematski

Popis materijala: 1x - Osnovni pečat 220x - Svjetlosne diode (LED) istog tipa (boja i pad napona) 5x - otpornici (pogledajte dolje u vezi vrijednosti otpornika) Pomoćni/Opcijski: Način programiranja vašeg BS2Trenutni gumb kao prekidač za resetiranje6v -9vNapajanje ovisno o vašoj verziji BS2 (pročitajte vaš priručnik) Shema: Ova shema sastavljena je s obzirom na mehanički izgled. S lijeve strane vidjet ćete mrežu LED dioda, ovo je orijentacija za koju je napisan BS2 kod. Uočite da svaki par LED dioda ima anodu spojenu na katodu druge. Zatim su spojeni na jedan od pet i/o pinova. Vrijednosti otpornika: Trebali biste izračunati vlastite vrijednosti otpornika. Provjerite tablicu s podacima za svoje LED diode ili upotrijebite postavku LED na vašem digitalnom multimetru da biste pronašli pad napona vaših LED dioda. Napravimo neke izračune: napon napajanja - pad napona / željena struja = vrijednost otpornika BS2 opskrbljuje 5V reguliranom snagom i može imati izvor 20 mA struje. Moje LED diode imaju pad od 1,6 V i rade na 20ma.5v - 1,6v /.02amps = 155ohmsDa biste zaštitili svoj BS2, trebali biste upotrijebiti 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, to učinkovito udvostručuje otpor svakog vodiča budući da 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šivanje LED diode. Može li to netko potvrditi i ostaviti mi PM ili komentar kako bih mogao ažurirati ove podatke? Programiranje: Koristio sam razvojnu ploču koja ima DB9 konektor za programiranje čipa na ploči. Ovaj čip također koristim na svojoj 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 nije korišten). Imajte na umu da za korištenje ovog ICSP zaglavlja pinovi 6 i 7 na DB9 kabelu moraju biti međusobno povezani. Resetiraj: Tipka za poništavanje pritiska 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 ostalih nogu. To 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 priključnu traku katode LED 1.4. Pomoću male kratkospojne žice povežite anodu LED 1 s katodom LED 2,5. Ponavljajte 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 (peti I/O priključak). To se može vidjeti na većoj slici ispod.6. Spojite stezaljku za katodu LED 1 na traku sabirnice P0. Ponovite za svaku neparnu LED diodu zamjenjujući odgovarajući P* za svaki par (vidi shemu).7. Spojite stezaljku za LED 2 katodu na P1 sabirnicu. Ponovite za svaku neparnu LED diodu zamjenjujući odgovarajući P* za svaki par (pogledajte shemu).8. Spojite svaku sabirničku traku na odgovarajući U/I pin na BS2 (P0-P4).9. Provjerite sve spojeve kako biste bili sigurni da odgovaraju shemi.10. Slavite. 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 radio, uključujete samo jednu LED diodu odjednom. Da bi ovo radilo s našim BS2, potrebna su nam dva osnovna koraka: 1. Postavite 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 te će to pričekati dok ne odredite koji su pinovi izlazi. Da vidimo jesu li stvari ispravno spojene. samo pokušavate treptati LED 1. Ako pogledate shemu, možete vidjeti da je P0 spojen na katodu (-) LED 1, a P1 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 podatke, 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) Spojimo to u neki korisni kôd: '{$ 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 kod trebao bi osvijetliti svaku od 20 LED dioda u cik-cak uzorku. Primijetit ćete da nakon što se svaki pin upali, koristim "DIRS = 0" za pretvaranje svih pinova natrag 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. To ima efekt prigušivanja LED dioda, ali je bit načina na koji ćemo prikazati znakove na ovoj matrici.20led_Interpreter_Proto.bseU ovom sam trenutku odlučio da moram razviti neku vrstu interpreterskog 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 kada se LED lampica mora upaliti. Ovaj kôd radi, prelazeći kroz brojeve 1-0. Ako ga ipak pokušate pokrenuti, primijetite da ga muči vrlo spora frekvencija osvježavanja zbog čega znakovi bljeskaju gotovo presporo da bi se prepoznali. Ovaj kod je loš iz mnogo razloga. Prvo, pet znamenki binarnog binarnog zauzima isto toliko prostora u EEPROM -u kao i 8 znamenki binarnog binarnog, jer su sve informacije pohranjene u grupama od četiri bita. Drugo, SELECT CASE koji se koristi za odlučivanje koji pin treba osvijetliti 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 uvelike olakšava ili ODABIR SLUČAJA. Ovdje je broj 7 pohranjen u EEPROM-u: '7 %1111, %1001, %0010, %0100, %0100, Svaki red ima decimalni ekvivalent do 0-15 pa čitamo unesite iz memorije i izravno je unesite 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 redaka, upotrijebio sam drugi odabir slova postaviti DIRS i OUTS kao varijable. Prvo sam pročitao u svakom od pet redaka znaka varijable ROW1-ROW5. Glavni program tada poziva potprogram za prikaz znaka. Ova potprogram zauzima prvi red i dodjeljuje četiri moguće kombinacije OUTS varijabli outp1-outp4, a dvije moguće kombinacije DIRS direc1 & direc2. LED diode trepere, brojač redaka se povećava, a isti se postupak 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 ožičiti ovaj projekt. Ako imate mlin i želite suradnju kako biste krenuli naprijed, pošaljite mi poruku. Rado ću platiti materijal i isporučiti još sretniji da pokažem nešto od gotovog proizvoda za ovaj projekt.

Ostale 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 impedancija)). 2. Koristeći brži čip (možda AVR ili picMicro) možete povećati ljestvicu. S čipom od 20 pinova mogli biste koristiti 14 pinova za charlieplex zaslon veličine 8x22, a preostale pinove za primanje serijskih naredbi s računala ili drugog kontrolera. Upotrijebite još tri 20-pinska čipa i možete imati klizni zaslon veličine 8x88 za ukupno 11 znakova odjednom (ovisno o širini svakog znaka, naravno). Sretno i zabavi se!

Preporučeni: