КОРЗИНА
магазина
8 (499) 500-14-56 | ПН. - ПТ. 12:00-18:00
ЛЕСНОРЯДСКИЙ ПЕРЕУЛОК, 18С2, БЦ "ДМ-ПРЕСС"

Урок 21.2 Метеостанция на базе датчика AM2320 I2C и четырехразрядного LED индикатора

Нам понадобится:

Для реализации проекта нам необходимо установить библиотеки:

  • Библиотека iarduino_AM2320 (для работы с датчиком влажности и температуры I2C).
  • Библиотека iarduino_4LED (для работы с четырёхразрядным LED индикатором).
  • Библиотека Wire входит в стандартный набор IDE Arduino.

О том как устанавливать библиотеки, Вы можете ознакомиться на странице Wiki - Установка библиотек в Arduino IDE.

Видео:

Схема подключения:

LED индикатор подключается к любым двум выводам Arduino (как цифровым, так и аналоговым), номера указываются в скетче. Trema-модуль цифрового датчика влажности и температуры подключается к аппаратной шине I2C.

Схема метеостанции на базе модуля AM2320

В данном уроке, LED индикатор подключён к цифровым выводам 2 и 3.

Алгоритм работы:

  • Читаем показания датчика обращаясь к функции read библиотеки iarduino_AM2320 (объект sensor)
  • Читаем количество миллисекунд прошедших с момента старта скетча обращаясь к функции millis()
  • Обращаясь к функции print библиотеки iarduino_4LED (объект dispLED), поочередно выводим:
    • температуру из переменной tem библиотеки iarduino_AM2320 (объект sensor)
    • влажность из переменной hum библиотеки iarduino_AM2320 (объект sensor)
    • время из переменной j
    Со всеми функциями библиотеки iarduino_4LED можно ознакомиться на странице Wiki.
  • Вместо вывода времени прошедшего с момента старта скетча, можно выводить реальную дату и время, используя модуль реального времени, как это сделано в уроке 21.1.

Код программы:

#include <Wire.h>                                          //  подключаем библиотеку для работы с шиной I2C
#include <iarduino_AM2320.h>                               //  подключаем библиотеку для работы с модулем влажности и температуры AM2320
#include <iarduino_4LED.h>                                 //  подключаем библиотеку для работы с четырёхразрядным LED индикатором
iarduino_AM2320 sensor;                                    //  объявляем объект для работы с функциями библиотеки iarduino_AM2320
iarduino_4LED   dispLED(2,3);                              //  объявляем объект для работы с функциями библиотеки iarduino_4LED, с указанием выводов дисплея ( CLK , DIO ) 
int i=0, j=0, k=5;                                         //  объявляем 3 переменные, i показывает какую информацию выводить, j хранит время прошедшее со старта скетча, k длительность отображения информации
void setup(){
  sensor.begin();                                          //  инициируем работу с модулем AM2320
  dispLED.begin();                                         //  инициируем LED дисплей
}
void loop(){
  sensor.read();                                           //  читаем показания датчика
  j=(uint32_t)millis()/1000%3600;                          //  преобразуем миллисекунды в секунды и получаем остаток от деления на 1 час
  i++; if(i>=k*3){i=0;}                                    //  увеличиваем переменную i на единицу, при каждом проходе цикла loop. Достигнув 3k, сбрасываем значение в 0
       if(i< k*1){dispLED.print(sensor.tem,1,TEMP );}else  //  выводим температуру (1 знак после запятой, с символом градуса)
       if(i< k*2){dispLED.print(sensor.hum,1,RIGHT);}else  //  выводим влажность   (1 знак после запятой, со сдвигом числа вправо от старшего разряда)
       if(i< k*3){dispLED.print((j/60),(j%60),TIME);       //  выводим время, прошедшее со старта скетча (целое число минут, целое число секунд, с двоеточием между ними)
                  dispLED.point(0,(j%2));           }      //  стираем двоеточие при выводе каждой чётной секунды
  delay(1000);                                             //  приостанавливаем выполнение скетча на 1 секунду
}

скачать

Ссылки:




Обсуждение

Гарантии и возврат Используя сайт Вы соглашаетесь с условями