Мазмұны:

Жалғыз 8x8 жарықдиодты матрицаны қолданатын екі таңбалы дисплей: 3 қадам
Жалғыз 8x8 жарықдиодты матрицаны қолданатын екі таңбалы дисплей: 3 қадам

Бейне: Жалғыз 8x8 жарықдиодты матрицаны қолданатын екі таңбалы дисплей: 3 қадам

Бейне: Жалғыз 8x8 жарықдиодты матрицаны қолданатын екі таңбалы дисплей: 3 қадам
Бейне: ESP32 Tutorial 52 - WS2812 CheerLights MQTT Global Sync with LCD | SunFounder ESP32 IoT Learnig kit 2024, Қараша
Anonim
Жалғыз 8x8 жарықдиодты матрицаны қолданатын екі таңбалы дисплей
Жалғыз 8x8 жарықдиодты матрицаны қолданатын екі таңбалы дисплей

Мұнда мен өз бөлмеме температура мен ылғалдылық индикаторын жасағым келеді. Мен екі таңбалы сандарды бейнелеу үшін 8х8 жарықдиодты жалғыз матрицаны қолдандым және менің ойымша, жобаның бір бөлігі пайдалы болды. Мен ағаш сияқты боялған картон қораптың көмегімен салынған финалды қораптадым.

Жабдықтар

  1. Arduino Nano x1
  2. DHT11 температура мен ылғалдылық сенсоры x1
  3. MAX7219 x1 бар 8х8 жарықдиодты матрица
  4. 10K резистор x1
  5. Тақырып сымдары
  6. 5В қуат көзі x1
  7. Картон қорап (4х8х13 см)

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

Схемалық
Схемалық

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

DHT11 сонымен қатар шық нүктесінің мәндерін береді. Шық нүктесі - су буымен қаныққан болу үшін ауаны салқындату керек температура. Әрі қарай салқындаған кезде ауадағы су буы конденсацияланып, сұйық су түзеді.

2 -қадам: сымдар мен бокс

Сымдар мен бокс
Сымдар мен бокс
Сымдар мен бокс
Сымдар мен бокс
Сымдар мен бокс
Сымдар мен бокс
Сымдар мен бокс
Сымдар мен бокс

Мен алдымен картон қорапты акрил бояумен боядым және 1 күн кептіргеннен кейін лакпен аяқтадым. Мен алдыңғы қақпақта жарықдиодты дисплейге арналған төртбұрышты терезе жасадым. Сондай -ақ, мен Arduino Nano қуат көзі үшін кішкене тіктөртбұрышты тесік ашып, DHT11 сенсорының жанына бірнеше тесік қойдым.

Мен Arduino -ны негізгі қораптың бұрышына кішкене қорап пен ыстық кремний көмегімен орнаттым.

Мен жарық диодты матрицаны терезеге мөлдір таспалы жолақтар арқылы орналастырдым. Мұнда оны сағат тіліне қарсы 90 ° бұру арқылы орналастыру маңызды, себебі код ондық цифр үшін жоғарғы 4 жолды, ал бірлік цифрлар үшін төменгі 4 жолды қолданады. Мен қолданған модуль үшін MAX7219 бар жағы негізгі жағында болуы керек.

Мен Arduino мен сенсорды қораптың жабылатын жағына қойғандықтан, мен оны толықтай жаба алмадым. Басқа жағын таңдаған дұрыс:).

3 -қадам: код

Код
Код
Код
Код
Код
Код

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

Код жарықдиодты матрицаның бірінші 4 жолын ондаған, ал соңғы 4 жолды бірлік ретінде пайдаланады. Мысалы, егер сіз «бір» кодын тексерсеңіз, сағат тілінің бағытымен 90 ° бұрылған «11» көресіз. Егер сіз осы кодтарды өзгерткіңіз келсе, осы бөлшекке назар аударыңыз.

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

Сенсордың көрсеткішінен сандарды алудың кодтары:

бірлік = ылғалды % 10; ондаған = (ылғалды /10) % 10;

Ондық цифрлар үшін цикл келесі түрде орындалады:

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

Цифрлық бірліктер үшін цикл келесі түрде орындалады:

if (бірліктер == 1) {for (int c = 4; c <8; c ++) {lc.setRow (0, c, one [c]); }

Көрсету тәртібі келесідей:

«° C» -> температура -> «хум» -> ылғалдылық -> «dp» -> шық нүктесі -> шық нүктесінің мағынасы (төменде түсіндірілген)

Менде адамдардың шық нүктесіне сәйкес ауа райын қалай сезінетіні туралы ақпарат бар және бұл ақпаратты кодқа келесі түрде енгізеді:

dp <10: құрғақ

9 <dp <15: жақсы (g..d)

14 <dp <18: Sweltry (sw)

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

dp> 23: дымқыл

Бұл сөздердің дисплейі жақсы емес, бірақ бір ғана 8х8 дисплейі үшін түсінікті

Ұсынылған: