Листинг 3.3. Программа управляемого ночника - nightlight.ino
// Автоматический ночник
const int RLED=9; // Контакт 9 для ШИМ-вывода RED RGB-светодиода
const int LIGHT=0; // Контакт A0 для входа фоторезистора
const int MIN_LIGHT=200; // Нижний порог освещенности
const int MAX_LIGHT=900; // Верхний порог освещенности
int val = 0; // Переменная для сохранения считанного аналогового значения
void setup()
{
pinMode(RLED, OUTPUT); // Сконфигурировать RED-контакт светодиода как выход
}
- 79 -
void loop()
{
val = analogRead(LIGHT); // Чтение показаний фоторезистора
val = map(val, MIN_LIGHT, MAX_LIGHT, 255, 0); // вызов функции map()
val = constrain(val, 0, 255); // ограничение границ
analogWrite(RLED, val); // управление светодиодом
}
Обратите внимание, что в листинге переменная val используется повторно.
В принципе, можно задать и другую переменную. В таких функциях, как map(), предыдущее значение переменной val служит в качестве аргумента и после завершения выполнения функции перезаписывается заново.
Загрузите программу в плату Arduino и посмотрите, работает ли ночник, как ожидалось. Чувствительность ночника можно отрегулировать, подобрав минимальную и максимальную границы комфортного диапазона с помощью монитора последовательного порта. Подумайте, как можно реализовать в этой программе выбор цвета ночника, воспользовавшись сведениями из предыдущей главы. Попробуйте добавить кнопку для выбора цвета светодиода и фоторезистор для регулировки яркости каждого цвета.
Резюме
• Чем отличаются аналоговые сигналы от цифровых.
• Как преобразовать аналоговые сигналы в цифровые.
• Как считать аналоговый сигнал с потенциометра.
• Как вывести на экран данные, используя монитор последовательного порта.
• Как взаимодействовать через интерфейс с аналоговыми датчиками.
• Как создать собственные аналоговые датчики.
• Как ограничить значения для управления аналоговыми выходами.
ЧАСТЬ II Управление окружающей средой
В этой части
Глава 4. Использование транзисторов и управляемых двигателей
Глава 5. Работаем со звуком
Глава 6. USB и последовательный интерфейс
Глава 7. Сдвиговые регистры
Глава 4. Использование транзисторов и управляемых двигателей
Список деталей
Для повторения примеров главы вам понадобятся следующие детали:
• плата Arduino Uno;
• USB-кабель;
• батарея 9 В;
• разъем для батареи 9 В;
• стабилизатор напряжения L4940V5;
• электролитический конденсатор 22 мкФ;
• электролитический конденсатор 0, 1 мкФ;
• керамический конденсатор 1 мкФ;
• 4 синих светодиода;
• 4 резистора номиналом 1 кОм;
• биполярный n-p-n транзистор PN2222;
• диод 1N4004;
• перемычки;
• провода;
• ИК-датчик расстояния Sharp GP2YOA41SKOF ИК с кабелем;
• стандартный серводвигатель;
• двигатель постоянного тока;
• макетная плата;
• потенциометр;
• драйвер двигателя SN754410.
- 84 -
На странице http://www.exploringarduino.com/content/ch4 можно загрузить код программ, видеоуроки и другие материалы для данной главы. Кроме того, листинги примеров можно скачать со страницы www.wiley.com/go/exploringarduino в разделе Downloads.