Sadržaj:
Video: Generator prilagođenih znakova (Adafruit HT16k33 matrica): 3 koraka
2024 Autor: John Day | [email protected]. Zadnja promjena: 2024-01-30 09:37
Ispis posebnih znakova na LCD -ovima i LED matricama velika je zabava. Postupak ispisa posebnih znakova ili prilagođenih znakova je generiranje niza s binarnim vrijednostima za svaki redak i stupac. Možda je užurbano pronaći ispravan kôd za bilo koji prilagođeni znak, stoga će ovaj projekt automatizirati i generirati kôd za LED matricu 8x8, a također će ispisati prilagođeni znak na dvobojnoj matrici Adafruit HT16k33 8x8.
Adafruit HT16k33, dvobojna matrica od 1,2 '' 8x8 s dvobojnom bojom komunicira s Arduinom putem komunikacijskog protokola I2C
Prema Adafruit -u, "Ova verzija LED ruksaka dizajnirana je za 1,2" 8x8 matrice. Oni mjere samo 1,2 "x1,2" pa je šteta upotrijebiti ogroman niz čipova za kontrolu. Ovaj ruksak rješava neugodnost korištenja 16 pinova ili hrpe čipova tako da matrica I2C matričnog kontrolera konstantne struje uredno sjedi na stražnjoj strani PCB-a. Čip kontrolera brine se za sve, crtajući svih 64 LED diode u pozadini. Sve što trebate učiniti je upisati podatke u njega pomoću 2-pinskog I2C sučelja. Postoje dva pina za odabir adrese pa možete odabrati jednu od 8 adresa za upravljanje do 8 njih na jednoj 2-pinskoj I2C sabirnici (kao i bilo kojim drugim I2C čipovima ili senzorima koji vam se sviđaju). Čip upravljačkog programa može 'zatamniti' cijeli zaslon od 1/16 svjetline do pune svjetline u 1/16 koraka. Ne može zatamniti pojedinačne LED diode, samo cijeli zaslon odjednom."
U ovom uputstvu ću vam objasniti kako doći do koda za bilo koji prilagođeni znak u stvarnom vremenu i ispisati ga na Led Matrixu.
Korak 1: Komponente
Ovo uputstvo je osnovni projekt na Adafruit HT16k33 Matrix -u. Trebaš:
- Adafruit HT16k33 1,2 '' x 1,2 '' 8x8 dvobojna LED matrica.
- Arduino (preferira se bilo koja varijanta, ali Uno).
- Oglasna ploča
- Napajanje
Korak 2: Shematski prikaz
Ožičenje Adafruit HT16k33 Led matrica vrlo je jednostavna jer moramo spojiti sat i podatkovni pin kao što to obično činimo za I2C uređaje. Veze će biti takve:
- SCL (pin sata Matrix -a) spojen na A5 (pin sata Arduino Uno. Pogledajte podatkovnu tablicu za druge varijante Arduina)
- SDA (podatkovni pin matrice) spojen na A4. (Za ostale varijante Arduina pogledajte tehnički list)
- VCC spojen na 5V.
- GND spojen na 0V.
Također možete pogledati shemu prikazanu na slici.
Korak 3: Kodirajte
Arduino kod
Prvo ćemo uključiti sve potrebne knjižnice.
- Wire.h:- Za I2C komunikaciju
- Adafruit_LedBackpack
- Adafruit_GFX
Sve su te knjižnice dostupne u samom Arduino IDE -u. Morate ih samo instalirati iz Upravitelja knjižnice. Skica >> Uključi knjižnicu >> Upravljanje knjižnicama
Funkcija postavljanja ()
Postavljanje bezznačnog cjelobrojnog 8-bitnog niza na strore8 binarne vrijednosti za 8 redaka, od po 8 bitova svaki (8 stupaca). Postavite adresu za I2C komunikaciju.
Funkcija petlje ()
Kako moramo ispisati znak, potreban nam je kod za lik u stvarnom vremenu. Najprikladniji način je slanje koda serijski, a Arduino će pročitati serijske podatke i prema tome ispisati znak. Slanje niza serijski može biti užurban posao, stoga možemo poslati niz sa svih 8 kodova (svaki po 8 bitova) odvojenih zarezima.
Čitanje serijskog niza:
if (Serial.available ()> 0) {data = Serial.readStringUntil ('\ n'); Serial.println (podaci); }
Nakon čitanja teksta, moramo dekodirati ovaj niz i vratiti binarne vrijednosti. Kao što znamo, format ulaznog niza uvijek će biti isti. Možemo ga kodirati kako bismo pronašli podniz i pretvorili nizove u njihove decimalne ekvivalentne vrijednosti. Zatim ćemo proslijediti generirani decimalni niz (uint8_t) za ispis znaka na matrici.
Pretvaranje niza od 8 bita u decimalni broj:
int val (String str) {int v = 0; za (int i = 0; i <8; i ++) {if (str == '1') {v = v+snaga (2, (7-i)); }} return v; }
Za procjenu decimalnog ekvivalenta pomoću funkcije power (pow ()), morate se baviti vrijednostima dvostrukog tipa, pa stoga možemo napisati vlastitu funkciju napajanja kao:
int snaga (int baza, int eksponent) {int c = 1; for (int i = 0; i {c = c*baza;} vrati c;}
Sada ćemo napokon napisati kôd za ispis znaka pomoću generiranog niza od 8 decimalnih vrijednosti (po jedna za svaki redak).
void print_emoji (uint8_t emoji , boja niza) {matrix.clear (); if (boja == "crvena") {matrix.drawBitmap (0, 0, emoji, 8, 8, LED_RED); } else {matrix.drawBitmap (0, 0, emoji, 8, 8, LED_GREEN); } matrix.writeDisplay (); kašnjenje (500); }
Ovaj ćete kôd lako razumjeti jer prvo brišemo matricu, a zatim prikazujemo znak pomoću polja emoji pomoću funkcije matrix.drawBitmap (). Ne zaboravite napisati "matrix.writeDisplay ()" nakon svih formatiranja jer će ova funkcija prikazati samo sva do sada napravljena oblikovanja na matrici.
Sada možete poslati niz sa svim vrijednostima koda i Arduino će ispisati znak na matrici. Arduino kôd možete preuzeti odozdo. U eksperimentalne svrhe možete pisati
B00111100, B01000010, B10100101, B10000001, B10100101, B10011001, B01000010, B00111100
ovaj niz u serijskom monitoru i može vidjeti znak na matrici.
Sada moramo automatski poslati serijske podatke iz softvera kada pritisnemo gumb "Ispis". Za automatizaciju ćemo napraviti demo 8x8 matricu i pružit ćemo mogućnost korisniku da odabere koje ćelije treba obojiti, a zatim će softver automatski generirati kôd i serijski poslati podatke u Arduino u formatu niza. Odabrao sam Obrada za ostatak svog rada. U obradi možemo napraviti matricu pomoću 64 gumba (pravokutnici s pritisnutom funkcijom) i možemo dodijeliti određenu vrijednost i boju na početku (Neka to bude bijela boja s vrijednošću 0). Sada kad god je gumb pritisnut, pretvorit ćemo boju gumba u crnu i postaviti vrijednost na 1. Ako korisnik ponovno pritisne isti gumb, njegova će se vrijednost ponovno promijeniti na 0, a boja natrag u bijelu. To će pomoći korisniku da promijeni kôd uvijek iznova i lako može unositi izmjene bez ponovnog brisanja cijele matrice. Klikom na gumb "Ispis" napravit ćemo niz sličan onom prikazanom gore za demonstraciju. Tada će se niz poslati na određeni serijski port.
Kod za obradu možete preuzeti ispod. Ovo je moj prvi kod u obradi. Prijedlozi za poboljšani način kodiranja visoko su cijenjeni.
Možete vidjeti kako GUI izgleda i kako se lik stvara pomoću sustava. Teško da će trebati nekoliko sekundi za stvaranje istog znaka na matrici.
Kôd i slike ovog projekta možete preuzeti iz mog GitHub spremišta.
Preporučeni:
Vrlo svijetlo svjetlo za bicikl pomoću prilagođenih svjetlosnih ploča: 8 koraka (sa slikama)
Vrlo svijetlo svjetlo za bicikl pomoću PCB -ova s prilagođenim svjetlom: Ako posjedujete bicikl, znate koliko neugodne rupe mogu biti na vašim gumama i tijelu. Bilo mi je dosta ispuhavanja guma pa sam odlučio dizajnirati vlastitu LED ploču s namjerom da je koristim kao svjetlo za bicikl. Ona koja se fokusira na to da bude E
Arduino IDE: Izrada prilagođenih ploča: 10 koraka
Arduino IDE: Stvaranje prilagođenih ploča: U posljednjih šest mjeseci potrošio sam puno vremena na prenošenje različitih knjižnica na ploču Robo HAT MM1 koju su razvili Robotics Masters. To je dovelo do otkrivanja mnogo o tim knjižnicama, o njihovom radu iza kulisa i što je najvažnije
Ispis prilagođenih pločica s 3D pisačem: 7 koraka (sa slikama)
Ispis prilagođenih ploča s 3D pisačem: Ako vam ovo nije prvi put da vidite 3D pisač, vjerojatno ste čuli da je netko rekao nešto poput: 1) Kupite 3D pisač2) Ispišite drugi 3D pisač3) Vratite originalni 3D printer4) ???????? 5) ProfitNow it w
Projekt ME 470 - Zavarivanje SolidWorksa: Korištenje prilagođenih profila: 6 koraka
Projekt ME 470 - Zavarivanje SolidWorksa: Korištenje prilagođenih profila: Ovaj vodič je kreiran kako bi informirao korisnike sustava Windows SolidWorks kako koristiti prilagođene profile u dodatku za zavarivanje. Dodatak Weldments robusno je proširenje SolidWorksa koje se može koristiti za stvaranje složenih struktura, okvira i rešetki
Dodavanje prilagođenih ploča u Arduino IDE: 3 koraka
Dodavanje prilagođenih ploča u Arduino IDE: Verzija 1.6.4 Arduino IDE -a uvela je službenu podršku za dodavanje arduino kompatibilnih ploča trećih strana u Arduino Board Manager. Ova dodatna podrška odlična je vijest jer omogućuje korisnicima brzo dodavanje prilagođenih ploča sa samo jednim klikom