Цифровая электроника для начинающих - страница 18
Подключение модуля к Arduino весьма просто.
Для использования модуля, необходимо скачать и установить библиотеку https://github.com/Makuna/Rtc.
Пример использования DS1707 показан ниже.
#include
#include
RtcDS1307
void setup ()
{
Serial.begin(57600);
Rtc.Begin();
// Если время не было установлено, установить его
if (!Rtc.IsDateTimeValid()) {
RtcDateTime compiled = RtcDateTime(__DATE__, __TIME__);
Rtc.SetDateTime(compiled);
}
// Запустить отсчет времени, если не запущен
if (!Rtc.GetIsRunning()) {
Rtc.SetIsRunning(true);
}
// Выход square wave не используется
Rtc.SetSquareWavePin(DS1307SquareWaveOut_Low);
}
void loop ()
{
if (!Rtc.IsDateTimeValid()) {
// Ошибка, возможно, пропадание питания при отсутствии батареи
Serial.println("RTC Error!");
return;
}
RtcDateTime now = Rtc.GetDateTime();
Serial.println(now.Year());
Serial.println(now.Month());
Serial.println(now.Day());
Serial.println(now.Hour());
Serial.println(now.Minute());
Serial.println(now.Second());
Serial.println();
// 10с пауза
delay(10000);
}
Код довольно-таки прост. Если часы DS1307 не установлены (функция IsDateTimeValid возвращает FALSE), то они устанавливаются с помощью констант __DATE__ и __TIME__ - они содержат время компиляции программы. Таким образом, при первом запуске в таймер будет автоматически занесено текущее время. Затем с помощью функции GetDateTime мы получаем время и дату, из которой можно узнать год, месяц, день, часы, минуты и секунды.
Теперь, загрузив программу в Arduino, мы можем отключить устройство. При последующем включении программа всегда будет “знать” текущее время.
Самостоятельная работа #1: сделать “вечернее освещение” с помощью Arduino и таймера, например, настроить зажигание светодиода с 23 вечера до 7 часов утра.
Самостоятельная работа #2: сделать “настольный будильник”, подключив к Arduino модуль RTC, “пищалку” и кнопку. Задать в коде срабатывание будильника в определенный час и минуту, кнопку использовать для остановки звучания.
2.11 Подключаем ультразвуковой дальномер HC-SR04
Еще одним популярным в любительской электронике прибором, является дальномер HC-SR04. Это недорогой прибор, стоимостью 2-4$ на eBay, позволяющий измерять расстояние до препятствий с помощью ультразвука.
Дальность обнаружения от нескольких сантиметров до 4м, позволяет использовать его в различных устройствах, например в самодельных роботах.
Принцип использования HC-SR04 показан на рисунке.
Когда активируется запускающий сигнал (trigger signal), устройство посылает серию ультразвуковых импульсов, и в завершении формирует ответный сигнал, длительность которого пропорциональна расстоянию. Таким образом, для подключения достаточно всего двух проводов, для выходного и для входного импульсов.
Использование датчика весьма просто - для Arduino уже написаны готовые библиотеки, позволяющие получить расстояние. Вначале нужно скачать библиотеку по адресу https://github.com/JRodrigoTech/Ultrasonic-HC-SR04, ее необходимо распаковать в уже знакомую нам папку Документы\Arduino\libraries.
Сам код, считывающий показания сенсора и отправляющий их в serial port, весьма прост.
#include
Ultrasonic ultrasonic(4,2); // (Trig,Echo)
void setup() {
Serial.begin(9600);
}
void loop()
{
Serial.print(ultrasonic.Ranging(CM));
Serial.println(" cm" );
delay(100);
}
Как можно видеть, создается объект Ultrasonic, в качестве параметров которого указываются номера выводов. Дальше функция ultrasonic.Ranging(CM) делает всю работу.
Само подключение сенсора тоже не вызывает сложностей.
Самостоятельная работа: подключить к данной схеме LCD-дисплей и сделать вывод на экран расстояния до объектов. Опционально, можно подключить светодиод и зажигать его, если расстояние до объекта меньше критического.
2.12 Подключаем плату управления моторами
Мы уже можем подключить к Arduino практически все необходимое - датчики, светодиоды, индикаторы. Остался последний шаг, после которого можно собрать вполне полноценного робота - это научиться управлять моторами.