Tartalomjegyzék:
Videó: Egyéni karaktergenerátor (Adafruit HT16k33 Matrix): 3 lépés
2024 Szerző: John Day | [email protected]. Utoljára módosítva: 2024-01-30 09:43
Különleges karakterek nyomtatása LCD -ken és LED -es mátrixokon nagyszerű móka. A speciális karakterek vagy egyéni karakterek nyomtatásának eljárása minden sorhoz és oszlophoz egy bináris értékeket tartalmazó tömb létrehozása. Lehet, hogy mozgalmas lehet megtalálni a megfelelő kódot bármely egyedi karakterhez, ezért ez a projekt automatizálja és generálja a kódot egy 8x8 -as led mátrixhoz, és kinyomtatja az egyéni karaktert az Adafruit HT16k33 8x8 Bicolor Matrix -on is.
Az Adafruit HT16k33, egy 1,2 hüvelykes 8x8 -as kétszínű LED -mátrix I2C kommunikációs protokollon keresztül kommunikál az Arduino -val
Az Adafruit szerint: "A LED hátizsák ezen változata az 1,2" -os 8x8 -as mátrixokhoz készült. Méretük mindössze 1,2 "x1,2", így kár hatalmas chipek tömbjét használni az ellenőrzéshez. Ez a hátizsák megoldja a 16 tű vagy egy csomó chip használatának bosszúságát azzal, hogy egy I2C állandóáramú mátrixvezérlő szépen helyezkedik el a NYÁK hátoldalán. A vezérlő chip mindenről gondoskodik, mind a 64 LED -et a háttérben rajzolja meg. Mindössze annyit kell tennie, hogy adatokat írjon rá a 2-tűs I2C interfész segítségével. Két címválasztó csap van, így a 8 cím közül választhat egyet, hogy akár 8-at is vezérelhessen egyetlen 2-tűs I2C buszon (valamint bármely más tetszőleges I2C chipet vagy érzékelőt). Az illesztőprogram chipje 1/16 lépésben „tompíthatja” a teljes kijelzőt az 1/16 fényerőről a teljes fényerőre. Nem tudja tompítani az egyes LED -eket, csak a teljes kijelzőt egyszerre."
Ebben az utasításban elmagyarázom, hogyan lehet valós időben lekérni bármely egyedi karakter kódját, és kinyomtatni azt a Led Matrix -on.
1. lépés: Alkatrészek
Ez az utasítás az Adafruit HT16k33 Matrix alapprojektje. Szükséged van:
- Adafruit HT16k33 1.2 "x 1.2" 8x8 Bicolor Led Matrix.
- Arduino (bármelyik változat, kivéve az Uno -t).
- Kenyeretábla
- Tápegység
2. lépés: Vázlatos
Az Adafruit HT16k33 Led mátrix bekötése nagyon egyszerű, mivel össze kell kapcsolnunk az órát és az adatcsapot, mint általában az I2C eszközöknél. A kapcsolatok a következők lesznek:
- SCL (Clock pin of Matrix) csatlakozik az A5 -höz (Arduino Uno órajelcsapja. Az Arduino egyéb változataihoz lásd az adatlapot)
- SDA (Data pin of Matrix) csatlakozik az A4 -hez. (Az Arduino egyéb változataihoz lásd az adatlapot)
- VCC 5V -ra csatlakoztatva.
- A GND 0V -ra van csatlakoztatva.
Az ábrán látható sémával is megismerkedhet.
3. lépés: Kód
Arduino kód
Először is minden szükséges könyvtárat belefoglalunk.
- Wire.h:- I2C kommunikációhoz
- Adafruit_LedBackpack
- Adafruit_GFX
Mindezek a könyvtárak magukban az Arduino IDE -ben érhetők el. Csak telepítenie kell őket a Könyvtárkezelőből. Vázlat >> Könyvtár bevonása >> Könyvtárak kezelése
Beállítási funkció ()
Aláíratlan egész 8 bites tömb beállítása strore8 bináris értékekre 8 sorban, egyenként 8 bitből (8 oszlop). Állítsa be az I2C kommunikáció címét.
Loop funkció ()
Mivel ki kell nyomtatnunk a karaktert, szükségünk van a karakter kódjára valós időben. A legkényelmesebb módszer a kód soros elküldése, és Arduino beolvassa a soros adatokat, és ennek megfelelően nyomtatja ki a karaktert. Egy tömb sorozatban történő küldése mozgalmas feladat lehet, ezért küldhetünk egy karakterláncot mind a 8 kóddal (egyenként 8 bit) vesszővel elválasztva.
Soros karakterlánc olvasása:
if (Serial.available ()> 0) {data = Serial.readStringUntil ('\ n'); Serial.println (adatok); }
A szöveg elolvasása után dekódolni kell ezt a karakterláncot, és vissza kell kapnunk a bináris értékeket. Mint tudjuk, a bemeneti karakterlánc formátuma mindig ugyanaz lesz. Kódolhatjuk, hogy megkeressük az alláncokat, és a karakterláncokat tizedes egyenértékűvé alakítsuk át. Ezután átadjuk a generált tizedes tömböt (uint8_t) a karakter mátrixra történő nyomtatásához.
8 bites karakterlánc tizedesre konvertálása:
int val (String str) {int v = 0; for (int i = 0; i <8; i ++) {if (str == '1') {v = v+power (2, (7-i)); }} return v; }
A tizedes egyenérték kiértékeléséhez a teljesítményfüggvény (pow ()) használatával kettős típusú értékekkel kell foglalkoznia, és így a saját teljesítményfüggvényünket a következőképpen írhatjuk fel:
int hatalom (int bázis, int kitevő) {int c = 1; for (int i = 0; i {c = c*base;} return c;}
Most végre megírjuk a kódot, amellyel kinyomtathatjuk a karaktert a 8 tizedes értékből álló (minden sorban egy) tömb használatával.
void print_emoji (uint8_t emoji , karakterlánc színe) {matrix.clear (); if (szín == "piros") {matrix.drawBitmap (0, 0, emoji, 8, 8, LED_RED); } else {matrix.drawBitmap (0, 0, emoji, 8, 8, LED_GREEN); } matrix.writeDisplay (); késleltetés (500); }
Könnyen megértheti ezt a kódot, mivel először töröljük a mátrixot, majd megjelenítjük a karaktert az emoji tömb használatával a matrix.drawBitmap () függvény segítségével. Ne felejtse el a "matrix.writeDisplay ()" írást minden formázás után, mivel ez a funkció csak a mátrixon végzett összes formázást jeleníti meg.
Most elküldheti a karakterláncot az összes kódértékkel, és Arduino kinyomtatja a karaktert a mátrixon. Letöltheti az Arduino kódot alulról. Kísérleti célból írhat
B00111100, B01000010, B10100101, B10000001, B10100101, B10011001, B01000010, B00111100
ezt a karakterláncot a Soros monitorban, és láthatja a karaktert a mátrixon.
Most automatikusan el kell küldenünk a soros adatokat egy szoftverből, amikor megnyomjuk a "Nyomtatás" gombot. Ennek automatizálására 8x8 -as demó mátrixot készítünk, és lehetőséget biztosítunk a felhasználó számára, hogy melyik cellákat színezze, majd a szoftver automatikusan generálja a kódot, és sorban elküldi az adatokat az Arduino -nak karakterlánc -formátumban. A további munkámhoz a Feldolgozás lehetőséget választottam. A feldolgozás során mátrixot készíthetünk 64 gomb segítségével (téglalapok lenyomott funkcióval), és hozzárendelhetünk egy adott értéket és színt az elején (Legyen ez a fehér szín 0 értékkel). Most, amikor megnyomja a gombot, a gomb színét feketére váltjuk, és az értéket 1 -re állítjuk. Ha a felhasználó ismét megnyomja ugyanazt a gombot, értéke ismét 0 -ra változik, és a színe ismét fehér lesz. Ez segíteni fogja a felhasználót abban, hogy könnyen újra és újra megváltoztassa a kódot, és könnyen módosíthasson anélkül, hogy a teljes mátrixot újra törölné. A "Nyomtatás" gombra kattintva a fenti bemutatáshoz hasonló karakterláncot készítünk. Ezután a karakterlánc elküldésre kerül az adott soros portra.
A feldolgozási kódot letöltheti alulról. Ez az első kódom a feldolgozás során. A továbbfejlesztett kódolási módra vonatkozó javaslatokat nagyra értékelik.
Láthatja, hogyan néz ki a GUI, és hogyan jön létre a karakter a rendszer segítségével. Alig néhány másodpercbe telik, hogy ugyanazt a karaktert létrehozza a mátrixon.
A projekt kódját és képeit letöltheti a GitHub tárházból.
Ajánlott:
Az STM32f767zi Cube IDE használatának első lépései és egyéni vázlat feltöltése: 3 lépés
Első lépések az STM32f767zi Cube IDE -vel és a Feltöltés egyéni vázlata: VÁSÁROL (kattintson a tesztre a vásárláshoz/a weboldal megtekintéséhez) STM32F767ZISUPPORTED SZOFTVER · STM32CUBE IDE · KEIL MDK ARM µVISION · EWARM IAR EMBEDDED WORD STM mikrovezérlők programozására használják
Egyéni térképek létrehozása a Garmin GPS -hez: 8 lépés (képekkel)
Egyéni térképek létrehozása a Garmin GPS -hez: Ha rendelkezik Garmin GPS -szel, amelyet túrázásra és egyéb szabadtéri tevékenységekre terveztek (többek között a GPSMAP, eTrex, Colorado, Dakota, Oregon és Montana sorozatokat), akkor nem kell megelégedni az előre betöltött csupasz csontok térképeivel. E
HotKeys billentyűzet egyéni profilokkal: 14 lépés (képekkel)
HotKeys billentyűzet egyéni profilokkal: Remélem, jól jár a járvány közepette. Biztonságosan. Légy erős. #COVID19 Ipari tervezőként több mint 7-8 olyan szoftverhez kell hozzáférnem, amelyek naponta tartalmaznak Solidworks, Photoshop, Illustrator, Keyshot, Indesign stb., És néhány g
Hordható mozgáskövető készítése (BLE az Arduinótól az egyéni Android Studio alkalmazásig): 4 lépés
Hordható mozgáskövető készítése (BLE az Arduinótól az egyéni Android Studio alkalmazásig): A Bluetooth Low Energy (BLE) az alacsony fogyasztású Bluetooth kommunikáció egy formája. A hordható eszközöknek, mint például az intelligens ruháknak, amelyeket a Predictive Wear tervezésében segítek, mindenhol korlátozniuk kell az energiafogyasztást az akkumulátor élettartamának meghosszabbítása érdekében, és gyakran kell használniuk a BLE -t
Adafruit Feather NRF52 egyéni vezérlők, nincs szükség kódolásra: 8 lépés (képekkel)
Adafruit Feather NRF52 egyéni vezérlők, nincs szükség kódolásra: Frissítés 2019. április 23. - A dátum/idő ábrákhoz, amelyek csak Arduino millis () -et használnak, lásd az Arduino dátum/idő ábrázolása/naplózása Millis () és PfodApp használatával A legújabb ingyenes pfodDesigner V3.0.3610+ generált fejezze be az Arduino vázlatait az adatok ábrázolásához dátum/idő szerint