Satura rādītājs:
- 1. darbība: Čārlija: kas, kāpēc un kā
- 2. darbība: aparatūra un shēma
- 3. darbība
- 4. solis: Programmēšanas pamati
- 5. solis: attīstības cikls
- 6. solis: labāks tulks
- 7. solis: kurp doties no šejienes
Video: 5x4 LED displeja matrica, izmantojot pamata zīmogu 2 (bs2) un čārlijaplikēšanu: 7 soļi
2024 Autors: John Day | [email protected]. Pēdējoreiz modificēts: 2024-01-30 10:58
Vai jums ir pamata zīmogs 2 un dažas papildu gaismas diodes? Kāpēc gan nespēlēties ar charlieplexing koncepciju un izveidot rezultātu, izmantojot tikai 5 tapas.
Šajā pamācībā es izmantošu BS2e, bet jebkuram BS2 ģimenes loceklim vajadzētu strādāt.
1. darbība: Čārlija: kas, kāpēc un kā
Vispirms izdomāsim kāpēc. Kāpēc izmantot charlieplexing ar Basic Stamp 2? --- Koncepcijas pierādījums: uzziniet, kā darbojas charlieplexing, un uzziniet kaut ko par BS2. Tas man var noderēt vēlāk, izmantojot ātrāku 8 kontaktu mikroshēmas (tikai 5 no tām būs i/o).--- Noderīgs iemesls: Būtībā nav. BS2 ir pārāk lēns, lai to parādītu bez manāmas mirgošanas. Kas ir charlieplexing? --- Charlieplexing ir metode, kā vadīt lielu skaitu gaismas diodes ar nelielu skaitu mikroprocesora i/o tapu. Es uzzināju par charlieplexing no www.instructables.com, un arī jūs varat: Charlieplexing LEDs- TheoryHow vadīt daudz gaismas diodes no dažām mikrokontrolleru tapām. Arī vietnē wikipedia: Charlieplexing Tas to izskaidro labāk nekā es jebkad spēju. Charlieplexing atšķiras no tradicionālās multipleksēšanas, kurai katrai rindai un kolonnai nepieciešama viena i/o tapa (tas būtu kopā 9 i/o tapas 5/4 displejam).
2. darbība: aparatūra un shēma
Materiālu saraksts: 1x - Basic Stamp 220x - viena veida gaismas diodes (gaismas diodes) (krāsa un sprieguma kritums) 5x - rezistori (par rezistora vērtību skatīt zemāk) -9v Barošanas avots atkarībā no jūsu BS2 versijas (izlasiet rokasgrāmatu) Shēma: Šī shēma ir apkopota, ņemot vērā mehānisko izkārtojumu. Kreisajā pusē redzēsit LED režģi, tas ir orientācija, kurai ir uzrakstīts BS2 kods. Ņemiet vērā, ka katram gaismas diodes pārim anods ir savienots ar otra katodu. Pēc tam tie ir savienoti ar vienu no piecām i/o tapām. Rezistoru vērtības: Jums jāaprēķina savas pretestības vērtības. Pārbaudiet savu LED datu lapu vai izmantojiet LED iestatījumu savā digitālajā multimetrā, lai atrastu gaismas diodes sprieguma kritumu. Veiksim dažus aprēķinus: Barošanas spriegums - sprieguma kritums / vēlamā strāva = rezistora vērtība no pašreizējās. Manām gaismas diodēm ir kritums par 1,6 V, un tās darbojas pie 20 mA. 5 V - 1,6 V /.02 ampēri = 155 omi Es izmantoju 220 omus, jo manā izstrādes padomē katrai i/o tapai ir iebūvēta šī rezistora vērtība. PIEZĪME. Es uzskatu, ka, tā kā uz katras tapas ir rezistors, tas efektīvi dubulto pretestību katrā vadā, jo viena tapa ir V+, bet otra ir Gnd. Ja tas tā ir, jums jāsamazina rezistora vērtības uz pusi. Pārāk augstas rezistora vērtības nelabvēlīgā ietekme ir blāvāka gaismas diode. Vai kāds to var pārbaudīt un atstāt man PM vai komentāru, lai es varētu atjaunināt šo informāciju? Es arī izmantoju šo mikroshēmu savā maizes plātnē bez lodēšanas un esmu iekļāvis galvenās sērijas programmēšanas (ICSP) galveni. Galvene ir 5 tapas, tapas no 2 līdz 5 savienojas ar tapām 2-5 uz DB9 sērijas kabeļa (1. tapa nav izmantota). Lūdzu, ņemiet vērā, ka, lai izmantotu šo ICSP galvenes tapu 6 un 7, DB9 kabeļa tapām jābūt savienotām viena ar otru. Atiestatīt: īslaicīga atiestatīšanas poga nav obligāta. Tas tikai velk tapu 22 pie zemes, kad to nospiež.
3. darbība
Tagad ir pienācis laiks veidot matricu uz maizes dēļa. Es izmantoju spaiļu sloksni, lai savienotu vienu kāju no katra ledus pāra kopā, un nelielu savienojuma vadu, lai savienotu citas kājas. Tas ir detalizēti aprakstīts tuvplāna fotoattēlā, un tas ir detalizēti izskaidrots šeit: 1. Virziet savu maizes dēli tā, lai tas atbilstu lielākajam attēlam2. Novietojiet LED 1 ar anodu (+) pret sevi un katodu (-) prom no jums. Novietojiet LED 2 vienā virzienā ar anodu (+) LED 1 katoda savienojošajā spaiļu joslā. Izmantojiet nelielu džemperi, lai savienotu LED 1 anodu ar gaismas diodes katodu. Atkārtojiet, līdz plāksnei ir pievienots katrs gaismas diožu pāris. Es parasti izmantoju maizes dēļa strāvas kopnes sloksnes kā autobusu sloksnes BS2 I/O tapām. Tā kā ir tikai 4 kopņu sloksnes, es izmantoju spaiļu joslu P4 (piektais I/O savienojums). To var redzēt zemāk redzamajā lielākajā attēlā.6. Pievienojiet LED 1 katoda spaiļu joslu P0 kopnes sloksnei. Atkārtojiet to katram nepāra numurētajam gaismas diodei, aizstājot pareizo P* katram pārim (skatiet shēmu). Pievienojiet LED 2 katoda spaiļu joslu P1 kopnes sloksnei. Atkārtojiet to katram nepāra numurētajam gaismas diodei, aizstājot pareizo P* katram pārim (skatiet shēmu). Savienojiet katru kopnes joslu ar atbilstošo I/O tapu BS2 (P0-P4). Pārbaudiet visus savienojumus, lai pārliecinātos, ka tie atbilst shēmai.10. Svinēt. PIEZĪME. Tuvplānā jūs redzēsiet, ka neizskatās, ka es izpildīju 7. darbību, jo savienojums ar otro I/O tapu ir uz nepāra numurētu gaismas diožu anoda. Atcerieties, ka pāra skaitļu gaismas diodes katods ir savienots ar nepāra numura gaismas diodes anodu, tāpēc savienojums jebkurā gadījumā ir vienāds. Ja šī piezīme jūs mulsina, vienkārši ignorējiet to.
4. solis: Programmēšanas pamati
Lai charlieplexing darbotos, jūs ieslēdzat tikai vienu gaismas diodi vienlaikus. Lai tas darbotos ar mūsu BS2, mums ir nepieciešami divi pamata soļi: 1. Iestatiet tapas izvades režīmus, izmantojot komandu OUTS.2. Pastāstiet BS2, kuras tapas izmantot kā izejas, izmantojot komandu DIRS Tas darbojas, jo BS2 var pateikt, kuras tapas vadīt augstu un zemu, un gaidīs, kamēr to izdarīsit, līdz norādīsit, kuras tapas ir izejas. Apskatīsim, vai lietas ir pareizi savienotas tikai mēģinot mirgot LED 1. Ja paskatās uz shematisko shēmu, jūs varat redzēt, ka P0 ir savienots ar katoda (-) LED 1, un P1 ir savienots ar tā paša LED anodu. Tas nozīmē, ka mēs vēlamies braukt ar P0 zemu un P1 augstu. To var izdarīt šādi: "OUTS = % 11110", kas P4-P1 paaugstina un P0 pazemina. (% Norāda, ka jāseko binārajam skaitlim. Zemākais binārais cipars vienmēr ir labajā pusē. 0 = LOW, 1 = HIGH) BS2 saglabā šo informāciju, bet nerīkojas uz to, kamēr mēs nepaziņojam, kuras tapas ir izejas. Šis solis ir svarīgs, jo vienlaicīgi jābūt tikai divām tapām. Pārējam jābūt ievadam, kas šīs tapas iestata augstas pretestības režīmā, lai tās nenogremdētu strāvu. Mums ir jābrauc ar P0 un P1, tāpēc mēs tos iestatīsim uz izejām, bet pārējās uz ievadēm šādi: "DIRS = % 00011". (% Norāda, ka jāseko binārajam skaitlim. Zemākais binārais cipars vienmēr ir labajā pusē. 0 = INPUT, 1 = OUTPUT) Apvienosim to noderīgā kodā: '{$ STAMP BS2e}' {$ PBASIC 2.5} DO OTS = %11110 'Drive P0 low and P1-P4 high DIRS = %00011' Set P0- P1 kā izejas un P2-P4 kā ieejas PAUSE 250 'Pauze, lai gaismas diode paliktu ieslēgta DIRS = 0' Iestatiet visas tapas uz ievadi. Tas izslēgs LED PAUSE 250 'Pauzi, lai gaismas diode paliktu izslēgta
5. solis: attīstības cikls
Tagad, kad esam redzējuši vienu tapas darba laiku, lai pārliecinātos, ka tie visi darbojas. Jūs ievērosiet, ka pēc katras tapas iedegšanās es izmantoju "DIRS = 0", lai visas tapas atkal pārvērstu ievados. Ja maināt OUTS, neizslēdzot izejas tapas, var parādīties "dubultošanās", kur starp cikliem var mirgot gaismas diode, kurai nevajadzētu iedegties. Ja maināt mainīgo W1 šī koda sākumā uz "W1 = 1" tur būs tikai 1 milisekundes pauze starp katru LED mirgošanu. Tas radīs redzes noturības (POV) efektu, kas liek izskatīties tā, it kā visas gaismas diodes būtu iedegtas. Tādējādi gaismas diodes kļūst blāvākas, bet tā ir būtība, kā mēs šajā matricā parādīsim rakstzīmes. Gaismas diodes izmantojamā modelī. Šis fails ir mans pirmais mēģinājums. Jūs redzēsit, ka faila apakšā rakstzīmes tiek saglabātas četrās 5 ciparu binārā rindās. Katra rinda tiek nolasīta, parsēta un apakšprogramma tiek izsaukta katru reizi, kad nepieciešams iedegt LED. Šis kods darbojas, ritinot ar cipariem 1-0. Ja mēģināt to palaist, ievērojiet, ka to skar ļoti lēns atsvaidzes intensitāte, kā rezultātā rakstzīmes mirgo gandrīz pārāk lēni, lai tās varētu atpazīt. Šis kods ir slikts daudzu iemeslu dēļ. Pirmkārt, pieci bināro ciparu skaitļi EEPROM aizņem tikpat daudz vietas kā 8 bināro ciparu cipari, jo visa informācija tiek saglabāta četru bitu grupās. Otrkārt, SELECT CASE, ko izmantoja, lai izlemtu, kura tapa ir jāiededzina, prasa 20 lietas. BS2 ir ierobežots līdz 16 gadījumiem vienā SELECT operācijā. Tas nozīmē, ka man vajadzēja uzlauzt šo ierobežojumu, izmantojot IF-THEN-ELSE paziņojumu. Ir jābūt labākam veidam. Pēc dažu stundu galvas kasīšanas es to atklāju.
6. solis: labāks tulks
Katra mūsu matricas rinda sastāv no 4 gaismas diodēm, katra var būt ieslēgta vai izslēgta. BS2 saglabā informāciju savā EEPROM četru bitu grupās. Šai korelācijai vajadzētu ievērojami atvieglot mūsu darbu. Papildus šim faktam četri biti atbilst decimāldaļskaitļiem 0-15 kopā 16 iespējām. Tas ievērojami atvieglo vai IZVĒLĒT LIETU. Šeit ir cipars 7, kas saglabāts EEPROM: “7 %1111, %1001, %0010, %0100, %0100, katrai rindai ir decimāldaļskaitlis līdz 0–15, tāpēc mēs lasām rindu no atmiņas un ievadiet to tieši funkcijai SELECT CASE. Tas nozīmē, ka tulkotāja atslēga ir cilvēka lasāma binārā matrica, ko izmanto, lai izveidotu katru rakstzīmi (1 = ieslēgta, 0 = izslēgta). Lai lietotu vienu un to pašu SELECT CASE katrai no 5 rindām, es izmantoju citu atlases gadījumu lai iestatītu DIRS un OUTS kā mainīgos. Vispirms izlasīju katrā no piecām rakstzīmes rindām mainīgajiem ROW1-ROW5. Pēc tam galvenā programma izsauc apakšprogrammu, lai parādītu rakstzīmi. Šī apakšprogramma aizņem pirmo rindu un četras iespējamās OUTS kombinācijas piešķir mainīgajiem outp1-outp4, bet divas iespējamās DIRS kombinācijas-directc1 un Direc2. Gaismas diodes mirgo, rindu skaitītājs tiek palielināts, un tas pats process tiek veikts katrai pārējai četrai rindai. Tas ir daudz ātrāk nekā pirmā tulka programma. To sakot, joprojām ir manāms mirgojums. Paskatieties video, kamera padara mirgošanu daudz sliktāku, bet jums ir ideja. Šīs koncepcijas pārnešana uz daudz ātrāku mikroshēmu, piemēram, picMicro vai AVR mikroshēmu, ļautu parādīt šīs rakstzīmes bez manāmas mirgošanas.
7. solis: kurp doties no šejienes
Man nav cnc dzirnavu vai kodināšanas piederumu, lai izgatavotu shēmas plates, tāpēc es nebūšu vadu šo projektu. Ja jums ir dzirnavas un vēlaties sadarboties, lai virzītos uz priekšu no šejienes, nosūtiet man ziņu. Es labprāt maksātu par materiāliem un piegādi, vēl priecīgāk parādītu kaut ko gatavu šim projektam.
Citas iespējas: 1. Pārnesiet to uz citu mikroshēmu. Šo matricas dizainu var izmantot ar jebkuru mikroshēmu, kurai ir pieejami 5 i/o tapas, kas ir spējīgas uz trīs stāvokļiem (tapas, kas var būt augstas, zemas vai ieejas (augsta pretestība)). 2. Izmantojot ātrāku mikroshēmu (iespējams, AVR vai picMicro), jūs varat palielināt mērogu. Izmantojot 20 kontaktu mikroshēmu, jūs varat izmantot 14 tapas, lai charlieplex 8x22 displeju, un atlikušās tapas, lai saņemtu sērijas komandas no datora vai cita kontroliera. Izmantojiet vēl trīs 20 kontaktu mikroshēmas, un jums var būt ritināšanas displejs, kas ir 8x88 un kopā 11 rakstzīmes vienlaikus (protams, atkarībā no katras rakstzīmes platuma). Veiksmi, izklaidējies!
Ieteicams:
Arduino displeja temperatūra TM1637 LED displejā: 7 soļi
Arduino displeja temperatūra TM1637 LED displejā: šajā apmācībā mēs iemācīsimies parādīt temperatūru, izmantojot LED displeju TM1637 un DHT11 sensoru un Visuino. Noskatieties video
Arduino displeja laiks TM1637 LED displejā, izmantojot RTC DS1307: 8 soļi
Arduino displeja laiks TM1637 LED displejā, izmantojot RTC DS1307: Šajā apmācībā mēs iemācīsimies parādīt laiku, izmantojot RTC DS1307 moduli un LED displeju TM1637 un Visuino. Noskatieties video
ESP32 datu publicēšana ar NTP laika zīmogu IoT mākonī: 5 soļi
Kā publicēt ESP32 datus ar NTP laika zīmogu IoT mākonī: daudzās lietojumprogrammās lietotājiem ir jānosūta dati kopā ar vietējo laika zīmogu vērtībām, kas jānosūta kravā uz AskSensors IoT mākoni. Laika zīmoga formāts ir UNIX laikmeta laiks: milisekundes, kas pagājušas kopš janvāra
Displeja temperatūra P10 LED displeja modulī, izmantojot Arduino: 3 soļi (ar attēliem)
Displeja temperatūra P10 LED displeja modulī, izmantojot Arduino: Iepriekšējā apmācībā ir teikts, kā parādīt tekstu Dot Matrix LED displeja P10 modulī, izmantojot Arduino un DMD savienotāju, ko varat pārbaudīt šeit. Šajā apmācībā mēs sniegsim vienkāršu projekta apmācību, izmantojot displeja līdzekli P10 moduli
Izveidojiet pamācāmu robota zīmogu: 7 soļi
Izveidojiet pamācāmu robota zīmogu: Man patīk izgatavot pastmarkas un citas līdzīgas lietas. Un man arī patīk Instructables Robot. Tātad, šeit ir instrukcijas robota zīmogs