Световой индикатор угла сервопривода
Часть раздела Выходные сигналы путешествия по Arduino на Coddy. Урок 24 из 24.
С иглой на валу сервопривод становится измерительным прибором, как спидометр в автомобиле. Здесь он показывает, насколько ярко.
Как и в ночнике, AO модуля показывает меньшее значение при более ярком освещении: около 1023 в темноте и близко к 0 при ярком свете. При более ярком освещении стрелка прибора должна отклоняться выше, поэтому преобразование выполняется в обратном порядке. Как и в люксметре, задайте для map() новый диапазон в обратном порядке:
int angle = map(reading, 0, 1023, 180, 0);Показание 0, соответствующее яркому свету, преобразуется в 180 градусов, а 1023, соответствующее темноте, — в 0. Все значения между ними располагаются между этими крайними значениями в обратном порядке.
Задание
СреднеAO датчика освещённости подключён к A0, а сервопривод — к контакту 9. Сделай из рычага измеритель освещённости:
- в темноте рычаг указывает на 0 градусов, при полном освещении — на 180
- используй
map()с обратным порядком значений нового диапазона - выводи угол и каждый раз жди 50 мс
Нажми Run и перемести ползунок освещённости на датчике, затем нажми Check.
Попробуйте сами
#include <Servo.h>
const int lightPin = A0;
Servo arm;
void setup() {
arm.attach(9);
Serial.begin(9600);
}
void loop() {
// считайте уровень освещённости, преобразуйте его в обратном порядке в диапазон 180..0, поверните рычаг, выведите угол
}
В этом уроке есть небольшой тест. Начните урок, чтобы ответить на вопросы и сохранить прогресс.
Все уроки раздела Выходные сигналы
5Движение
Управление сервоприводомПоворот сервоприводаСервопривод и ручкаУгол сервопривода через SerialСветовой индикатор угла сервоприводаПотренируйтесь самостоятельно: Песочница Arduino