Satura rādītājs:

Pielāgots rakstzīmju ģenerators (Adafruit HT16k33 Matrix): 3 soļi
Pielāgots rakstzīmju ģenerators (Adafruit HT16k33 Matrix): 3 soļi

Video: Pielāgots rakstzīmju ģenerators (Adafruit HT16k33 Matrix): 3 soļi

Video: Pielāgots rakstzīmju ģenerators (Adafruit HT16k33 Matrix): 3 soļi
Video: Output DC or AC Voltage using MCP4725 DAC with LCD and PWM to Voltage Converter with Arduino 2024, Novembris
Anonim
Pielāgots rakstzīmju ģenerators (Adafruit HT16k33 Matrix)
Pielāgots rakstzīmju ģenerators (Adafruit HT16k33 Matrix)

Īpašu rakstzīmju drukāšana uz LCD un LED matricām ir lieliska izklaide. Speciālo rakstzīmju vai pielāgoto rakstzīmju drukāšanas procedūra ir ģenerēt masīvu ar binārajām vērtībām katrai rindai un kolonnai. Var būt saspringti atrast pareizo kodu jebkurai pielāgotajai rakstzīmei, tāpēc šis projekts automatizēs un ģenerēs kodu 8x8 LED matricai, kā arī izdrukās pielāgoto rakstzīmi uz Adafruit HT16k33 8x8 Bicolor Matrix.

Adafruit HT16k33, 1,2 collu 8x8 divkrāsu LED matrica sazinās ar Arduino, izmantojot I2C sakaru protokolu

Saskaņā ar Adafruit teikto: "Šī LED mugursomas versija ir paredzēta 1,2" 8x8 matricām. To izmērs ir tikai 1,2 "x1,2", tāpēc ir kauns izmantot milzīgu mikroshēmu klāstu, lai to kontrolētu. Šī mugursoma novērš 16 ķegļu vai mikroshēmu ķekara lietošanas traucējumus, jo I2C pastāvīgās strāvas matricas kontrolieris ir kārtīgi novietots PCB aizmugurē. Kontroliera mikroshēma rūpējas par visu, fonā uzzīmējot visas 64 gaismas diodes. Viss, kas jums jādara, ir ierakstīt tajā datus, izmantojot 2 kontaktu I2C saskarni. Ir divas adrešu atlases tapas, lai jūs varētu izvēlēties vienu no 8 adresēm, lai kontrolētu līdz 8 no tām vienā 2-kontaktu I2C kopnē (kā arī jebkuras citas I2C mikroshēmas vai sensori, kas jums patīk). Vadītāja mikroshēma var “aptumšot” visu displeju no 1/16 spilgtuma līdz pilnam spilgtumam ar 1/16 soļiem. Tas nevar aptumšot atsevišķas gaismas diodes, tikai visu displeju vienlaikus."

Šajā pamācībā es jums paskaidrošu, kā reālā laikā iegūt jebkuras pielāgotas rakstzīmes kodu un izdrukāt šo rakstzīmi uz Led Matrix.

1. darbība: sastāvdaļas

Šī pamācība ir Adafruit HT16k33 Matrix pamatprojekts. Tev vajag:

  1. Adafruit HT16k33 1,2 "x 1,2" 8x8 divkrāsu LED matrica.
  2. Arduino (vēlams jebkurš variants, izņemot Uno).
  3. Maizes dēlis
  4. Enerģijas padeve

2. darbība. Shēma

Shematisks
Shematisks
Shematisks
Shematisks

Elektroinstalācija Adafruit HT16k33 Led matricu ir ļoti vienkārša, jo mums ir jāpievieno pulkstenis un datu tapa, kā parasti I2C ierīcēm. Savienojumi būs šādi:

  1. SCL (Matricas pulksteņa tapa) savienots ar A5 (Arduino Uno pulksteņa tapa. Citus Arduino variantus skatiet datu lapā)
  2. SDA (Matrix datu tapa) savienots ar A4. (Skatiet citu Arduino variantu datu lapu)
  3. VCC savienots ar 5V.
  4. GND savienots ar 0V.

Varat arī iepazīties ar attēlā redzamo shēmu.

3. darbība: kods

Kods
Kods
Kods
Kods

Arduino kods

Pirmkārt, mēs iekļausim visas nepieciešamās bibliotēkas.

  1. Wire.h:- I2C sakariem
  2. Adafruit_LedBackpack
  3. Adafruit_GFX

Visas šīs bibliotēkas ir pieejamas pašā Arduino IDE. Jums vienkārši jāinstalē tie no bibliotēkas pārvaldnieka. Skice >> Iekļaut bibliotēku >> Pārvaldīt bibliotēkas

Iestatīšanas funkcija ()

Neparakstīta vesela skaitļa 8 bitu masīva iestatīšana uz strore8 binārajām vērtībām 8 rindās, pa 8 bitiem katrā (8 kolonnas). Iestatiet adresi I2C saziņai.

Cilpas funkcija ()

Tā kā mums ir jāizdrukā raksturs, mums ir nepieciešams rakstzīmes kods reālā laikā. Visērtākā metode ir nosūtīt kodu sērijveidā, un Arduino nolasīs sērijas datus un attiecīgi izdrukās rakstzīmi. Masīva sērijveida nosūtīšana var būt saspringts darbs, tāpēc mēs varam nosūtīt virkni ar visiem 8 kodiem (katrs 8 biti), atdalot tos ar komatiem.

Sērijas virknes lasīšana:

ja (Serial.available ()> 0) {data = Serial.readStringUntil ('\ n'); Serial.println (dati); }

Pēc teksta lasīšanas mums jāatšifrē šī virkne un jāatgūst binārās vērtības. Kā mēs zinām, ievades virknes formāts vienmēr būs vienāds. Mēs varam to kodēt, lai atrastu apakšvirknes un pārvērstu virknes to ekvivalentās decimāldaļās. Tad mēs nodosim ģenerēto decimālo masīvu (uint8_t), lai rakstzīmi izdrukātu uz matricas.

8 bitu virknes pārvēršana aiz komata:

int val (String str) {int v = 0; par (int i = 0; i <8; i ++) {ja (str == '1') {v = v+jauda (2, (7-i)); }} atgriezties v; }

Lai novērtētu decimāldaļu ekvivalentu, izmantojot jaudas funkciju (pow ()), jums jārisina divkāršā tipa vērtības, un tāpēc mēs varam uzrakstīt savu jaudas funkciju kā:

int jauda (int bāze, int eksponents) {int c = 1; par (int i = 0; i {c = c*bāze;} atgriezt c;}

Visbeidzot, mēs uzrakstīsim kodu, lai izdrukātu rakstzīmi, izmantojot ģenerēto masīvu ar 8 zīmēm aiz komata (viens katrai rindai).

void print_emoji (uint8_t emoji , virknes krāsa) {matrix.clear (); ja (krāsa == "sarkana") {matrix.drawBitmap (0, 0, emocijzīmes, 8, 8, LED_RED); } cits {matrix.drawBitmap (0, 0, emocijzīmes, 8, 8, LED_GREEN); } matrix.writeDisplay (); kavēšanās (500); }

Jūs viegli sapratīsit šo kodu, jo mēs vispirms notīrām matricu un pēc tam parādām rakstzīmi, izmantojot emocijzīmju masīvu, izmantojot funkciju matrix.drawBitmap (). Pēc visas formatēšanas neaizmirstiet rakstīt "matrix.writeDisplay ()", jo šī funkcija parādīs tikai visus līdz šim matricā veiktos formatējumus.

Tagad jūs varat nosūtīt virkni ar visām koda vērtībām, un Arduino drukās rakstzīmi uz matricas. Jūs varat lejupielādēt Arduino kodu no apakšas. Eksperimentālā nolūkā varat rakstīt

B00111100, B01000010, B10100101, B10000001, B10100101, B10011001, B01000010, B00111100

šo virkni sērijas monitorā un var redzēt rakstzīmi matricā.

Tagad mums ir jāsūta sērijas dati automātiski no programmatūras, nospiežot pogu "Drukāt". Lai to automatizētu, mēs izveidosim 8x8 demonstrācijas matricu un nodrošināsim iespēju lietotājam izvēlēties, kurām šūnām jābūt krāsotām, un pēc tam programmatūra automātiski ģenerēs kodu un sērijveidā nosūtīs datus Arduino virknes formātā. Pārējam darbam es izvēlējos apstrādi. Apstrādes laikā mēs varam izveidot matricu, izmantojot 64 pogas (taisnstūri ar nospiestu funkciju), un sākumā varam piešķirt noteiktu vērtību un krāsu (lai tā būtu baltā krāsa ar vērtību 0). Tagad, kad tiek nospiesta poga, mēs pārvērsim pogas krāsu melnā krāsā un iestatīsim vērtību uz 1. Ja lietotājs vēlreiz nospiedīs to pašu pogu, tā vērtība atkal mainīsies uz 0 un krāsa atkal kļūs balta. Tas palīdzēs lietotājam viegli atkal un atkal mainīt kodu un var viegli veikt grozījumus, neizdzēšot visu matricu vēlreiz. Noklikšķinot uz pogas "Drukāt", mēs izveidosim virkni, kas līdzīga iepriekš parādītajai demonstrācijai. Tad virkne tiks nosūtīta uz konkrēto seriālo portu.

Apstrādes kodu varat lejupielādēt zemāk. Šis ir mans pirmais kods apstrādē. Ieteikumi uzlabotam kodēšanas veidam tiek augstu novērtēti.

Jūs varat redzēt, kā izskatās GUI un kā raksturs tiek izveidots, izmantojot sistēmu. Diez vai vajadzēs sekundes, lai izveidotu tādu pašu rakstzīmi uz matricas.

Jūs varat lejupielādēt šī projekta kodu un attēlus no manas GitHub krātuves.

Ieteicams: