Mundarija:

Arduino va TM1638 LED displey modullari: 11 qadam
Arduino va TM1638 LED displey modullari: 11 qadam

Video: Arduino va TM1638 LED displey modullari: 11 qadam

Video: Arduino va TM1638 LED displey modullari: 11 qadam
Video: Модуль клавиатуры и индикации на TM1638 2024, Iyul
Anonim
Arduino va TM1638 LED displey modullari
Arduino va TM1638 LED displey modullari

Agar sizga loyihaga foydalanuvchi kiritish va chiqishini qo'shishning tez va oson usuli kerak bo'lsa, bu displey modullari qiziqarli va qiziqarli.

Ularda sakkizta 7 segmentli qizil LEDli raqamlar, sakkizta qizil/yashil LED va foydalanuvchi kiritish uchun sakkiz tugma mavjud. Jihozlar ham romashka bilan bog'lanishi mumkin, bu bir vaqtning o'zida beshtagacha ruxsat beradi va har bir modulga qisqa simi, shuningdek, rasmda ko'rsatilgandek, ba'zi qisqa tutqichlar va murvat kiradi.

1 -qadam:

Rasm
Rasm

Bo'shliqlar PCBni sirtdan ko'tarish uchun etarlicha uzun, lekin taxtalarni kerakli joyga o'rnatish uchun sizga uzunroq taxtalar kerak bo'ladi. Agar siz modulni panel yuzasiga yaqin o'rnatmoqchi bo'lsangiz, IDC rozetkalarini olib tashlashingiz mumkin. Bu oddiy teshiklarni ajratish vazifasi bo'lardi, chunki ular teshikli rozetkalardir.

2 -qadam:

Rasm
Rasm

Kengash TM1638 IC tomonidan boshqariladi.

Bu "Titan Micro Electronics" ning LED va interfeysi drayveri IC. Siz shuningdek ushbu IClarni PMD Way -dan sotib olishingiz mumkin. Qo'shimcha ma'lumot olish uchun ma'lumotlar jadvalini yuklab olishingiz mumkin.

3 -qadam: Ishni boshlash - Uskuna

Ishga kirishish - Uskuna
Ishga kirishish - Uskuna

Uskuna-Arduino-ga mos keladigan kartaga (yoki boshqa MCU) ulanish juda oddiy. Tugmalar PCB orqasida ko'rsatilgan va tasma kabeliga mos keladi. Agar siz kabelning oxiriga qarasangiz.

O'ng yuqori teshik bir pinli, yuqori chap ikki pinli, pastki o'ng pim to'qqiz va pastki chap pim o'n. Shunday qilib, chiziqlar quyidagilar:

  1. VC (5V)
  2. GND
  3. CLK
  4. DIO
  5. STB1
  6. STB2
  7. STB3
  8. STB4
  9. STB5
  10. ulanmagan.

Arduino -dan foydalanish uchun 1 ~ 4 -gachasi pinlar bitta moduldan foydalanish uchun minimaldir. Har bir qo'shimcha modulga STB2, STB3 va boshqalarga ulangan boshqa raqamli pin kerak bo'ladi. E'tibor bering, har bir LED yonib turganda, har bir modul 127mA quvvat sarflaydi, shuning uchun bir nechta modulli tashqi quvvatni va Arduino platalari bilan boshqa ulanishlarni ishlatish oqilona bo'ladi.

4 -qadam: Ishni boshlash - dasturiy ta'minot

Dasturiy ta'minot - T1638 kutubxonasini shu erdan yuklab oling va o'rnating. Kutubxona uchun gmail dot com da rjbatista uchun rahmat va rahmat. Eskizda modullarni ishga tushirish juda oddiy. Kutubxonaga quyidagilarni qo'shing:

#qo'shing

keyin har bir modul uchun quyidagilardan birini ishlating:

TM1638 moduli (x, y, z);

x - Arduino raqamli pimi 4 -modul kabeliga ulangan, y - Arduino raqamli pimi 3 -modulli simi piniga ulangan va z - strobli pin. Agar sizda 8, 7 va 6 -pinlarga ulangan ma'lumotlar, soat va strobli bitta modul bo'lsa:

TM1638 moduli (8, 7, 6);

Agar sizda ikkita modul bo'lsa, Arduino raqamli 6 ga ulangan birinchi modul va raqamli 5 ga ulangan ikkinchi modulning strobasi bo'lsa, siz quyidagilarni ishlatardingiz:

TM1638 moduli (8, 7, 6); TM1638 moduli (8, 7, 5);

va boshqalar ko'proq modullar uchun. Endi displeyni boshqarish uchun …

5-qadam: Ikki rangli LEDlar

Ikki rangli LEDlar
Ikki rangli LEDlar

Qizil/yashil LEDlarni boshqarish oson. Malumot uchun ular chapdan o'ngga noldan ettigacha raqamlangan. Bitta LEDni yoqish yoki o'chirish uchun quyidagilarni ishlating:

module.setLED (TM1638_COLOR_RED, x); // LED raqamini x ni redmodule.setLED ga o'rnating (TM1638_COLOR_GREEN, x); // LED raqamini x yashil modulga o'rnating.setLED (TM1638_COLOR_RED+TM1638_COLOR_GREEN, 0); // LED raqamini qizil va yashil rangga o'rnating

Yuqoridagi usuldan foydalanish oddiy bo'lishi mumkin, lekin bu biroz samarasiz. Eng yaxshi usul - barcha LEDlarni bitta bayonotda ko'rib chiqish. Buning uchun biz displeyga o'n oltilikda ikki bayt ma'lumotlarni yuboramiz. MSB (eng muhim bayt) sakkiz bitdan iborat bo'lib, ularning har biri bitta yashil LEDni yoqadi (1) yoki o'chiriladi (0). LSB (eng kam bayt) qizil LEDlarni ifodalaydi.

LEDlarni boshqarish uchun o'n oltilik qiymatni aniqlashning oson yo'li oddiy, sizda bir qator LEDlar bor - birinchi sakkiztasi yashil, ikkinchisi qizil. Har bir raqamni yoqish uchun 1, o'chirish uchun 0 ga o'rnating. Ikkita ikkilik sonni o'n oltilikka aylantiring va bu funktsiyadan foydalaning:

module.setLEDs (0xgreenred);

Yashil LEDlar uchun o'n oltilik raqam qizil, qizil LEDlar uchun o'n oltilik raqam. Masalan, birinchi uchta LEDni qizil, oxirgi uchtasini yashil qilib yoqish uchun ikkilik tasvir quyidagicha bo'ladi:

00000111 11100000, o'n oltilikda E007.

Shunday qilib, biz quyidagilarni ishlatardik:

module.setLEDs (0xE007);

bu tasvirni yuqorida ko'rsatilgan tarzda ishlab chiqaradi.

6-qadam: 7 segmentli displey

Raqamli displeyni tozalash uchun (lekin quyidagi LEDlar emas):

modul.clearDisplay ();

yoki har bir segmentni va barcha LEDlarni yoqish uchun quyidagilarni ishlating

module.setupDisplay (haqiqiy, 7); // bu erda 7 - intensivlik (0 ~ 7 gacha)

O'nli raqamlarni ko'rsatish uchun quyidagi funktsiyadan foydalaning:

module.setDisplayToDecNumber (a, b, noto'g'ri);

bu erda a - butun son, b - kasr nuqtasi uchun pozitsiya (hech kim uchun 0, 8 -raqam uchun 1, 8 -raqam uchun 2, 7 -raqam uchun 4, 6 -raqam uchun 4, 4 -raqam uchun 8 va boshqalar) va oxirgi parametr (rost/ noto'g'ri) etakchi nollarni yoqadi yoki o'chiradi. Quyidagi eskiz bu funksiyadan foydalanishni ko'rsatadi:

#include // ma'lumotlar pin 8, soat pin 9 va strobe pin 7 TM1638 moduli (8, 9, 7) bo'yicha modulni aniqlang; belgisiz uzun a = 1; void setup () {} void loop () {for (a = 10000; a <11000; a ++) {module.setDisplayToDecNumber (a, 4, false); kechikish (1); } uchun (a = 10000; a <11000; a ++) {module.setDisplayToDecNumber (a, 0, rost); kechikish (1); }}

… videoda ko'rsatilgan natijalar bilan.

7 -qadam:

Image
Image

Eng qiziqarli xususiyatlardan biri - matnni bir yoki bir nechta displeyda aylantirish. Buni amalga oshirish uchun tushuntirishga ehtiyoj yo'q, chunki u taqdimot eskiziga kiritilgan:

tm_1638_scrolling_modules_example.pde

TM1638 kutubxonasi bilan birga kelganlarga osonlikcha amal qilinadi. Faqat matnni const char string ga kiriting, eskiz boshida modullar modul ta'rifiga muvofiq ulanganligiga ishonch hosil qiling. Mavjud belgilarni ko'rish uchun funksiya sahifasiga tashrif buyuring. E'tibor bering, displey faqat etti segmentdan iborat, shuning uchun ba'zi belgilar mukammal ko'rinmasligi mumkin, lekin kontekstda sizga yaxshi fikr beradi-bu qadamdagi videoni ko'ring.

8 -qadam:

Va nihoyat, siz har bir raqamning har bir segmentiga alohida murojaat qilishingiz mumkin. Ushbu qator tarkibini ko'rib chiqing:

bayt qiymatlari = {1, 2, 4, 8, 16, 32, 64, 128};

har bir element 1 ~ 8 raqamlarini bildiradi. Har bir elementning qiymati raqamning qaysi segmenti yoqilishini aniqlaydi. A ~ f, dp segmentlari uchun qiymatlar 1, 2, 4, 6, 16, 32, 64, 128. Shunday qilib, yuqoridagi qatorni quyidagi funksiyada ishlatish natijalari:

module.setDisplay (qiymatlar);

tasvirga muvofiq bo'ladi.

9 -qadam:

Rasm
Rasm

Tabiiyki, siz o'z belgilaringizni, belgilaringizni va boshqalarni yaratish uchun har bir raqam uchun qiymatlarni birlashtira olasiz. Masalan, quyidagi qiymatlardan foydalanish:

bayt qiymatlari = {99, 99, 99, 99, 99, 99, 99, 99};

biz bu qadamda tasvirga muvofiq yaratdik.

10 -qadam: tugmalar

Tugmalar qiymatlari funksiyadan bayt qiymati sifatida qaytariladi:

modul.getButtons ();

Sakkiz tugma bo'lgani uchun, ularning har biri bayt sifatida qaytariladigan ikkilik sonning bir bitini ifodalaydi. Chapdagi tugma o'nli kasrni, o'ngda 128ni qaytaradi. U bir vaqtning o'zida bosishni qaytarishi mumkin, shuning uchun bir va sakkiz tugmachalarni bosish 129 ni qaytaradi. Quyidagi eskizni ko'rib chiqing. qiymati:

#include // ma'lumotlar pin 8, soat pin 9 va strobe pin 7 TM1638 moduli (8, 9, 7) bo'yicha modulni aniqlang; bayt tugmalari; void setup () {} void loop () {button = module.getButtons (); module.setDisplayToDecNumber (tugmalar, 0, noto'g'ri); }

va natijalar videoda.

Ushbu displeylar foydali va umid qilamanki, sizning loyihalaringizda uy topadi. Bu xabar sizga pmdway.com tomonidan olib kelingan - ishlab chiqaruvchilar va elektronika ixlosmandlari uchun hamma narsani taklif qilib, butun dunyo bo'ylab bepul etkazib berish.

Tavsiya: