Модуль 4 — Аналоговые сигналы (курс для начинающих)
Цель модуля: изучить работу с аналоговыми входами Arduino (ADC), научиться использовать ШИМ (PWM) для управления яркостью светодиодов, подключить потенциометр и создать проект «Регулятор яркости».
Аналоговый вход (ADC)
Аналоговый вход позволяет измерять напряжение в диапазоне от 0 до опорного (обычно 5 В или 3,3 В для Arduino). Модуль АЦП (ADC — Analog-to-Digital Converter) преобразует напряжение в цифровое значение.
- На Arduino Uno, Nano, Mega — разрядность 10 бит, что даёт значения от 0 до 1023.
- 0 соответствует 0 В, 1023 — максимально допустимому напряжению (обычно 5 В).
- Пример: 2,5 В на входе даст примерно 512.
Аналоговые входы обозначены как A0, A1, A2....
ШИМ (PWM)
Широтно-импульсная модуляция (PWM — Pulse Width Modulation) используется для управления «средним» напряжением на выходе, что позволяет плавно изменять яркость светодиода или скорость двигателя.
- В Arduino функция
analogWrite()генерирует PWM сигнал. - Значения — от 0 (0% заполнения, всегда LOW) до 255 (100% заполнения, всегда HIGH).
- На Arduino Uno пины с PWM отмечены знаком
~(3, 5, 6, 9, 10, 11).
Измерение напряжения с потенциометра
Потенциометр — это переменный резистор, который можно использовать как делитель напряжения. Поворачивая ручку, мы меняем напряжение на среднем выводе.
Подключение:
- Один крайний вывод — к
+5V. - Второй крайний вывод — к
GND. - Средний вывод — к аналоговому входу Arduino (например,
A0).
Изменение яркости светодиода с помощью PWM
Если подключить светодиод к пину с поддержкой PWM, можно плавно изменять его яркость в зависимости от значения с потенциометра.
Практика
Подключение потенциометра и управление яркостью
Схема:
- Потенциометр: края → +5V и GND, средний вывод → A0.
- Светодиод через резистор 220–330 Ом → пин 9 (PWM) и GND.
const int potPin = A0;
const int ledPin = 9;
void setup() {
pinMode(ledPin, OUTPUT);
}
void loop() {
int potValue = analogRead(potPin); // 0..1023
int pwmValue = map(potValue, 0, 1023, 0, 255); // масштабируем
analogWrite(ledPin, pwmValue);
}
Вращая ручку потенциометра, вы изменяете коэффициент заполнения PWM, а значит — и яркость светодиода.
Проект: «Регулятор яркости»
Задача: создать устройство, которое позволяет плавно регулировать яркость светодиода.
Что нужно: Arduino Uno/Nano, потенциометр 10 кОм, светодиод, резистор 220–330 Ом, макетная плата, провода.
Схема подключения: та же, что и в примере выше.
Код с плавным изменением яркости
const int potPin = A0;
const int ledPin = 9;
void setup() {
pinMode(ledPin, OUTPUT);
}
void loop() {
int potValue = analogRead(potPin);
int pwmValue = map(potValue, 0, 1023, 0, 255);
analogWrite(ledPin, pwmValue);
delay(10); // небольшая задержка для плавности
}
Типичные ошибки
- Подключение светодиода без резистора — может перегореть.
- Использование пина без поддержки PWM — яркость не меняется.
- Неправильное подключение потенциометра — значения не изменяются.
Что дальше
В следующем модуле мы познакомимся с Модулем 5 — Датчики и модули: DHT11, LDR и проект «Умная лампа»
Контрольные вопросы
- Что такое ADC и какие значения он возвращает на Arduino Uno?
- Что такое PWM и для чего он используется?
- Как подключить потенциометр к Arduino?
- Как с помощью потенциометра регулировать яркость светодиода?
Авторский курс по Arduino для начинающих. Использование материалов на коммерческих сайтах допускается с указанием источника.





