Mundarija:
2025 Muallif: John Day | [email protected]. Oxirgi o'zgartirilgan: 2025-01-13 06:58
MAX7219-bu 7 segmentli LEDlarni (8 ta raqamgacha), blokli displeylarni (satrli displeylar) va katodli 64 ta alohida LEDni boshqarish uchun ishlatiladigan IC. MAX7219 mikrokontroller bilan aloqa qilish uchun SPI aloqa tizimidan foydalanadi. Shunday qilib, 64 ta LEDni boshqarish uchun faqat 3 ta mikrokontrolder kerak.
Ushbu maqolada men sizga haydovchi sifatida IC MAX7219 dan foydalanadigan 7-segmentli moduldan qanday foydalanishni ko'rsataman.
Kerakli komponentlar:
- MAX7219 7-segmentli modul
- Arduino Nano
- simli o'tish kabeli
- USB mini
Kerakli kutubxona:
LedControl
Ushbu qo'llanmada men Arduino Nano kartasidan foydalanaman. Agar siz uni hech qachon ishlatmagan bo'lsangiz. Men "Arduino Nano -dan qanday foydalanish" haqidagi oldingi maqolamni o'qishni taklif qilaman.
1 -qadam: Barcha komponentlarni yig'ing
Arduino kartasini 7-segmentli modulga ulang. Men yozgan rasm yoki ko'rsatmaga qarang:
Arduino 7-segmentga
+5V => VCC
GND => GND
D12 => Din
D11 => CLK
D10 => CS/LOAD
2 -qadam: Kutubxona qo'shing
O'chirish tugagandan so'ng. "LedControl" kutubxonasini Arduino IDE -ga qo'shing.
Arduino -ga kutubxona qo'shish uchun uni "Men Arduino -ga tashqi kutubxonani qanday qo'shish kerak" maqolasida o'qishingiz mumkin.
3 -qadam: qo'shimcha funktsiyalar
LedControl kutubxonasini qo'shgandan so'ng. 7-Segment modulini boshqarish uchun qo'shimcha funktsiyalardan foydalanishingiz mumkin.
Dalil
addr - displey manzili
raqam - raqamning displeydagi o'rni (0..7) qiymati - ko'rsatiladigan qiymat. (0x00..0x0F)
dp kasr nuqtasini o'rnatadi.
Funktsiya
setChar (addr, raqam, value.dp); // 7-bitli ASCII kodlash uchun char turi qiymatini ko'rsatish uchun
setDigit (addr, raqam, qiymat, bolean dp); // raqamlar va belgilarni bitta setRow funktsiyasida ko'rsatish uchun (addr, raqam, qiymat, boolean dp); // ob'ektni kerakli raqamda ko'rsatish uchun
Qo'shimcha ma'lumot olish uchun bu yerni o'qing.
4 -qadam: Eskizni yuklash
Men ushbu 7 segmentli modulning sinovini chizdim. Siz quyidagi kodni nusxalashingiz, so'ngra eskizingizga joylashtirishingiz mumkin.
// Biz har doim kutubxonani o'z ichiga olishimiz kerak
#"LedControl.h" ni qo'shing
/*
Endi biz bilan ishlash uchun LedControl kerak. ***** Bu pin raqamlari, ehtimol, sizning apparatingiz bilan ishlamaydi *****
pin 12 DataIn -ga ulangan
pin 11 CLK ga ulangan
pin 10 LOAD ga ulangan
Bizda faqat bitta MAX72XX bor.
*/
LedControl lc = LedControl (12, 11, 10, 1);
/ * biz har doim displey yangilanishlari o'rtasida biroz kutamiz */
imzosiz uzoq kechikish = 500;
bo'sh o'rnatish () {
/ * MAX72XX ishga tushganda quvvatni tejash rejimida, biz uyg'onish qo'ng'irog'ini qilishimiz kerak */
lc.shutdown (0, noto'g'ri);
/ * Yorqinlikni o'rta qiymatlarga qo'ying */
lc.setIntensity (0, 8);
/ * va displeyni tozalash */
lc.clearDisplay (0);}
void salom () {
lc.setChar (0, 7, 'H', noto'g'ri);
lc.setChar (0, 6, 'E', noto'g'ri);
lc.setChar (0, 5, 'L', noto'g'ri);
lc.setChar (0, 4, 'L', noto'g'ri);
lc.setChar (0, 3, '0', noto'g'ri);
lc.setChar (0, 2, '.', noto'g'ri);
lc.setChar (0, 1, '.', noto'g'ri);
lc.setChar (0, 0, '.', noto'g'ri);
kechikish (kechikish vaqti+1000);
lc.clearDisplay (0);
kechikish (kechikish);
lc.setDigit (0, 7, 1, noto'g'ri);
kechikish (kechikish);
lc.setDigit (0, 6, 2, noto'g'ri);
kechikish (kechikish);
lc.setDigit (0, 5, 3, noto'g'ri);
kechikish (kechikish);
lc.setDigit (0, 4, 4, noto'g'ri);
kechikish (kechikish);
lc.setDigit (0, 3, 5, noto'g'ri);
kechikish (kechikish);
lc.setDigit (0, 2, 6, noto'g'ri);
kechikish (kechikish);
lc.setDigit (0, 1, 7, noto'g'ri);
kechikish (kechikish);
lc.setDigit (0, 0, 8, noto'g'ri);
kechikish (1500);
lc.clearDisplay (0);
kechikish (kechikish);
}
void loop () {salom ();
}
Yoki quyidagi faylni yuklab oling:
5 -qadam: Natija
Natijadan xursand bo'ling.
Agar savollar bo'lsa, ularni sharhlar ustuniga yozing.
Keyingi maqolada ko'rishguncha.