Mundarija:

Yagona 8x8 LED matritsasi yordamida ikki xonali displey: 3 qadam
Yagona 8x8 LED matritsasi yordamida ikki xonali displey: 3 qadam

Video: Yagona 8x8 LED matritsasi yordamida ikki xonali displey: 3 qadam

Video: Yagona 8x8 LED matritsasi yordamida ikki xonali displey: 3 qadam
Video: Подключаем светодиодные матрицы к Arduino Mega и Raspberry Pi. Железки Амперки 2024, Iyul
Anonim
Yagona 8x8 LED matritsasi yordamida ikki xonali displey
Yagona 8x8 LED matritsasi yordamida ikki xonali displey

Bu erda men xonam uchun harorat va namlik ko'rsatkichini qurmoqchiman. Men ikkita raqamli raqamlarni ko'rsatish uchun bitta 8x8 LED matritsasidan foydalandim va menimcha, loyihaning bir qismi yanada foydali bo'ldi. Men yog'och kabi bo'yalgan karton quti yordamida qurilgan finalni boks qildim.

Ta'minotlar

  1. Arduino Nano x1
  2. DHT11 harorat va namlik sensori x1
  3. MAX7219 x1 o'lchamli 8x8 LED matritsa
  4. 10K qarshilik x1
  5. Sarlavha simlari
  6. 5V quvvat manbai x1
  7. Karton quti (4x8x13 sm)

1 -qadam: sxematik

Sxematik
Sxematik

DHT11 raqamli harorat va namlik sensori haroratni 0 dan 50 ° C gacha va namlikni 20% dan 90% gacha etkazib beradi. Harorat aniqligi ± 2 ° C (maksimal) va namlik aniqligi ± 5%.

DHT11 shuningdek, shudring nuqtasi qiymatlarini beradi. Shudring nuqtasi - bug 'bilan to'yingan bo'lish uchun havoni sovutish kerak bo'lgan harorat. Yana soviganida, havodagi suv bug'lari kondensatsiyalanib, suyuq suv hosil qiladi.

2 -qadam: simlar va boks

Bolalar va boks
Bolalar va boks
Bolalar va boks
Bolalar va boks
Bolalar va boks
Bolalar va boks
Bolalar va boks
Bolalar va boks

Avval karton qutini akril bo'yoq yordamida bo'yadim va 1 kun quritgandan keyin sochlar uchun lak bilan tugatdim. Men old panelda LED displey uchun kvadrat oynani yasadim. Bundan tashqari, men Arduino Nano quvvat manbai uchun kichik to'rtburchaklar teshik ochdim va DHT11 sensori yoniga bir nechta teshik qo'ydim.

Men kichik quti va issiq kremniy yordamida Arduino -ni asosiy qutining burchagiga o'rnatdim.

Men LED matritsani shaffof lenta chiziqlari yordamida oynaga joylashtirdim. Bu erda uni soat sohasi farqli o'laroq 90 ° burish bilan joylashtirish juda muhim, chunki kod o'nlik raqamlar uchun yuqori 4 qatordan va birlik raqamlari uchun pastki 4 qatordan foydalanadi. Men ishlatgan modul uchun MAX7219 yon tomoni asosiy tomonda bo'lishi kerak.

Men Arduino va sensorni qutining yopiladigan tomoniga qo'yganim uchun uni to'liq yopolmadim. Boshqa tomonni tanlaganingiz ma'qul:).

3 -qadam: kod

Kod
Kod
Kod
Kod
Kod
Kod

Avval kutubxonani DHT11 (https://github.com/adidax/dht11) va LED matritsasi (https://github.com/wayoda/LedControl) uchun yuklamang.

Kod LED matritsasining birinchi 4 qatorini o'nlab, oxirgi 4 qatorini birlik sifatida ishlatadi. Masalan, agar siz "bitta" kodini tekshirsangiz, soat yo'nalishi bo'yicha 90 ° burilgan "11" ni ko'rasiz. Agar siz ushbu kodlarni o'zgartirmoqchi bo'lsangiz, bu tafsilotlarga e'tibor bering.

bayt bir = {B00000000, B01000100, B01111100, B01000000, B00000000, B01000100, B01111100, B01000000};

Sensor o'qishidagi raqamlarni olish uchun kodlar:

birliklar = nam % 10; o'nlab = (nam /10) % 10;

O'nlik raqamlar uchun for loopi quyidagicha ishlaydi:

if (tens == 1) {for (int c = 0; c <4; c ++) {lc.setRow (0, c, one [c]); }

Birlik raqamlari uchun for loopi quyidagicha ishlaydi:

if (birliklar == 1) {uchun (int c = 4; c <8; c ++) {lc.setRow (0, c, one [c]); }

Ko'rsatish tartibi quyidagicha:

"° C" -> harorat -> "xum" -> namlik -> "dp" -> shudring nuqtasi -> shudring nuqtasining ma'nosi (quyida tushuntiriladi)

Men shudring nuqtasiga ko'ra, odamlar ob -havoni qanday his qilishlari haqida ba'zi ma'lumotlarga egaman va ularni kodga quyidagicha kiritaman:

dp <10: quruq

9 <dp <15: yaxshi (g..d)

14 <dp <18: Yalang'och (sw)

17 <dp <24: Sweltry plus (sw +)

dp> 23: nam

Bu so'zlar uchun displey yaxshi emas, lekin bitta 8x8 displey uchun hali ham tushunarli

Tavsiya: