Мазмуну:

Бирдиктүү 8x8 Led Matrix колдонулган эки орундуу дисплей: 3 кадам
Бирдиктүү 8x8 Led Matrix колдонулган эки орундуу дисплей: 3 кадам

Video: Бирдиктүү 8x8 Led Matrix колдонулган эки орундуу дисплей: 3 кадам

Video: Бирдиктүү 8x8 Led Matrix колдонулган эки орундуу дисплей: 3 кадам
Video: Using HT16K33 4 digit seven segment display with ESP32 2024, Июль
Anonim
Бирдиктүү 8x8 Led Matrix колдонулган эки орундуу дисплей
Бирдиктүү 8x8 Led Matrix колдонулган эки орундуу дисплей

Бул жерде мен бөлмөм үчүн температура жана нымдуулук индикаторун кургум келет. Мен эки орундуу сандарды көрсөтүү үчүн 8х8 светодиоддук LED Matrixти колдондум жана долбоордун бир бөлүгү пайдалуу болду деп ойлойм. Мен жыгачтай боёлгон картон кутунун жардамы менен курулган финалды кутучаладым.

Жабдуулар

  1. Arduino Nano x1
  2. DHT11 температура жана нымдуулук сенсор x1
  3. MAX7219 x1 менен 8x8 LED матрицасы
  4. 10K каршылыгы x1
  5. Баш зымдар
  6. 5V электр менен камсыздоо x1
  7. Картон кутуча (4х8х13 см)

1 -кадам: схемалык

Схемалык
Схемалык

DHT11 санарип температура жана нымдуулук сенсору 0 - 50 ° C жана нымдуулукту 20% дан 90% га чейин жеткирет. Температуранын тактыгы ± 2 ° C (максимум) жана нымдуулуктун тактыгы ± 5%.

DHT11 ошондой эле шүүдүрүм чекити баалуулуктарын камсыз кылат. Шүүдүрүм чекити - бул суу буусу менен каныккан абаны муздатуу керек болгон температура. Дагы муздаганда, абадагы суу буусу конденсацияланып, суюк сууну пайда кылат.

2 -кадам: Вирт жана бокс

Байланыш жана бокс
Байланыш жана бокс
Байланыш жана бокс
Байланыш жана бокс
Байланыш жана бокс
Байланыш жана бокс
Байланыш жана бокс
Байланыш жана бокс

Алгач картон кутуну акрил боёк менен боёп, 1 күн кургаткандан кийин лак менен бүтүрдүм. Мен алдыңкы мукабасында LED дисплей үчүн төрт бурчтуу терезе жасадым. Ошондой эле мен Arduino Nano электр булагы үчүн кичинекей тик бурчтуу тешикти ачтым жана DHT11 сенсорунун жанына бир нече тешикти койдум.

Мен кичинекей кутучаны жана ысык кремнийди колдонуу менен негизги кутунун бурчуна Arduino орноттум.

Мен LED матрицасын тунук лента тилкелерин колдонуп терезеге койдум. Бул жерде аны 90 ° сааттын жебесине каршы айландыруу менен жайгаштыруу маанилүү, анткени код жогорку цифраларды ондуктар үчүн, ал эми төмөнкү 4 катарды бирдиктүү цифралар үчүн колдонот. Мен колдонгон модуль үчүн MAX7219 менен каптал жагында болушу керек.

Мен Arduino менен сенсорду кутунун жабуучу жагына койгондуктан, аны толук жаба алган жокмун.? Башка жакты тандасаңыз жакшы болот:).

3 -кадам: Код

Code
Code
Code
Code
Code
Code

Алгач китепкананы DHT11 (https://github.com/adidax/dht11) жана LED матрицасы (https://github.com/wayoda/LedControl) үчүн жүктөңүз, эгер сизде жок болсо.

Код LED матрицасынын биринчи 4 катарын ондук катары жана акыркы 4 катарды бирдик катары колдонот. Мисалы, эгер сиз "бир" кодун текшерсеңиз, сааттын жебеси боюнча 90 ° бурулган "11" дегенди көрөсүз. Эгерде сиз бул коддорду өзгөрткүңүз келсе, бул деталга көңүл буруңуз.

байт бир = {B00000000, B01000100, B01111100, B01000000, B00000000, B01000100, B01111100, B01000000};

Сенсордун окуусунан сандарды алуу үчүн коддор:

бирдиктер = нымдуу % 10; ондогон = (нымдуу /10) % 10;

Ондогон цифралар үчүн for циклы төмөнкүдөй иштейт:

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

Бирдиктердин цифрасы үчүн цикл төмөнкүчө иштейт:

if (бирдик == 1) {үчүн (int c = 4; c <8; c ++) {lc.setRow (0, c, one [c]); }

Көрсөтүү тартиби төмөнкүчө:

"° C" -> температура -> "hum" -> нымдуулук -> "dp" -> шүүдүрүм чекити -> шүүдүрүм чекитинин мааниси (төмөндө түшүндүрүлөт)

Менде адамдар шүүдүрүм чекитине ылайык аба ырайын кандай сезип жатканы жөнүндө маалыматым бар жана бул маалыматты кодго төмөнкүчө киргизишет:

dp <10: кургак

9 <dp <15: жакшы (g..d)

14 <dp <18: Sweltry (sw)

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

дп> 23: ным

Бул сөздөрдүн дисплейи жакшы эмес, бирок бир эле 8x8 дисплей үчүн түшүнүктүү

Сунушталууда: