Mündəricat:

Tək 8x8 Led Matrix istifadə edərək iki rəqəmli ekran: 3 addım
Tək 8x8 Led Matrix istifadə edərək iki rəqəmli ekran: 3 addım

Video: Tək 8x8 Led Matrix istifadə edərək iki rəqəmli ekran: 3 addım

Video: Tək 8x8 Led Matrix istifadə edərək iki rəqəmli ekran: 3 addım
Video: How to use LED seven segment display and calculate its resistors value 2024, Noyabr
Anonim
Tək 8x8 Led Matrix istifadə edərək iki rəqəmli ekran
Tək 8x8 Led Matrix istifadə edərək iki rəqəmli ekran

Burada otağım üçün bir temperatur və rütubət göstəricisi qurmaq istərdim. İki rəqəmli ədədləri göstərmək üçün tək 8x8 LED Matrix istifadə etdim və düşünürəm ki, layihənin bir hissəsi daha faydalı oldu. Ağac kimi boyanmış bir karton qutudan istifadə edərək hazırladığım finalı qutuya atdım.

Təchizat

  1. Arduino Nano x1
  2. DHT11 Temperatur və Nəmlik Sensoru x1
  3. MAX7219 x1 ilə 8x8 LED matris
  4. 10K müqavimət x1
  5. Başlıq telləri
  6. 5V enerji təchizatı x1
  7. Karton qutu (4x8x13 sm)

Addım 1: sxematik

Sxematik
Sxematik

DHT11 rəqəmsal temperatur və rütubət sensoru 0 - 50 ° C və 20% - 90% arasında rütubət verir. İstilik dəqiqliyi ± 2 ° C (maksimum) və rütubət dəqiqliyi ± 5%-dir.

DHT11 də şeh nöqtəsi dəyərləri təmin edir. Çiy nöqtəsi, suyun buxarla doyması üçün havanın soyudulması lazım olan temperaturdur. Daha çox soyudulduqda havadakı su buxarı kondensasiya olunaraq maye su əmələ gətirir.

Addım 2: Kablolama və Boks

Kablolama və Boks
Kablolama və Boks
Kablolama və Boks
Kablolama və Boks
Kablolama və Boks
Kablolama və Boks
Kabel və Boks
Kabel və Boks

Əvvəlcə karton qutunu akril boya ilə boyadım və 1 gün qurudandan sonra saç spreyi ilə bitirdim. Ön qapaqda LED displey üçün kvadrat bir pəncərə düzəltdim. Arduino Nano enerji təchizatı üçün kiçik bir düzbucaqlı bir çuxur açdım və DHT11 sensorunun yanına bir neçə deşik qoydum.

Kiçik qutu və isti silikondan istifadə edərək Arduino -nu əsas qutunun küncünə düzəltdim.

LED matrisini şəffaf lent şeritlərindən istifadə edərək pəncərəyə qoydum. Burada onu 90 ° saat əqrəbinin əksinə fırlatmaqla yerləşdirmək vacibdir, çünki kod on rəqəm üçün yuxarı 4 sətirdən və vahid rəqəmlər üçün aşağı 4 sətirdən istifadə edəcək. İstifadə etdiyim modul üçün MAX7219 olan tərəfi əsas tərəfdə olmalıdır.

Arduino və sensoru qutunun bağlanan tərəfinə qoyduğum üçün tam bağlaya bilmədim? Qarşı tərəfi seçsən yaxşı olar:).

Addım 3: Kod

Kod
Kod
Kod
Kod
Kod
Kod

Əvvəlcə kitabxananı DHT11 (https://github.com/adidax/dht11) və LED matrisi (https://github.com/wayoda/LedControl) üçün yükləməyin.

Kod, LED matrisinin ilk 4 satırını onlarla, son 4 sətri isə vahid olaraq istifadə edir. Məsələn, "bir" kodunu yoxlasanız saat yönünde 90 ° döndüyündə "11" görürsünüz. Bu kodları dəyişdirmək istəyirsinizsə, bu detala diqqət yetirin.

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

Sensorun oxumasından rəqəmləri əldə etmək üçün kodlar:

vahidlər = nəm % 10; onlar = (nəmli /10) % 10;

Onlu rəqəmlər üçün for loop aşağıdakı kimi işləyir:

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

Vahid rəqəmləri üçün for loop aşağıdakı kimi işləyir:

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

Göstərmə qaydası aşağıdakı kimi döngədədir:

"° C" -> temperatur -> "hum" -> rütubət -> "dp" -> şeh nöqtəsi -> şeh nöqtəsinin mənası (aşağıda izah olunur)

Çiy nöqtəsinə görə insanların havanı necə hiss etdiyinə dair bəzi məlumatlarım var və bu məlumatı koda aşağıdakı kimi daxil et:

dp <10: quru

9 <dp <15: yaxşı (g..d)

14 <dp <18: Yumru (sw)

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

dp> 23: yaş

Bu sözlərin ekranı yaxşı olmasa da, tək bir 8x8 ekran üçün başa düşüləndir

Tövsiyə: