×
Traktatov.net » Изучаем Arduino: инструметы и методы технического волшебства » Читать онлайн
Страница 26 из 138 Настройки

• Двухосевой аналоговый гироскоп. (Описание датчика приведено на странице

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. Схема подключения датчика температуры

- 74 -

Прежде всего, определите приемлемый для вас температурный диапазон. Используя программу из листинга 3.1, определите аналоговые значения для верхнего и нижнего порогов температуры. Для меня нижний порог комфортной температуры составляет 20°С, что соответствует аналоговому значению 143. У вас эта цифра может быть другой. Следите за показаниями в мониторе последовательного порта при наступлении нижнего и верхнего предела температуры. Эти значения можно получить из графика на рис. 3.7 или из формулы, связывающей температуру (в °С) с входным напряжением (в мВ):

Температура (°С)х10 = Напряжение (мВ)- 500.

Напряжение 700 мВ соответствует температуре 20°С. Расчет по формуле (или просто анализ показаний монитора последовательного порта) дает для 22°С цифровое значение 147, для 18°С- 139. Эти величины выберем для нижнего и верхнего значений комфортной температуры, чтобы изменять цвет светодиода. Функция analogRead() будет считывать показания датчика температуры, digitalWrite() устанавливать цвет светодиода.

Совет Рекомендую вам не копировать листинг 3.2, а попробовать написать текст программы самостоятельно, чтобы убедиться в своих силах. Сравните свой результат с приведенным далее.

Листинг 3.2. Программа температурного оповещателя - tempalert.ino

// Температурный оповещатель

// Контакт

const int BLED=9; // Контакт 9 для вывода BLUE RGB-светодиода

const int GLED=10; // Контакт 9 для вывода GREEN RGB-светодиода

const int RLED=11; // Контакт 9 для вывода RED RGB-светодиода