Агуулгын хүснэгт:

Гаалийн тэмдэгт үүсгэгч (Adafruit HT16k33 матриц): 3 алхам
Гаалийн тэмдэгт үүсгэгч (Adafruit HT16k33 матриц): 3 алхам

Видео: Гаалийн тэмдэгт үүсгэгч (Adafruit HT16k33 матриц): 3 алхам

Видео: Гаалийн тэмдэгт үүсгэгч (Adafruit HT16k33 матриц): 3 алхам
Видео: Реальная цена монеты 10 рублей 2010 года. СПМД, ММД. Разбор разновидностей. Российская Федерация. 2024, Долдугаар сарын
Anonim
Гаалийн тэмдэгт үүсгэгч (Adafruit HT16k33 матриц)
Гаалийн тэмдэгт үүсгэгч (Adafruit HT16k33 матриц)

Тусгай тэмдэгтүүдийг LCD болон Led матриц дээр хэвлэх нь үнэхээр хөгжилтэй байдаг. Тусгай тэмдэгтүүд эсвэл захиалгат тэмдэгтүүдийг хэвлэх журам нь мөр, багана тус бүрт хоёртын утгатай массив үүсгэх явдал юм. Аливаа захиалгат тэмдэгтэд тохирох кодыг олох нь хэцүү байж магадгүй тул энэ төсөл нь 8х8 хэмжээтэй LED матрицыг автоматжуулж, код үүсгэх бөгөөд Adafruit HT16k33 8x8 Bicolor Matrix дээр захиалгат тэмдэгтийг хэвлэх болно.

Adafruit HT16k33, 1.2 инчийн 8х8 хэмжээтэй хоёр өнгийн LED матриц нь I2C холбооны протоколоор дамжуулан Arduino -той харилцдаг

Adafruit -ийн хэлснээр "LED үүргэвчний энэ хувилбар нь 1.2" 8x8 хэмжээтэй матрицад зориулагдсан болно. Тэд ердөө 1.2 "x1.2" хэмжээтэй байдаг тул үүнийг хянахын тулд асар олон тооны чип ашиглах нь ичмээр юм. Энэхүү үүргэвч нь I2C тогтмол гүйдлийн матриц хянагчийг ПХБ-ийн ар талд цэвэрхэн суулгаснаар 16 тээглүүр эсвэл олон чип ашиглахад тулгардаг бухимдлыг арилгадаг. Хянагчийн чип нь бүх зүйлийг зохицуулж, бүх 64 LED -ийг цаана нь зурдаг. 2 зүү I2C интерфэйсийг ашиглан өгөгдөл бичихэд л хангалттай. Хаяг сонгох хоёр тээглүүр байдаг тул та 8 хаягийн аль нэгийг нь сонгож 2-зүү бүхий I2C автобусанд (мөн бусад I2C чип, мэдрэгч гэх мэт) удирдах боломжтой. Жолоочийн чип нь 1/16 гэрлээс бүтэн гэрэл хүртэл 1/16 алхамаар дэлгэцийг бүхэлд нь бүдгэрүүлж чаддаг. Энэ нь тус тусдаа LED -ийг бүдгэрүүлж чадахгүй, зөвхөн дэлгэцийг бүхэлд нь нэгэн зэрэг гэрэлтүүлж чадна."

Энэхүү зааварчилгаанд би дурын захиалгат тэмдэгтийн кодыг бодит цаг хугацаанд хэрхэн яаж авахыг тайлбарлаж, тэр тэмдэгтийг Led Matrix дээр хэвлэх болно.

Алхам 1: бүрэлдэхүүн хэсгүүд

Энэхүү зааварчилгаа нь Adafruit HT16k33 матрицын үндсэн төсөл юм. Чамд хэрэгтэй:

  1. Adafruit HT16k33 1.2 "x 1.2" 8x8 хэмжээтэй хоёр өнгийн LED матриц.
  2. Arduino (Uno -аас өөр ямар ч хувилбарыг илүүд үздэг).
  3. Талхны самбар
  4. Цахилгаан хангамж

Алхам 2: Схем

Схем
Схем
Схем
Схем

Adafruit HT16k33 Led матрицыг холбох нь маш хялбар байдаг, учир нь I2C төхөөрөмжид ихэвчлэн хийдэг шиг цаг, өгөгдлийн зүүг холбох шаардлагатай байдаг. Холболтууд дараах байдлаар байх болно.

  1. SCL (Матрицын цагны зүү) A5 -тай холбогдсон
  2. SDA (Матрицын өгөгдлийн зүү) A4 -т холбогдсон. (Arduino -ийн бусад хувилбаруудын мэдээллийн хуудсыг үзнэ үү)
  3. VCC 5V -д холбогдсон.
  4. GND нь 0V -д холбогдсон.

Та мөн зураг дээр үзүүлсэн схемтэй танилцаж болно.

Алхам 3: Код

Код
Код
Код
Код

Arduino код

Нэгдүгээрт, бид шаардлагатай бүх номын санг оруулах болно.

  1. Wire.h:- I2C холбооны хувьд
  2. Adafruit_LedBackpack
  3. Adafruit_GFX

Эдгээр бүх номын санг Arduino IDE дээр ашиглах боломжтой. Та тэдгээрийг Номын сангийн менежерээс суулгах хэрэгтэй. Ноорог >> Номын сан оруулах >> Номын санг удирдах

Тохируулах функц ()

Гарын үсэг зураагүй бүхэл тоон 8 битийн массивыг 8 мөрт 8 ширхэг хоёртын утгыг тохируулах, тус бүр 8 бит (8 багана). I2C холбооны хаягийг тохируулна уу.

Loop функц ()

Тэмдэгтийг хэвлэхийн тулд бидэнд тухайн дүрийн код бодит цаг хугацаанд хэрэгтэй болно. Хамгийн тохиромжтой арга бол кодыг цувралаар илгээх бөгөөд Arduino нь серийн өгөгдлийг уншиж, дүрсийг нь хэвлэх болно. Массивыг дараалан илгээх нь маш хэцүү ажил тул бид бүх 8 код (тус бүр 8 бит) -ээр таслалаар тусгаарлагдсан мөрийг илгээж болно.

Цуваа мөрийг унших:

if (Serial.available ()> 0) {data = Serial.readStringUntil ('\ n'); Serial.println (өгөгдөл); }

Текстийг уншсаны дараа бид энэ мөрийг тайлж, хоёртын утгыг буцааж авах хэрэгтэй. Бидний мэдэж байгаагаар оролтын мөрийн формат үргэлж ижил байх болно. Бид дэд мөрүүдийг хайж мөрүүдийг аравтын эквивалент утгууд руу хөрвүүлэхийн тулд үүнийг кодлох боломжтой. Дараа нь бид үүсгэсэн аравтын бутархай массивыг (uint8_t) дамжуулж тэмдэгтийг матриц дээр хэвлэнэ.

8 битийн мөрийг аравтын бутархай болгон хөрвүүлэх:

int val (String str) {int v = 0; for (int i = 0; i <8; i ++) {if (str == '1') {v = v+power (2, (7-i)); }} буцах v; }

Power функцийг ашиглан аравтын эквивалентийг үнэлэхийн тулд та хоёр төрлийн утгыг авч үзэх хэрэгтэй бөгөөд ингэснээр бид өөрсдийн хүчний функцийг дараах байдлаар бичиж болно.

int хүч (int base, int exponent) {int c = 1; for (int i = 0; i {c = c*base;} буцах c;}

Одоо эцэст нь бид 8 аравтын утгыг (мөр бүрт нэг нэг) үүсгэсэн массив ашиглан тэмдэгтийг хэвлэх кодыг бичих болно.

хүчингүй print_emoji (uint8_t emoji , String өнгө) {matrix.clear (); хэрэв (өнгө == "улаан") {matrix.drawBitmap (0, 0, эможи, 8, 8, LED_RED); } өөр {matrix.drawBitmap (0, 0, эможи, 8, 8, LED_GREEN); } matrix.writeDisplay (); саатал (500); }

Бид эхлээд матрицыг цэвэрлэж, дараа нь matrix.drawBitmap () функцийг ашиглан emoji массив ашиглан тэмдэгтийг харуулах үед та энэ кодыг амархан ойлгох болно. Бүх форматын дараа "matrix.writeDisplay ()" гэж бичихээ бүү мартаарай, учир нь энэ функц нь матриц дээр одоог хүртэл хийгдсэн бүх форматыг харуулах болно.

Одоо та бүх кодын утгыг агуулсан мөрийг илгээх боломжтой бөгөөд Arduino нь матриц дээрх тэмдэгтийг хэвлэх болно. Та Arduino кодыг доороос татаж авах боломжтой. Туршилтын зорилгоор та бичиж болно

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

Цуваа монитор дээрх энэ мөрийг матриц дээрх тэмдэгтээс харж болно.

Одоо бид "Хэвлэх" товчийг дарахад програм хангамжаас цуваа өгөгдлийг автоматаар илгээх шаардлагатай байна. Үүнийг автоматжуулахын тулд бид 8х8 хэмжээтэй матриц хийх бөгөөд хэрэглэгчдэд аль нүдийг өнгөөр будахыг сонгох боломжийг олгох бөгөөд програм хангамж нь кодыг автоматаар үүсгэж өгөгдлийг цуваа хэлбэрээр Arduino руу цуваагаар илгээх болно. Би үлдсэн ажлынхаа туршид Processing -ийг сонгосон. Боловсруулах явцад бид 64 товчлуур (дарагдсан функцтэй тэгш өнцөгтүүд) ашиглан матриц хийж, эхэнд нь тодорхой утга, өнгө өгч болно (0 гэсэн утгатай цагаан өнгө байг). Одоо товчлуур дарагдах бүрт бид товчлуурын өнгийг хар болгож 1 болгоно. Хэрэв хэрэглэгч ижил товчлуурыг дахин дарвал түүний утга дахин 0 болж, өнгө нь цагаан болж өөрчлөгдөнө. Энэ нь хэрэглэгчид кодыг дахин дахин хялбархан өөрчлөхөд туслах бөгөөд матрицыг бүхэлд нь устгахгүйгээр нэмэлт өөрчлөлт оруулах боломжтой болно. "Хэвлэх" товчлуур дээр дарахад бид демо дээр үзүүлсэнтэй төстэй мөрийг хийх болно. Дараа нь мөрийг тухайн цуваа порт руу илгээх болно.

Та боловсруулах кодыг доороос татаж авах боломжтой. Энэ бол миний боловсруулж буй анхны код юм. Сайжруулсан кодчиллын аргын талаархи саналыг өндөр үнэлдэг.

Та GUI -ийн дүр төрх, системийг ашиглан дүр хэрхэн бүтээгдсэнийг харж болно. Матриц дээр ижил дүр бүтээхэд хэдэн секунд шаардагдахгүй.

Та энэ төслийн код, зургийг миний GitHub репозитороос татаж авах боломжтой.

Зөвлөмж болгож буй: