İçindekiler:

Tek 8x8 Led Matris Kullanan İki Rakamlı Ekran: 3 Adım
Tek 8x8 Led Matris Kullanan İki Rakamlı Ekran: 3 Adım

Video: Tek 8x8 Led Matris Kullanan İki Rakamlı Ekran: 3 Adım

Video: Tek 8x8 Led Matris Kullanan İki Rakamlı Ekran: 3 Adım
Video: Arduino 8x8 Dotmatrix - Dotmatris Kullanımı - Led Tabela - 59 - 2024, Kasım
Anonim
Tek 8x8 Led Matris Kullanan İki Rakamlı Ekran
Tek 8x8 Led Matris Kullanan İki Rakamlı Ekran

Burada odam için bir sıcaklık ve nem göstergesi oluşturmak istiyorum. İki basamaklı sayıları görüntülemek için tekli 8x8 LED Matrix kullandım ve projenin bu kısmının daha kullanışlı hale geldiğini düşünüyorum. Ahşap gibi boyanmış bir karton kutu kullanarak nihai yapıyı kutuladım.

Gereçler

  1. Arduino Nano x1
  2. DHT11 Sıcaklık ve Nem Sensörü x1
  3. MAX7219 x1 ile 8x8 LED matris
  4. 10K direnç x1
  5. Başlık telleri
  6. 5V güç kaynağı x1
  7. Karton kutu (4x8x13 cm)

Adım 1: Şematik

Şematik
Şematik

DHT11 dijital sıcaklık ve nem sensörü, 0 - 50°C arasında sıcaklık ve %20 ile %90 arasında nem sağlar. Sıcaklık doğruluğu ±2°C (maksimum) ve nem doğruluğu ±%5'tir.

DHT11 ayrıca çiy noktası değerleri sağlar. Çiy noktası, havanın su buharına doyması için soğutulması gereken sıcaklıktır. Daha fazla soğutulduğunda, havadaki su buharı sıvı su oluşturmak üzere yoğunlaşacaktır.

Adım 2: Kablolama ve Kutulama

Kablolama ve Boks
Kablolama ve Boks
Kablolama ve Boks
Kablolama ve Boks
Kablolama ve Boks
Kablolama ve Boks
Kablolama ve Boks
Kablolama ve Boks

Önce karton kutuyu akrilik boya ile boyadım ve 1 gün kuruduktan sonra saç spreyi ile bitirdim. Ön kapakta LED ekran için kare bir pencere yaptım. Ayrıca Arduino Nano güç kaynağı için küçük bir dikdörtgen delik açtım ve DHT11 sensörünün yanına birkaç delik açtım.

Arduino'yu küçük kutu ve sıcak silikon kullanarak ana kutunun köşesine sabitledim.

LED matrisini şeffaf bant şeritleri kullanarak pencereye yerleştirdim. Burada kodu saat yönünün tersine 90° döndürmek önemlidir, çünkü kod üstteki 4 satırı onlarca basamak ve alttaki 4 satırı birim basamaklar için kullanır. Kullandığım modül için MAX7219 olan taraf taban tarafında olmalıdır.

Arduino'yu ve sensörü kutunun kapalı tarafına yerleştirdiğim için tam olarak kapatamadım mı? Diğer tarafı seçsen iyi olur:).

3. Adım: Kodlayın

kod
kod
kod
kod
kod
kod

Henüz yapmadıysanız, önce DHT11 (https://github.com/adidax/dht11) ve LED matrix (https://github.com/wayoda/LedControl) için kitaplığı yükleyin.

Kod, LED matrisinin ilk 4 sırasını onlarca ve son 4 sırasını birim olarak kullanır. Örneğin, "bir" kodunu kontrol ederseniz, "11"i saat yönünde 90° döndürülmüş olarak görürsünüz. Bu kodları değiştirmek istiyorsanız lütfen bu ayrıntıya dikkat edin.

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

Sensör okumasından rakamları almak için kodlar şunlardır:

birim = nemli % 10; onlar = (nemli/10) %10;

Onlarca basamak için for döngüsü aşağıdaki gibi çalışır:

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

Birimler basamağı için for döngüsü aşağıdaki gibi çalışır:

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

Görüntüleme sırası aşağıdaki gibi döngüdedir:

"°C" -> sıcaklık -> "hum" -> nem -> "dp" -> çiy noktası -> çiy noktasının anlamı (aşağıda açıklanmıştır)

İnsanların havayı çiy noktasına göre nasıl hissettikleri hakkında bazı bilgilerim var ve bu bilgiyi aşağıdaki gibi kodun içine koydum:

dp < 10: kuru

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

14 < dp < 18: Sweltry (sw)

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

dp > 23: ıslak

Bu kelimenin gösterimi iyi değil ama yine de tek bir 8x8 ekran için anlaşılabilir

Önerilen: