loox » 21 фев 2018, 15:04
Затруднительно дать Вам совет, поскольку не мне неизвестна целевая задача программы.
Все что Вы вложили в программу исправно работает.
По поводу "пересечения чисел" - они будут "пересекаться", поскольку так заложено программной.
1. Использование - kryt = map(kryt, 0, 1023, 0, 255);
фактически Вы делите значение kryt на 4, для приведения его к диапазону 0-255
Возьмем Ваше значение = 192
Помним, что: int kryt; //Хранение значений переменного резистора от 0 до 255
Например:
Чему будет равно значение kryt = analogRead(krytilka), если map(kryt, 0, 1023, 0, 255)= 192
192*4 = 768
когда, измениться значение map(kryt, 0, 1023, 0, 255)?, вот когда 191*4 = 764 и 193*4 = 772
в диапазоне измерений от 764 до 772 Вы будете получать одно и то же значение 192, так как kryt имеет тип int.
сторока kryt2 = constrain(kryt2, 0, 255) - вероятно избыточна.
со строками kryt = map(kryt, 0, 1023, 10, 35);
kryt = constrain(kryt, 10, 35);
аналогично.
2. Цикл измерения, то есть одно значение Вы получаете каждые 30 mc.
.....
Serial.println(kryt); delay(30);}
По отношению к скорости вращения (не знаю как сформулировать) потенциометра - это автомобиль и пешеход. Естественно Вы будете получать + п.1 множество одинаковых значений.
Я так и понял, что Вы хотите получить
Спасибо loox