3.6. Использование аналоговых датчиков
Хотя на контакте потенциометра можно получить значение аналогового напряжения, он на самом деле не является датчиком в традиционном смысле. Потенциометры " чувствуют" лишь поворот ручки, но это не слишком интересно. Но есть настоящие датчики, они выдают значения на аналоговом выходе, соответствующие "реальному" действию. Примеры датчиков:
• акселерометры для обнаружения наклона (применяются в смартфонах и планшетах);
• магнитометры для фиксации магнитных полей (необходимы при создании цифровых компасов);
• инфракрасные датчики для определения расстояния до объекта;
• датчики для измерения температуры.
Многие из этих датчиков подключают аналогично потенциометру: два контакта питания (VCC и GND) и один к аналоговому входу платы Arduino. Для следующего эксперимента вы можете выбрать любой датчик из списка:
• Инфракрасный датчик расстояния Sharp. (Описание датчика приведено на странице http://www.exploringarduino.com/parts/lR-Distance-Sensor, разъем для подключения - http://www.exploringarduino.com/parts/JST-Wire.)
Инфракрасные датчики Sharp измеряют расстояние от датчика до объекта. По мере удаления объекта напряжение на выходе датчика уменьшается. Рисунок на странице 5 технического описания датчиков Sharp ( скачать можно по адресу
http://exploringarduino.com/wp-content/uploads/2013/06/GP2YOA-datasheet.pdt)
показывает связь между выходным напряжением и расстоянием до объекта.
• Датчик температуры ТМР36. (Описание приведено на странице http://www.exploringarduino.com/parts/TMP36.)
Датчик температуры ТМР36 позволяет легко преобразовать выходной уровень напряжения в показания температуры в градусах Цельсия. Каждые 10 мВ выходного напряжения соответствуют 1°С. Формула для преобразования выходного напряжения (в мВ) в температуру (в °С) выглядит так: Т= (U вых- 500)/10.
Смещение 500 мВ необходимо для работы с температурами ниже 0°С. Эта зависимость приведена на рис. 3. 7.
- 72 -
Рис. 3.7. Зависимость выходного напряжения от температуры для различных датчиков
• Трехосевой аналоговый акселерометр. (Описание приведено на странице
http://www.exploringarduino.com/parts/TriAxis-Analog-Accelerometer.)
Трехосевые акселерометры предназначены для определения ориентации объекта. Аналоговые акселерометры выдают значения, соответствующие смещению объекта по каждой оси: Х, У и Z (для каждой оси разном контакте). С помощью тригонометрических преобразований и закона всемирного тяготения можно определить позицию объекта в трехмерном пространстве. Напряжение питания многих акселерометров равно 3,3 В, поэтому для получения правильных значений в программе нужно предусмотреть установку опорного напряжения analogReference(), а вывод питания акселерометра подсоединить к контакту 3,3 В платы Arduino.
• Двухосевой аналоговый гироскоп. (Описание датчика приведено на странице
http://www.exploringarduino.com/parts/DualAxis-Analog-Gyroscope.)
Гироскопы, в отличие от акселерометров, нечувствительны к силе тяжести. Напряжение на их аналоговом выходе изменяется в соответствии с угловым ускорением вокруг оси. Гироскопы особенно полезны для обнаружения поворота.
Посмотрите пример взаимодействия гироскопа с платой Arduino в моем проекте SudoGlove (http://www.jeremyblum.com/portfolio/sudoglove-hardware-controller/).
Перчатка-манипулятор, которую я разработал, распознает движения руки и способна управлять музыкальным синтезатором или радиоуправляемым автомобилем. Напряжение питания многих гироскопов составляет 3,3 В.
Если вы выбрали датчик, перейдем к примеру его использования.
- 73 -
3.7. Работа с аналоговым датчиком температуры
Рассмотрим простой пример работы с датчиком температуры ТМР36, упомянутым в предыдущем разделе. Вы можете выбрать любой аналоговый датчик из приведенного ранее списка или взять какой-нибудь другой. Последовательность действий, описанная далее, практически одинакова для любого аналогового датчика.
Для начала подсоедините к плате Arduino Uno RGB-светодиод, как в главе 2, и датчик температуры к выходу A0 (рис. 3.8).
На основе этой схемы создадим простую систему, сигнализирующую об изменении температуры. RGB-светодиод будет гореть зеленым, когда температура находится в пределах допустимого диапазона, красным, когда станет жарко, и синим, когда становится холодно.
Рис. 3.8. Схема подключения датчика температуры
Читать дальше