Курс «Основы робототехники». Занятие 9. Цифровые датчики
Изученные ранее датчики освещенности и температуры на основе фоторезисторов и терморезисторов являются аналоговыми – выдают уровни напряжений, зависящие от измеряемых ими параметров. Использование этих и подобных им датчиков имеет следующие неудобства:
· необходимость калибровки и пересчета уровней напряжений в измеряемый параметр
· при необходимости установки датчика на расстоянии от контроллера – возможны помехи в соединяющих проводах, меняющие напряжение с датчика и, соответственно, ошибки измерения
Этих недостатков лишены цифровые датчики, которые выдают измеренные величины в виде цифровых сигналов (комбинаций нулей и единиц), которые расшифровывает контроллер. Такие датчики заранее откалиброваны при изготовлении и обладают высокой помехоустойчивостью при передаче сигналов на большие расстояния.
Цифровой датчик температуры DS18B20
Используется для измерения температуры воздуха и различных устройств, на поверхность которых или внутрь может быть установлен (в том числе с возможностью герметизации, например, в металлической трубке). Он может измерять температуру в диапазона от -55 до +125°C с точностью ±0,5°C
Как и большинство датчиков, имеет три контакта: Gnd, Signal, +5 В. Сигнальный провод должен соединяться резистором 4,7 кОм с контактом +5 В (в используемом в стенде датчике с проводами такое соединение уже сделано)
Примечание: датчик подключается к контроллеру по шине OneWire, которая позволяет подсоединить до 100 датчиков на одну шину (три провода 5V, Gnd, Signal), при длине линии до 300 метров.
Практическое занятие 1. Снятие и вывод температуры
1. откройте пример работы с библиотекой опроса датчика Файл / Примеры / DallasTemperature / Simple
|
Примечание: для работы библиотека должна быть скопирована в папку Мои документы / Arduino / libraries
2. подключите датчик температуры: красный провод к 5V, черный к Gnd, белый к цифровому входу 2. Номер входа задается в строке
#define ONE_WIRE_BUS 2 |
и может быть изменен исправлением числа в конце этой строки
3. откройте Монитор порта и посмотрите измеряемую датчиком температуру. Попробуйте нагревать датчик рукой и убедитесь, что температура меняется
4. установите ЖК индикатор на Arduino и выведите на него измеряемую температуру, например, в формате
Temperature = 25,11°С |
Примечание: значок ° выводится таким образом: lcd.print("/337");
Практическое занятие 2. Модель нагревателя для поддержания заданной температуры
Добавьте к схеме с датчиком температуры и ЖК индикатором светодиод и, используя условие if, реализуйте следующий алгоритм:
если температура с датчика меньше 25 градусов – зажечь светодиод иначе – погасить светодиод |
Нагревая датчик прикосновением пальцев, убедитесь, что алгоритм выполняется
Примечание: можно подключить светодиод к контактам А1…А5 шилда (контакт А0 использовать нельзя, т.к. к нему подключены кнопки ЖК шилда). Аналоговые пины можно использовать как цифровые, в этом случае используется нумерация: A0=14, А1 = 15, А2 = 16, А3 = 17, А4 = 18, А5 = 19
Светодиод в данном случае имитирует нагреватель. Данная модель управления нагревателем является самой простой и обеспечивает низкую точность поддержания заданной температуры. ПИД-регулирование, обеспечивающее более высокую точность, в базовом курсе не изучается
|
Цифровой ультразвуковой датчик расстояния HC-SR04
Датчик генерирует ультразвуковой импульс, который отражается от объекта и принимается датчиком. Расстояние до объекта рассчитывается исходя из времени до получения эха и скорости звука в воздухе.
Датчик может использоваться для определения расстояния до препятствий и стен на роботах, в качестве датчика линии, например, для определения пересечения человеком дверного проема. Помимо контактов питания, имеет два сигнальных контакта – Trig (включение динамика) и Echo (опрос микрофона)
Датчик может измерять расстояние до препятствия, дальность работы от 3 см до 3 м (в некоторых источниках до 4,5 м), точность ±3 см