Потенциометр – переменный резистор, который удобно использовать для ввода данных в программу. Может использоваться для любых настроек электронного устройства: яркость, скорость, время, что угодно. Также может использоваться в аналоговых цепях для настройки напряжения и тока, подключаться к некоторым микросхемам для их настройки и так далее.
![]() |
В наборе GyverKIT | START | IOT | EXTRA |
---|---|---|---|---|
Потенциометр | ✔ | ✔ |
Потенциометры из набора не очень приспособлены для подключения на макетной плате: у них очень широкие ножки, которые туго входят в отверстия. Можно загнуть их на 90 градусов, а затем скрутить ещё на 90 градусов при помощи пинцета. Так они не будут излишне растягивать контакты платы, да и втыкать будет гораздо удобнее:
Подключение к Arduino #
Потенциометр подключается крайними выводами на GND и VCC, а центральным – на аналоговый вход МК в режиме INPUT
. Для опроса используется функция analogRead(pin)
. Рассмотрим подключение двух потенциометров на пины A0
и A1
:
К Wemos можно подключить только один потенциометр, причём питание должно быть от 3.3V, так как аналоговый вход Wemos принимает напряжение от 0 до 3.3V!
Модуль потенциометра #
Подключается к питанию и аналоговому пину. Порядок пинов отличается от обычного потенциометра, внимательнее к подписям!
Программирование #
Уроки по теме:
- Закон Ома - как и почему работает потенциометр
- ADC, аналоговый сигнал
Вывод значений в порт
/*
Потенциометры на 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
- Обратная связь – сообщить об ошибке в уроке или предложить дополнение по тексту ([email protected])
- Поддержать автора за работу над уроками