Оглавление:
Видео: Двухразрядный дисплей с использованием одной светодиодной матрицы 8x8: 3 шага
2025 Автор: John Day | [email protected]. Последнее изменение: 2025-01-13 06:58
Здесь я хотел бы построить индикатор температуры и влажности для своей комнаты. Я использовал одиночную светодиодную матрицу 8x8 для отображения двузначных чисел, и я думаю, что эта часть проекта стала более полезной. Я поместил финальную сборку в картонную коробку, выкрашенную под дерево.
Запасы
- Ардуино Нано x1
- Датчик температуры и влажности DHT11 x1
- Светодиодная матрица 8x8 с MAX7219 x1
- Резистор 10K x1
- Заголовочные провода
- Источник питания 5 В x1
- Картонная коробка (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 строки как единицы. Так, например, если вы проверите код на «один», вы увидите, что цифра «11» повернута на 90 ° по часовой стрелке. Если вы хотите изменить эти коды, позаботьтесь об этом.
первый байт = {B00000000, B01000100, B01111100, B01000000, B00000000, B01000100, B01111100, B01000000};
Коды для получения цифр из показаний датчика:
единицы = влажный% 10; десятки = (влажный / 10)% 10;
Для разряда десятков цикл for работает следующим образом:
если (десятки == 1) {для (int c = 0; c <4; c ++) {lc.setRow (0, c, один [c]); }
Для разряда единиц цикл for работает следующим образом:
if (units == 1) {для (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: мокрый
Дисплей для этих слов нехороший, но все же понятный для одного дисплея 8x8