Tartalomjegyzék:

5x4 LED kijelző mátrix 2 alap bélyegző (bs2) és Charlieplex használata: 7 lépés
5x4 LED kijelző mátrix 2 alap bélyegző (bs2) és Charlieplex használata: 7 lépés

Videó: 5x4 LED kijelző mátrix 2 alap bélyegző (bs2) és Charlieplex használata: 7 lépés

Videó: 5x4 LED kijelző mátrix 2 alap bélyegző (bs2) és Charlieplex használata: 7 lépés
Videó: This MINI LED Screen is Great! #techreview 2024, December
Anonim
5x4 LED kijelző mátrix alapbélyegző 2 (bs2) és Charlieplexing használatával
5x4 LED kijelző mátrix alapbélyegző 2 (bs2) és Charlieplexing használatával

Ül a Basic Stamp 2 és néhány extra LED? Miért nem játszik a charlieplexing fogalmával, és nem hoz létre kimenetet mindössze 5 csap segítségével.

Ehhez az utasításhoz a BS2e -t fogom használni, de a BS2 család bármely tagjának dolgoznia kell.

1. lépés: Charlieplexing: mit, miért és hogyan

Először tegyük félre az okot. Miért használja a charlieplexing -et egy Basic Stamp 2 -vel? --- A koncepció igazolása: Ismerje meg a charlieplexing működését, és tanuljon valamit a BS2-ről. Ez később hasznos lehet számomra a gyorsabb, 8 tűs chipek használatával (csak 5 közülük lesz i/o).--- Hasznos ok: Alapvetően nincs. A BS2 túl lassú ahhoz, hogy észrevehető villódzás nélkül jelenjen meg. Mi a charlieplexelés? --- A Charlieplexing egy olyan módszer, amellyel nagyszámú LED-et lehet vezetni, kis számú mikroprocesszoros i/o-tűvel. A charlieplexelésről a www.instructables.com webhelyen tanultam, és te is megtudhatod: Charlieplexing LED-ek- Az elmélet Hogyan lehet sok LED-et meghajtani néhány mikrovezérlő tűből. Szintén a wikipédián: CharlieplexingHogyan vezethetek 20 ledet 5 i/o tűvel? --- Kérjük, olvassa el a "Mi a charlieplexing?" Alatti három linket. Ez jobban megmagyarázza, mint valaha tudtam. A Charlieplexing különbözik a hagyományos multiplexeléstől, amelyhez soronként és oszloponként egy i/o tű szükséges (ez összesen 9 i/o csap 5/4 kijelző esetén).

2. lépés: Hardver és vázlat

Hardver és vázlat
Hardver és vázlat

