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

потенциометр Программирование

В данной статье мы научимся работать с аналоговыми портами. А именно оцифровывать и измерять аналоговый сигнал при помощи потенциометра.

Потенциометр представляет собой переменный резистор, который используется для регулирования уровня различных параметров. Например, кнопка переключения режимов стирки на стиральной машинке, кнопка увеличения звука на радио. По сути, потенциометр-простое механическое устройство, обеспечивающее различное сопротивление при повороте его вала.

1 2Аналоговые порты могут измерять напряжение от 0 до 5 Вольт. Порты A0-A5 могут работать в качестве цифровых. То есть у нас присутствует возможность подключить к ним цифровые датчики, кнопки, светодиоды и реле(кроме A6 и A7). Для измерения напряжения ардуино сравнивает сигнал на аналоговом пине с напряжением на пине 5В, либо с другим источником опорного напряжения. Аналоговое напряжение оцифровывается для того чтобы мы могли работать с ним дальше при помощи АЦП(аналогово-цифрового-преобразователя).

Как происходит оцифровка аналогового сигнала

АЦП имеет разрядность 10 бит, то есть если на вход в АЦП подается напряжение от 0 до 5 Вольт, то на выходе из АЦП мы получим 2^10=1024 значения от 0 до 1023, поскольку отсчет идет с 0. Чтобы получить напряжение из цифрового значения нужно разделить сигнал с АЦП на 1024 и умножить на 5. Напряжение на пине 5 Вольт не совсем равно 5 Вольтам при работе от USB. Получение измерения напряжения из-за этого являются неточными.

2

Аналоговые порты используются для получения значений с аналоговых датчиков, таких как датчик звука, света и другие, и конечно же для снятия показаний с крутильных потенциометров. Как специально созданных для движковых, так и джойстиков. Плата поддерживает как потенциометры, созданные специально для неё, так и любые другие. Устройство потенциометра следующее:

Любой потенциометр имеет 3 ноги, это обусловлено самим устройством потенциометра — крайние ноги являются крайними, а вот центральная-”бегает” между ними, изменяя сопротивление. Подключение производится следующим образом:

  1. Крайние ноги подключаются к земле и к пину 5 Вольт. Не имеет значения какую из ног нужно подключать к земле, а какую к 5В
  2. Средняя нога подключается к одному из 7(A0-A7) аналоговых пинов.

Потенциометр подходит разных номиналов, желательно на несколько кОм. Самые дешевые и качественные в применении потенциометры-китайского производства на 10 кОм.

0 6

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

Для удобства используем дефайн. Подключение происходит при помощи следующей программы:

#define potent_pin 0 // в данный пин подключена средняя нога потенциометра,

// используем дефайн для упрощения работы

void setup() {

Serial.begin(9600);

}

void loop() {

Serial.println( analogRead(potent_pin) ); // analogRead(pin);-возвращает значение 0… 1023 в зависимости от напряжение на пине от 0 до опорного напряжение (грубо 5 В)

delay(30);

}

Значения приняты потенциометром, при повороте ручки прибора происходит плавное возрастание или убывание значения от 0 до 1023 с шагом в единицу. Данное явление называется аналогово-цифровым преобразованием. Напряжение от 0 до опорного напряжения преобразуется в величину от 0 до 1023. Потенциометр можно использовать как ручку регулировки чего-либо с количеством шагом чуть больше 1000. Точно таким же образом подключаются и работают движковый потенциометр и джойстик. Получается, что для того, чтобы чем то управлять, мы просто берем полученное значение, и подставляем его туда, куда нужно. Однако не всегда значения от 0 до 1023 удобны, поэтому их можно конвертировать при помощи функции map и constrain:

map(val, min, max, new_min, new_max), где:

val-входная(конвертируемая) величина, min, max-минимальное и максимальное значение на входе в полный оборот ручки, new_min, new_max-мин. и макс. значения на выходе.

Проще говоря, map возвращает величину в новом диапазоне.

constrain(val, min, max); — ограничить диапазон переменной val до min и max

Как правило, эти функции используются в паре, вторая дополняет первую

#define potent_pin 0 // в данный пин подключена средняя нога потенциометра,

// используем дефайн для упрощения работы

int val; // переменная для хранения значения с датчиков

void setup() {

Serial.begin(9600);

}

void loop() {

val = analogRead(potent_pin); // запоминаем показания

// в функцию map подается 5 аргументов

map(val, 0, 1023, 0, 10); // меняем диапазон на 0-10 на выходе

// если мы выйдем из диапазона, то и выходные значения из него выйдет. функция ограничивает диапазон изменения до заданного

constrain(val, 0, 10);

delay(30);

}

При вращении ручки получаем значения от 0 до 10. Данным способом можно регулировать яркость, скорость вращения, мощность нагрева, силу удержания электромагнита, что делается при помощи ШИМ-сигнала.

3 1

При превышении какого-либо порового значения с датчика, можно воспользоваться простым условием if:

#define potent_pin 0 // в данный пин подключена средняя нога потенциометра,

// используем дефайн для упрощения работы

int val; // переменная для хранения значения с датчиков

void setup() {

Serial.begin(9600);

}

void loop() {

val = analogRead(potent_pin); // запоминаем показания

val = map(val, 0, 1023, 0, 10); // меняем диапазон на 0-10 на выходе

val = constrain(val, 0, 10); // ограничиваем диапазон

if (val > 5) Serial.println(“Больше 5”): // если больше 5, то выводим информирование об этом

else

Serial.println(“Меньше 5”);

delay(30);

}

Данное программное представление позволяет поймать момент о превышении уровня с датчика звука или светового потока с датчика света.

С помощью потенциометра можно менять яркость свечения светодиода. Для этого подключим его к цифровому ШИМ порту.

int lighl; // отвечает за яркость свечения

void setup () {

pinMode(3, OUTPUT);

}

void loop () {

lightl = round(analogRead(A0) / (1023/255)); // коэффициент максимального значения потенциометра относительно макс значения цифрового порта

analogWrite(3, lightl);

delay(100);

}

После запуска программы при “кручении” ручки потенциометра увеличивается яркость светодиода.

В данной статье мы изучили то, как подключить потенциометр к плате Ардуино, научились менять диапазон платы, а также научились менять яркость светодиода.

Оцените статью
Информация об Ардуино
Добавить комментарий

Нажимая на кнопку "Отправить комментарий", я принимаю политику конфиденциальности.