Регулятор яркости с ручкой
Часть раздела Выходные сигналы путешествия по Arduino на Coddy. Урок 5 из 24.
Поворотная ручка передаёт в analogRead() число от 0 до 1023, а analogWrite() принимает значения от 0 до 255. Эти диапазоны не совпадают, поэтому преобразуйте один в другой с помощью map():
int reading = analogRead(A0);
int brightness = map(reading, 0, 1023, 0, 255);
analogWrite(9, brightness);Когда ручка повёрнута вниз, получается 0 и LED не горит; когда она повёрнута вверх, получается 1023, которое преобразуется в 255, и LED горит на полную яркость. В каждом промежуточном положении яркость также будет промежуточной.
Записать показание напрямую в LED не получится: analogWrite() принимает только значения от 0 до 255, поэтому показание вроде 600 приводит к неправильной яркости.
Задание
ЛегкоРегулятор подключён к A0, а LED — к контакту 9. Сделай так, чтобы регулятор задавал яркость:
- считай значение регулятора
- преобразуй это значение в диапазон от 0 до 255 с помощью
map() - запиши его на LED, затем подожди 10 мс
Нажми Запустить и поверни регулятор, затем нажми Проверить.
Попробуйте сами
const int knobPin = A0;
const int ledPin = 9;
void setup() {
pinMode(ledPin, OUTPUT);
}
void loop() {
// считайте значение с ручки, преобразуйте его в диапазон 0..255 и передайте результат на светодиод
}
В этом уроке есть небольшой тест. Начните урок, чтобы ответить на вопросы и сохранить прогресс.
Все уроки раздела Выходные сигналы
Потренируйтесь самостоятельно: Песочница Arduino