Anyaglista: 1x - Basic Stamp 220x - azonos típusú fénykibocsátó diódák (LED -ek) (szín és feszültségcsökkenés) -9v Tápellátás a BS2 verziójától függően (olvassa el a kézikönyvet) Vázlat: Ez a vázlat a mechanikai elrendezést szem előtt tartva készült. Látni fogja a bal oldalon beállított LED -rácsot, ez az irány, amelyhez a BS2 kódot írták. Figyelje meg, hogy mindegyik LED -pár anódja a másik katódjához van csatlakoztatva. Ezután az öt i/o csap egyikéhez csatlakoznak. Ellenállásértékek: Saját ellenállásértékeket kell kiszámítania. Ellenőrizze a LED -ek adatlapját, vagy használja a digitális multiméter LED -beállításait a LED -ek feszültségcsökkenésének megkereséséhez. Végezzünk néhány számítást: Tápfeszültség - Feszültségcsökkenés / kívánt áram = ellenállásérték a jelenlegi. A LED -eim 1,6 V -os csökkenéssel rendelkeznek, és 20 mA -en működnek. 5 V - 1,6 V /.02 amper = 155 ohm 220ohm -ot használtam, mert a fejlesztőlapomon az ellenállás értéke van beépítve minden i/o -tűhöz. MEGJEGYZÉS: Úgy vélem, hogy mivel minden érintkezőn van ellenállás, ez gyakorlatilag megkétszerezi az ellenállást minden LED -en, mivel az egyik érintkező V+, a másik pedig Gnd. Ebben az esetben felére kell csökkenteni az ellenállás értékeit. A túl magas ellenállásérték káros hatása a halványabb LED. Valaki ellenőrizheti ezt, és hagyhat nekem PM -et vagy megjegyzést, hogy frissíthessem ezeket az információkat? Programozás: DB9 csatlakozóval rendelkező fejlesztőlapot használtam a chip programozására közvetlenül a táblán. Ezt a chipet a forrasztás nélküli kenyértáblán is használom, és tartalmazott egy In Circuit Serial Programming (ICSP) fejlécet. A fejléc 5 érintkezős, a 2–5. Csapok a DB9 soros kábel 2–5. Csatlakozójához csatlakoznak (az 1-es érintkező nincs használatban). Kérjük, vegye figyelembe, hogy ennek az ICSP fejlécnek a használatához a DB9 kábel 6. és 7. csapját össze kell kötni egymással. Visszaállítás: A pillanatnyi reset gomb opcionális. Ez csak húzza a 22 csapot a földre, amikor megnyomja.

3. lépés: Breadboarding

Breadboardozás
Breadboardozás
Breadboardozás
Breadboardozás

Most itt az ideje, hogy a mátrixot egy kenyértáblára építsem. Egy sorkapcsot használtam az egyes LED -párok egyik lábának összekapcsolásához, és egy kis jumper vezetéket a többi láb csatlakoztatásához. Ezt a közeli fotó részletezi, és itt részletesen ismertetjük: 1. Irányítsa a kenyeretáblát a nagyobb képhez2. Helyezze az 1. LED-et az anóddal (+) maga felé, a katóddal (-) pedig távol magától. Helyezze a 2 -es LED -et ugyanabba az irányba, mint az anódot (+) a LED 1 katód csatlakozócsíkjába. Egy kis áthidaló vezetékkel kösse össze a LED 1 anódját a LED 2,5 katódjával. Ismételje meg mindaddig, amíg minden pár LED -t hozzá nem adnak a táblához. A kenyértábla tápellátó buszcsíkjait általában a BS2 I/O csapok buszsávjaként használom. Mivel csak 4 buszcsík van, a P4 -hez (az ötödik I/O csatlakozás) sorkapocsot használok. Ez az alábbi nagyobb képen látható.6. Csatlakoztassa a LED 1 katód kapocslécét a P0 buszsávhoz. Ismételje meg ezt minden páratlan számozású LED -nél, és cserélje ki a megfelelő P* értéket minden párra (lásd a vázlatot). Csatlakoztassa a LED 2 katód kapocslécét a P1 buszsávhoz. Ismételje meg ezt minden páratlan számozású LED -nél, és cserélje ki a megfelelő P* értéket minden párra (lásd a vázlatot). Csatlakoztassa az összes buszcsíkot a BS2 (P0-P4) megfelelő I/O érintkezőjéhez. Ellenőrizze az összes csatlakozást, hogy azok megfeleljenek -e a sematikusnak.10. Ünnepeljen. Ne felejtse el, hogy a páros számú LED -ek katódja a páratlan számú LED -ek anódjához van csatlakoztatva, így a kapcsolat minden esetben ugyanaz. Ha ez a megjegyzés megzavarja, hagyja figyelmen kívül.

4. lépés: A programozás alapjai

A charlieplexing működéséhez egyszerre csak egy ledet kapcsol be. Ahhoz, hogy ez működjön a BS2 -vel, két alapvető lépésre van szükségünk: 1. Állítsa be a kimeneti módokat a csapokhoz az OUTS paranccsal.2. Mondja el a BS2 -nek, hogy mely csapokat használja kimenetként a DIRS paranccsal. Ez azért működik, mert a BS2 -nek meg lehet mondani, hogy mely csapokat kell magasra és alacsonyra hajtani, és várni fog, amíg megadja, hogy melyik csapok kimenetek. Nézzük meg, hogy a dolgok megfelelően vannak -e csatlakoztatva csak megpróbál villogni az 1. LED. Ha megnézi a sematikus ábrát, láthatja, hogy a P0 az 1. LED katódjához (-) van csatlakoztatva, a P1 pedig az azonos LED anódjához. Ez azt jelenti, hogy a P0 -t alacsonyra és a P1 -et magasra akarjuk vezetni. Ezt a következőképpen lehet megtenni: "OUTS = % 11110", amely a P4-P1-et magasra és a P0-t alacsonyra állítja. (% Azt jelzi, hogy bináris számot kell követni. A legalacsonyabb bináris számjegy mindig a jobb oldalon található. 0 = LOW, 1 = HIGH) A BS2 tárolja ezeket az információkat, de addig nem hat rájuk, amíg ki nem jelentjük, hogy melyek a kimenetek. Ez a lépés kulcsfontosságú, mivel csak két csapnak kell egyszerre kimenni. A többi bemenetnek kell lennie, amely ezeket a csapokat nagy impedanciájú üzemmódba állítja, így nem süllyesztik el az áramot. Meg kell hajtanunk a P0 és P1 meghajtókat, így azokat kimenetekre, a többit pedig bemenetekre állítjuk be, így: "DIRS = % 00011". (% Azt jelzi, hogy bináris számot kell követni. A legalacsonyabb bináris szám mindig a jobb oldalon van. 0 = INPUT, 1 = OUTPUT) Tegyük ezt össze néhány hasznos kódba: '{$ STAMP BS2e}' {$ PBASIC 2.5} DO OTS = %11110 'Hajtás P0 alacsony és P1-P4 magas DIRS = %00011' P0- P1 kimenetként és P2-P4 bemenetként PAUSE 250 'Szünet, amíg a LED továbbra is világít DIRS = 0' Állítsa az összes érintkezőt bemenetre. Ez kikapcsolja a LED PAUSE 250 'szüneteltetését, hogy a LED kialudjon

5. lépés: A fejlesztési ciklus

Most, hogy láttunk egy tűs munkaidőt, hogy megbizonyosodjunk arról, hogy mindannyian működnek. 20led_Zig-Zag.bse Észre fogja venni, hogy miután minden tüske kigyulladt, a "DIRS = 0" billentyűt használom, hogy az összes érintkezőt bemenetre változtassam. Ha az OUTS -t úgy változtatja meg, hogy nem kapcsolja ki a kimeneti csapokat, akkor "szellemkép" jelenik meg, ahol egy nem led világító led villoghat a ciklusok között. Ha a kód elején a W1 változót "W1 = 1" -re módosítja csak 1 milliszekundum szünet lesz minden egyes LED villogás között. Ez perzisztáló látás (POV) hatást idéz elő, amely úgy tűnik, mintha minden LED világítana. Ennek az a hatása, hogy a LED -ek halványabbá válnak, de ez a lényege annak, hogyan jelenítjük meg a karaktereket ezen a mátrixon. LED -ek használható mintává. Ez a fájl az első próbálkozásom. Látni fogja, hogy a fájl alján a karakterek négy, 5 jegyű bináris sorban vannak tárolva. Minden sor beolvasásra, elemzésre kerül, és egy alprogramot hívnak meg minden alkalommal, amikor egy LED-et meg kell világítani. Ez a kód működik, az 1-0 számok között. Ha mégis megpróbálja futtatni, vegye észre, hogy nagyon lassú frissítési gyakoriság sújtja, és a karakterek szinte túl lassan villognak ahhoz, hogy felismerjék őket. Ez a kód sok okból rossz. Először is, az öt számjegyű bináris ugyanannyi helyet foglal el az EEPROM -ban, mint a 8 bináris számjegy, mivel minden információ négy bites csoportokban van tárolva. Másodszor, a SELECT CASE, amely eldöntötte, melyik tűt kell megvilágítani, 20 tokot igényel. A BS2 SELECT műveletenként 16 esetre korlátozódik. Ez azt jelenti, hogy meg kellett akadályoznom ezt a korlátozást egy IF-THEN-ELSE utasítással. Biztosan van jobb módszer. Néhány órányi fejvakarás után felfedeztem.

