Потенциометр – переменный резистор, который удобно использовать для ввода данных в программу. Подробнее про его принцип работы рассказано в уроке про закон Ома. Может использоваться с МК для любых настроек электронного устройства: яркость, скорость, время, что угодно. Также может использоваться в аналоговых цепях для настройки напряжения и тока, подключаться к некоторым микросхемам для их настройки и так далее.
| В наборе GyverKIT | Aliexpress | |
|---|---|---|
![]() |
START IOT |
Купить |
![]() |
START IOT |
Купить |
Потенциометры из набора не очень приспособлены для подключения на макетной плате: у них очень широкие ножки, которые туго входят в отверстия. Можно загнуть их на 90 градусов, а затем скрутить ещё на 90 градусов при помощи пинцета. Так они не будут излишне растягивать контакты платы, да и втыкать будет гораздо удобнее:
Подключение к Arduino #
Потенциометр подключается крайними выводами на GND и VCC, а центральным – на аналоговый вход МК в режиме INPUT. Для опроса используется функция analogRead(pin). Рассмотрим подключение двух потенциометров на пины A0 и A1:
К Wemos можно подключить только один потенциометр, причём питание должно быть от 3.3V, так как аналоговый вход Wemos принимает напряжение от 0 до 3.3V!
Модуль потенциометра #
Подключается к питанию и аналоговому пину. Порядок пинов отличается от обычного потенциометра, внимательнее к подписям!
Помехи #
Если потенциометр стоит в реальном устройстве, вынесен на длинных проводах или дорожках, а неподалёку расположены моторы или провода с большим током - в сигнальном проводе могут наводиться помехи. Для их подавления достаточно всего лишь добавить в схему конденсатор между сигналом и GND - потенциометр уже имеет сопротивление и образуется RC цепь, которая будет гасить помехи. Конденсатор нужно ставить около МК, а не около удалённого потенциометра:
Для 10 кОм потенциометра достаточно типового конденсатора на 0.1 мкФ, чтобы погасить большинство помех в реальном устройстве - частота среза фильтра получится около 160 Гц. Конденсаторы на 1 или 10 мкФ погасят до 16 и 1.6 Гц соответственно - сглаживание уже может быть заметно визуально.
На графике - сигнал с потенциометра при наличии рядом щёточного мотора под переменной нагрузкой. При добавлении 0.1 мкФ помехи пропали, остался нормальный шум АЦП в 1 единицу. Причём по "плотности" шума на втором графике видно, в какие моменты идёт помеха, но срезается фильтром.
Программирование #
Уроки по теме:
Вывод значений в порт
/*
Потенциометры на A0 и A1. Вывод в порт.
Открой Инструменты/Плоттер для просмотра графика
*/
void setup() {
// открываем порт для связи
Serial.begin(115200);
}
void loop() {
// выводим оба значения
// через запятую в одну строку
Serial.print(analogRead(A0));
Serial.print(',');
Serial.println(analogRead(A1));
delay(10);
}
Управление яркостью светодиода
/*
Потенциометр на A0 управляет
яркостью светодиода на плате (D13)
*/
void setup() {
// пин 13 как выход (для мигания светодиодом)
pinMode(13, OUTPUT);
}
void loop() {
// шим на 13 пине
// analogRead возвращает 0-1023
// softPWM ожидает 0-255
// делим на 4 для соответствия значений
softPWM(13, analogRead(A0) / 4);
}
// софт шим
void softPWM(byte pin, byte val) {
static byte count;
count++;
if (count == 0 && val != 0) digitalWrite(pin, 1);
if (count == val) digitalWrite(pin, 0);
}
Полезные страницы #
- Набор GyverKIT – наш большой стартовый набор Arduino, продаётся в России
- Каталог ссылок на дешёвые Ардуины, датчики, модули и прочие железки с AliExpress
- Обратная связь – сообщить об ошибке в уроке или предложить дополнение по тексту (alex@alexgyver.ru)
- Поддержать автора за работу над уроками









