Здравствуйте дяденьки и тетеньки)Может кто подскажет начинающему?) Стоит задача: Считывать значение с аналогового входа к которому подключен потенциометр. Когда напряжение на этом входе доходит до нужного интервала значений - включить светодиод. если нет то опрашивать дальше. Интервал значений напряжений расположить допустим от 3 до 4 вольт,если в этом интервале появляется напряжение то включить светодиод. Немного не пойму как задать этот интервал чисел с которым я буду сравнивать переменную аналогового входа,создать массив с числами или как? Заранее благодарен,жму руку
Малыш, для этого есть функция map Код (Text): int val = analogRead(A0); val = map(val, 0, 1023, 0, 5); if(val > 3 && val <4) { digitalWrite(led, HIGH); } else { digitalWrite(led, LOW); }
Большое большое спасибо! Если сделать преобразование в самом начале программы void setup ,то какая будет область видимости val? в любом loop?в любой области программы будут уже конвертированные значения?А если мне нужно создать несколько конвертированных значений,допустим от 0до5 и от 100 до 255,и нужно чтоб эти значения хранились в разных переменных например bute znachenie1 и bute znachenie2,как присвоить конвертированным значениям переменную?причем чтоб эти переменные были видны везде в программе,а не только в каком то частном цикле?Чтоб каждый раз не делать преобразования,а просто вызывать нужную переменную? int val = analogRead(A0); void setup() { val = map(val, 0, 1023, 0, 5); pinMode(13, OUTPUT); } void loop() { if (val > 3 && val <4) { digitalWrite(13, HIGH); } else { digitalWrite(13, LOW); } }
сетап выполняется только один раз в начале программы, если туда поместить обработку потенциометра, то в цикле будет только начальное значение. вы мечтаете одним потом менять две переменные?
Код (Text): int val = analogRead(A0); int val1; int val2; val1 = map(val, 0, 1023, 0, 5); val2 = map(val, 0, 1023, 0, 255);