Аналоговые выводы. Потенциометр
Аналоговые выводы
Analog In — порты, принимающие аналоговый сигнал от датчиков, работают на вход. Данные порты также можно запрограммировать, как цифровые входы/выходы.

Рисунок 1. Порты Analog In
Аналоговый сигнал может меняться во времени, он непрерывен, а цифровой меняется только скачками (два положения 0В или 5В).

Рисунок 2. Аналоговый и цифровой сигналы
Для считывания сигналов с аналоговых вводов используется команда analogRead(pin). Эта команда возвращает значение от 0, при 0В на аналоговом пине, до 1023 при 5В на аналоговом пине.
Потенциометр
Потенциометр - это переменный резистор, т.е. его сопротивление меняется в зависимости от положения ручки. Крайнее левое положение соответствует минимальному использованию его внутреннего сопротивления, крайнее правое - максимальному.

Рисунок 3. Потенциометр
Вот он выглядит потенциометр в реальности и в Tinkercad. У него 3 вывода. Два крайних - это +5V и GND (не имеет значения какой слева, а какой справа). Средний вывод подключается к аналоговому пину и выдает сигнал от 0 до 1023.

Рисунок 4. Потенциометр в реальности и в Tinkercad
Считываем показания в монитор порта
Собираем схему с потенциометром

Рисунок 5. Схема с потенциометром
Программа для вывода показаний потенциометра в монитор порта
#define potenciometr A0 //создаем переменную для потенциометра
int potValue; //создаем переменную для хранения показаний потенциометра
void setup(){
pinMode(potenciometr, INPUT); //настраиваем пин, к которому подключен потенциометр, как вход
Serial.begin(9600); //настраиваем работу с монитором порта
}
void loop(){
potValue = analogRead(potenciometr); //считываем показания потенциометра и сохраняем в переменную potValue
Serial.print("Potenciometr value: "); //выводим в монитор порта фразу "Potenciometr value: "
Serial.println(potValue); //выводим в монитор порта значение переменной potValue и ждем 100 миллисекунд
delay(100);
}
Изменяем яркость светодиода потенциометром
Собираем схему с потенциометром и светодиодом

Рисунок 6. Схема с потенциометром и светодиодом
Программа для изменения яркости светодиода потенциометром
#define potenciometr A0 //создаем переменную для потенциометра
#define led 3 //создаем переменную для светодиода
int potValue; //создаем переменную для хранения показаний потенциометра
void setup(){
pinMode(potenciometr, INPUT); //настраиваем пин, к которому подключен потенциометр, как вход
pinMode(led, OUTPUT); //настраиваем пин, к которому подключен светодиод, как выход
Serial.begin(9600); //настраиваем работу с монитором порта
}
void loop(){
potValue = analogRead(potenciometr); //считываем показания потенциометра и сохраняем в переменную potValue
potValue = potValue/4; //делим значение переменной на 4
analogWrite(led, potValue); //задаем значение переменной potValue в качестве яркости светодиода
Serial.print("Potenciometr value: "); //выводим в монитор порта фразу "Potenciometr value: "
Serial.println(potValue); //выводим в монитор порта значение переменной potValue и ждем 100 миллисекунд
delay(100);
}
Задания
Сделайте аналоговый калькулятор. Соберите схему с платой Arduino и двумя потенциометрами, подключенными в пинам А0 и А1. Запрограммируйте вывод в монитор порта значений, считанных с потенциометров, разделенных на 10 и округленных. Также выведите в монитор порта сумму этих значений.
Усложните аналоговый калькулятор. Соберите схему с платой Arduino, двумя потенциометрами, подключенными в пинам А2 и А3, и кнопкой, подключенной к пину 5. Запрограммируйте вывод в монитор порта значений, считанных с потенциометров, разделенных на 10 и округленных. Также выведите в монитор порта результат арифметической операции между этими числами. Выбор одной из четырех арифметических операций должен осуществляться с помощью кнопки.