// 1. Объявление переменных
const int analogInPin = A0; // Аналоговый вход, к которому подключен потенциометр (выход Out)[cite: 21]
const int analogOutPin = 9; // Цифровой вывод, к которому подключен светодиод (LED -> D9)[cite: 21]
int sensorValue = 0; // Переменная для чтения сырого значения с АЦП (0 - 1023)[cite: 21]
int outputValue = 0; // Переменная для выходного сигнала на светодиод (0 - 255)[cite: 21]
void setup() {
// 2. Инициализация последовательного порта на скорости 9600 бод[cite: 21]
Serial.begin(9600);
}
void loop() {
// 4. Чтение и преобразование значений
sensorValue = analogRead(analogInPin); // Читаем значение с потенциометра (0...1023)
// Масштабируем диапазон АЦП (0-1023) под диапазон ШИМ для светодиода (0-255)[cite: 22]
outputValue = map(sensorValue, 0, 1023, 0, 255);
analogWrite(analogOutPin, outputValue); // Записываем полученное значение на светодиод[cite: 22]
// Вычисление напряжения в вольтах по формуле из методички[cite: 22]
float voltage = sensorValue * (5.0 / 1023.0);
// 5. Вывод результатов в монитор порта[cite: 21, 22]
Serial.print("Potenciometr value = ");
Serial.print(sensorValue);
Serial.print("\t output = ");
Serial.print(outputValue);
Serial.print("\t Voltage = ");
Serial.print(voltage);
Serial.println(" V");
// 6. Пауза между измерениями (50 мс)[cite: 22]
delay(50);
}