(по материалам https://роботехника18.рф)
Потенциометр Ардуино (переменный резистор) служит для регулировки или настройки различных параметров в электрической цепи — мощности, напряжения, громкости звука и т.д. Рассмотрим, как подключить переменный резистор к Ардуино правильно, и представим несколько примеров программ для регулировки яркости светодиода и угла поворота сервомотора подключенных к микроконтроллеру Arduino.
Потенциометр Ардуино — что это такое
Переменный резистор в электрической цепи с платой Arduino Uno или Nano используется в качестве делителя напряжения.
На выводы потенциометра подается напряжение (5V и GND), а средний вывод
радиоэлемента является подвижным контактом. При вращении ручки
потенциометра, напряжение сигнала на среднем выводе будет меняться от
своего максимального значения (5 Вольт) до нуля.
Потенциометры бывают разных типов. По характеру изменения сопротивления они делятся на: линейные (сопротивление меняется в прямой зависимости), логарифмические и экспоненциальные (сопротивление меняется с разной интенсивностью). По типу корпуса бывают: одно оборотные, многооборотные, ползунковые и т.д. По назначению: переменные и подстроечные резисторы.
void setup() { pinMode(10, OUTPUT);
// подключаем светодиод к пин 10 pinMode(A1, INPUT);
// к входу A1 подключаем потенциометр } void loop() { int val = analogRead(A1);
// считываем данные с порта A1
val = val / 4;
// делим значения на 4 analogWrite(10, val);
// меняем яркость светодиода
}
Для регулировки яркости светодиода с помощью переменного резистора, следует считывать данные с данного радиоэлемента, подключив его к аналоговому входу. В зависимости от поворота ручки потенциометра необходимо в линейной зависимости менять яркость светодиода. Это сделать довольно просто на микроконтроллере, схема подключения переменного резистора с примером кода, размещена далее.
Пояснения к коду:
- светодиод подключается к аналоговому выходу с ШИМ сигналом;
- данные с порта A1, которые находятся в диапазоне 0…1023, мы делим на 4 и получаем диапазон от 0 до 255 для изменения яркости светодиода.
Скетч. Подключение потенциометра и сервопривода
Сервомотор подключается к аналоговым выходам Arduino UNO. В скетче использована функция map, которая пропорционально переносит значение переменной из текущего диапазона значений в новый диапазон. Таким образом, значения с потенциометра в диапазоне 0…1023, мы переводим их в новый диапазон от 0 до 180 (угол поворота сервомотора). Соберите схему и загрузите следующий скетч.
#include <Servo.h>
// подключаем библиотеку для сервопривода Servo servo;
// объявляем переменную servo типа "servo" void setup() { servo.attach(10);
// привязываем сервопривод к порту 10 pinMode(A1, INPUT);
// к входу A1 подключаем потенциометр } void loop() { int val = analogRead(A1);
// считываем данные с порта A1 val = map(val, 0, 1023, 0, 180);
// переводим val в новый диапазон servo.write(val);
// передаем значения для сервопривода
}
Пояснения к коду:
- функция
map
пропорционально переносит значение переменнойval
из диапазона значений от 0 до 1023 в новый диапазон от 0 до 180; - в самых крайних положениях (0 и 180 градусов) сервомотор может «дергаться».