Menu
CoddyTech

Регулятор яркости с ручкой

Часть раздела Выходные сигналы путешествия по 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 приводит к неправильной яркости.

challenge icon

Задание

Легко

Регулятор подключён к 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 и передайте результат на светодиод
}
quiz iconПроверьте себя

В этом уроке есть небольшой тест. Начните урок, чтобы ответить на вопросы и сохранить прогресс.

Все уроки раздела Выходные сигналы

Потренируйтесь самостоятельно: Песочница Arduino