варьироваться от нуля до максимума.
Сам переменный резистор может быть круглым, либо в виде слайдера:
Точное значение резистора не так уж важно, он может быть 5КОм, 10КОм, 50КОм - в делителе напряжения важно соотношение сопротивлений, а не их абсолютное значение.
Дополним таймер из предыдущей главы переменным резистором, которым можно будет регулировать интервал в диапазоне от 0 до 10 минут. Для подключения резистора нужно использовать входы, помеченные как Analog input, в нашем случае A3.
Теперь мы можем считывать положение ручки резистора, используя функцию analogRead. Есть лишь одна небольшая тонкость - analogRead возвращает значения от 0 до 1024. Чтобы преобразовать их в интервал от 0 до 600 секунд, мы домножаем полученные значения на 600/1024. Тип unsigned long используется потому, что максимальное значение 1024*600 = 614400, что уже превосходит диапазон значений int, который составляет в Arduino -32768...32767.
Код программы целиком:
int buttonPin = 2;
int analogPin = 3;
int ledPin = 13;
void setup() {
// Вывод настроен как “выход”
pinMode(ledPin, OUTPUT);
// Вывод настроен как “вход”
pinMode(buttonPin, INPUT);
}
void loop() {
// Читаем положение потенциометра (0..1023)
int pos = analogRead(analogPin);
unsigned long time_sec = pos*600/1024;
// Ждем пока кнопка будет нажата
while (digitalRead(buttonPin) == HIGH) delay(100);