6. lépés: Jobb tolmács

A mátrixunk minden sora 4 LED -ből áll, mindegyik be- vagy kikapcsolható. A BS2 négy bitből álló csoportokban tárolja az információkat az EEPROM -ban. Ennek az összefüggésnek sokkal könnyebbé kell tennie a dolgunkat. Ezen túlmenően négy bit felel meg a 0-15 tizedes számoknak, összesen 16 lehetőség esetén. Ez nagyban megkönnyíti vagy kiválasztja az esetet. Íme a 7-es szám az EEPROM-ban tárolva: '7 %1111, %1001, %0010, %0100, %0100, Minden sor tizedes egyenértékű 0-15-ig, ezért olvasunk egy sort a memóriából, és közvetlenül a SELECT CASE funkcióba kell bevinni. Ez azt jelenti, hogy az emberi olvasható bináris mátrix, amelyet az egyes karakterek elkészítéséhez használtak (1 = led, 0 = led off), a kulcs a tolmács számára. Annak érdekében, hogy ugyanazt a SELECT CASE -t használhassam az 5 sor mindegyikében, más kiválasztott kisbetűt használtam hogy a DIRS és OUTS változókat állítsa be. Először a karakter öt sorában olvastam el az ROW1-ROW5 változókat. A főprogram ezután felhívja az alprogramot, hogy megjelenítse a karaktert. Ez az alprogram átveszi az első sort, és a négy lehetséges OUTS kombinációt az outp1-outp4 változóhoz, a két lehetséges DIRS kombinációt pedig az directc1 és Direc2 értékekhez rendeli. A LED -ek villognak, a sorszámláló növekszik, és a többi négy sor mindegyikénél ugyanaz a folyamat fut. Ez sokkal gyorsabb, mint az első tolmácsprogram. Ennek ellenére még mindig észrevehető villogás figyelhető meg. Nézze meg a videót, a kamera sokkal rosszabbá teszi a villódzást, de megérti. Ha ezt a koncepciót egy sokkal gyorsabb chipre, például egy picMicro -ra vagy egy AVR -chipre továbbítja, ezek a karakterek látható villogás nélkül jeleníthetők meg.

7. lépés: Hová menjen innen

Nincs CNC -malom vagy marató kellékeim áramköri lapok készítéséhez, ezért nem fogom bekötni ezt a projektet. Ha van malma, és szeretne együttműködni a továbblépéshez, küldjön üzenetet. Szívesen fizetnék az anyagokért és a szállításért, még boldogabban, ha valami kész terméket mutatnék be ehhez a projekthez.

Egyéb lehetőségek: 1. Portolja át ezt egy másik chipre. Ez a mátrix kialakítás minden olyan chiphez használható, amelynek 5 i/o csapja van, amelyek háromállapotúak (nagy, alacsony vagy bemeneti (nagy impedanciájú) csapok). 2. Egy gyorsabb chip (esetleg AVR vagy picMicro) használatával növelheti a skálát. Egy 20 tűs chipnél 14 érintkezőt használhat a 8x22 -es kijelző charlieplexelésére, a többi tűt pedig soros parancsok fogadására a számítógéptől vagy egy másik vezérlőtől. Használjon további három 20 tűs chipet, és 8x88 méretű görgető kijelzővel rendelkezhet, összesen 11 karakterre (természetesen az egyes karakterek szélességétől függően). Sok szerencsét, jó szórakozást!

Ajánlott: