Ультразвуковой датчик расстояния (УЗД)
Рисунок 1 – Ультразвуковой датчик расстояния
Ультразвуковой датчик определяет расстояние до объекта так же, как это делают летучие мыши или дельфины. Датчик HC-SR04 генерирует узконаправленный сигнал на частоте 40 кГц и ловит отраженный сигнал (эхо). По времени распространения звука до объекта и обратно можно достаточно точно определить расстояние до него.
Рисунок 2 – Принцип работы
Поэтому же принципу работает множество приборов для исследования пространства – эхолот, сонар, радиолокатор и даже полицейский радар для определения скорости автомобиля. Все эти приборы излучают узконаправленный ультразвуковой сигнал и получают обратно отраженный сигнал. В отличие от инфракрасных дальномеров, на показания ультразвукового датчика не влияет цвет объекта или засветки от солнца.
2
Подключение к Arduino
VCC – вывод питания.
GND – вывод земли.
Trig – вывод запуска процедуры получения информации о расстоянии до объекта. Этот вывод необходимо соединить с одним из цифровых выводов
Arduino.
Echo – вывод сигнала, определяющего расстояние до объекта. Этот вывод также следует подключить к одному из цифровых выводов.
Схема подключения указана на рисунке 3. Отметим, что ультразвуковой дальномер HC-SR04 имеет диапазон измерения от 2 см до 400 см, работает при температурах от 0° до 60° С. Точность измерения составляет ± 1 см, рабочее напряжение датчика до 5,5 В.
Рисунок 3 – Подключение датчика к плате Arduino UNO
3
Пример опроса датчика
Рисунок 4 – Программирование датчика расстояния
Пояснения к коду
1.Для подключения выходов Trig и Echo на датчике можно использовать любые цифровые входы на Arduino.
2.Команда delayMicroseconds() останавливает выполнение программы на заданное количество микросекунд (в 1 секунде 1 000 000 микросекунд).
3.На что обратить внимание:
Чтобы получить значение датчика в миллиметрах следует использовать следующую формулу для расчета: cm = duration / 5,8.
4
Датчик температуры почвы
DS18B20 – это цифровой датчик температуры. Датчик очень прост в использовании. Во-первых, он цифровой, а во-вторых, у него всего лишь один контакт, с которого мы получаем полезный сигнал. То есть, вы можете подключить к одному Arduino одновременно огромное количество этих сенсоров.
Температурный датчик DS18B20 имеет разнообразные виды корпуса. Можно выбрать один из трех – 8-Pin SO, 8-Pin µSOP и 3-Pin TO-92. Последний является наиболее распространенным и изготавливается в специальном влагозащитном корпусе, так что его смело можно использовать под водой. У каждого датчика есть 3 контакта. Для корпуса TO-92 нужно смотреть на цвет проводов: черный – земля, красный – питание и белый/желтый/синий – сигнал.
Рисунок 5 – Датчик DS18B20
Особенности
Погрешность измерения не больше 0,5 С (для температур от -10С до +85С), что позволяет точно определить значение температуры. Не требуется дополнительная калибровка.
Температурный диапазон измерений лежит в пределах от -55 С до +125 С.
Датчик питается напряжением от 3,3В до 5В.
Присутствует функция тревожного сигнала.
Каждое устройство обладает своим уникальным серийным кодом.
Можно подключить сразу до 127 датчиков к одной линии связи.
Информация передается по протоколу 1-Wire.
Для присоединения к микроконтроллеру нужны только 3 провода.
5
Память датчика состоит из двух видов: оперативной и энергонезависимой. SRAM и EEPROM. В последнюю записываются регистры конфигурации и регистры общего назначения.
Информация об измеренной температуре хранится в оперативной памяти датчика, которая состоит из 9 байт.
1 и 2 байты хранят информацию о температуре.
3 и 4 байты хранят соответственно верхний и нижний пределы температуры.
5 и 6 байты зарезервированы.
7 и 8 байты используются для сверхточного измерения температуры.
9 байт хранит помехоустойчивый CRC код предыдущих 8 байт.
Основной задачей DS18B20 является определение температуры и преобразование полученного результата в цифровой вид.
Подключение к Arduino
Если у вас датчик без дополнительного модуля, который присутствовал на видео, то необходимо подключать по следующей схеме:
Рисунок 6 – Подключение датчика к плате Arduino UNO
Иначе говоря, между цифровым контактом и питанием необходимо подсоединить резистор в 4,7 КОм.
Если модуль уже имеется, тогда просто подсоедините соответствующий вывод к цифровому контакту.
6
Пример опроса датчика
Рисунок 7 – Программирование датчика температуры почвы
7
