Агуулгын хүснэгт:
Видео: Гаалийн тэмдэгт үүсгэгч (Adafruit HT16k33 матриц): 3 алхам
2024 Зохиолч: John Day | [email protected]. Хамгийн сүүлд өөрчлөгдсөн: 2024-01-30 11:05
Тусгай тэмдэгтүүдийг 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 матрицын үндсэн төсөл юм. Чамд хэрэгтэй:
- Adafruit HT16k33 1.2 "x 1.2" 8x8 хэмжээтэй хоёр өнгийн LED матриц.
- Arduino (Uno -аас өөр ямар ч хувилбарыг илүүд үздэг).
- Талхны самбар
- Цахилгаан хангамж
Алхам 2: Схем
Adafruit HT16k33 Led матрицыг холбох нь маш хялбар байдаг, учир нь I2C төхөөрөмжид ихэвчлэн хийдэг шиг цаг, өгөгдлийн зүүг холбох шаардлагатай байдаг. Холболтууд дараах байдлаар байх болно.
- SCL (Матрицын цагны зүү) A5 -тай холбогдсон
- SDA (Матрицын өгөгдлийн зүү) A4 -т холбогдсон. (Arduino -ийн бусад хувилбаруудын мэдээллийн хуудсыг үзнэ үү)
- VCC 5V -д холбогдсон.
- GND нь 0V -д холбогдсон.
Та мөн зураг дээр үзүүлсэн схемтэй танилцаж болно.
Алхам 3: Код
Arduino код
Нэгдүгээрт, бид шаардлагатай бүх номын санг оруулах болно.
- Wire.h:- I2C холбооны хувьд
- Adafruit_LedBackpack
- 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 репозитороос татаж авах боломжтой.
Зөвлөмж болгож буй:
DIY интернэтээр хянагддаг ухаалаг LED матриц (ADAFRUIT + ESP8266 + WS2812): 8 алхам (зурагтай)
DIY ИНТЕРНЭТ ХЯНАЛТТАЙ УХААЛАГ LED MATRIX (ADAFRUIT + ESP8266 + WS2812): Танд үзүүлэх гэж байгаадаа маш их баяртай байгаа төслийн 2 дахь урьдчилгаа. Энэ бол DIY ухаалаг LED матрицын тухай бөгөөд үүнийг YouTube статистик, ухаалаг гэрийн статистик гэх мэт өгөгдөл, температур, чийгшил, энгийн цаг, эсвэл зүгээр л харуулах боломжтой болно
20x4 хэмжээтэй I2C тэмдэгт LCD дэлгэцийг Arduino -той хэрхэн ашиглах вэ: 6 алхам
Arduino -той 20x4 I2C тэмдэгт LCD дэлгэцийг хэрхэн ашиглах вэ: Энэхүү энгийн хичээлээр бид 20x4 I2C тэмдэгт LCD дэлгэцийг Arduino Uno ашиглан хэрхэн ашиглах талаар сурах болно
Layad хэлхээний үсэг, тоон гар нь ESP32 болон тэмдэгт LCD -тэй: 4 алхам
ESP32 ба Character LCD бүхий цагаан толгой тоон гар: Энэ нийтлэлд ESP32 руу өгөгдөл оруулахын тулд үсэг тоон гарны модуль, 16x2 I2C тэмдэгт LCD модулийг ашиглаж байгааг харуулав. Энэ аргыг ESP32-д Wi-Fi итгэмжлэл болон бусад мэдээллийг оруулах, авахад ашиглаж болно
LCD Invaders: 16x2 LCD тэмдэгт дэлгэц дээрх тоглоом шиг сансрын довтлогчид: 7 алхам
LCD Invaders: 16x2 хэмжээтэй LCD дүрсний дэлгэцэн дээрх сансрын довтлогчид шиг тоглоом: Домогт "Space Invaders" тоглоомыг танилцуулах шаардлагагүй. Энэхүү төслийн хамгийн сонирхолтой онцлог нь график гаралтанд текст дэлгэц ашиглах явдал юм. Энэ нь 8 захиалгат тэмдэгтүүдийг ашигласнаар хийгддэг бөгөөд та Arduino -г бүрэн татаж авах боломжтой
Adafruit Feather NRF52 гаалийн хяналт, кодлох шаардлагагүй: 8 алхам (зурагтай)
Adafruit Feather NRF52 гаалийн хяналт, кодлох шаардлагагүй: 2019 оны 4 -р сарын 23 -ны өдрийг шинэчлэх - Зөвхөн Arduino millis () ашиглан огноо/цагийн графикийг үзэхийн тулд Millis () ба PfodApp ашиглан Arduino Date/Time Plotting/Logging -ийг үзнэ үү Хамгийн сүүлийн үеийн үнэгүй pfodDesigner V3.0.3610+ үүсгэсэн Өгөгдөл, огноо, цагийг харьцуулахын тулд Arduino -ийн ноорог зургийг бөглөнө үү