Светлый фон

analogRead

analogRead

«Ардуино» может считывать аналоговые значения и преобразовать их в число от 0 до 1023. На плате были зарезервированы 6 контактов для выполнения данной операции. Контакты называются А0, А1, А2, A3, А4 и А5. Мы можем подключить любой тип аналогового датчика, который вырабатывает напряжение от 0 до 5 В. Попробуем подключить термистор к «Ардуино» и прочитать его значение.

Термистор имеет значение сопротивления «в покое» примерно 10 кОм, поэтому мы последовательно подключим его с резистором на 10 кОм, образуя делитель напряжения, подключенный между GND (Землей) и 5 В «Ардуино». Подключим контакт АО к центральной точке делителя.

 

Рис. А7. Схема соединения «Ардуино» с термистора на макетной плате

Рис. А7.

 

Для использования аналогового входа нет необходимости указывать это в setup. Давайте попробуем загрузить скетч, который считывает напряжение на выводах термистора, если напряжение превышает определенное значение, то светодиод будет включен или выключен. Мы также будем использовать последовательный порт для отображения значения, считываемого с датчика.

 

tone (контакт, частота, продолжительность)

 

Чтобы узнать, сколько миллисекунд включен «Ардуино» мы используем функцию millis(), которая возвращает переменную типа long (она может содержать целые числа, большие по величине, чем обеспечивает int). Присваиваемый номер растет до максимального значения (равного примерно пятьдесят дней), а затем снова начинается с нуля.

 

millis()

 

Можно получить более высокую точность с функцией micros(), которая работает в микросекундах. Чтобы определить длительность импульса на контакте, мы можем использовать функцию pulseIn(), которая возвращает число в миллисекундах. Если мы ожидаем импульс высокого уровня на контакте, то как только контакт приходит на высокий уровень, выполнение скетча приостанавливается в ожидании конца импульса. Мы можем обнаружить импульсы высокого или низкого уровня, а также установить время ожидания, так что, если по истечении некоторого времени импульс не переключается, pulseIn заканчивается, и программа может быть продолжена.

 

pulseIn(pin, value)

pulseIn (pin, value, timeout)