"Вы читаете о роботах и программировании и думаете: «Было бы здорово сделать что-то подобное самому!» Теми, кем эта идея овладевает чуть больше просто мыслей смотрят кто и как делал своего робота. Читают статьи, смотрят видео. На картинках все понятно. В видеороликах тоже обычно показываются уже готовые продукты, а также сжато показываются технологии их изготовления. И вроде бы то же всё понятно: отпилил, прикрутил, припаял, соединил, запрограммировал вон на той программе вот этим кодом."

среда, 10 марта 2021 г.

Подключение потенциометра к Ардуино

 

(по материалам 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);         
// меняем яркость светодиода
}

 Для регулировки яркости светодиода с помощью переменного резистора, следует считывать данные с данного радиоэлемента, подключив его к аналоговому входу. В зависимости от поворота ручки потенциометра необходимо в линейной зависимости менять яркость светодиода. Это сделать довольно просто на микроконтроллере, схема подключения переменного резистора с примером кода, размещена далее.

 

Пояснения к коду:

  1. светодиод подключается к аналоговому выходу с ШИМ сигналом;
  2. данные с порта 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); 
// передаем значения для сервопривода
}

Пояснения к коду:

  1. функция map пропорционально переносит значение переменной val из диапазона значений от 0 до 1023 в новый диапазон от 0 до 180;
  2. в самых крайних положениях (0 и 180 градусов) сервомотор может «дергаться».