Ограничение показаний энкодера
- Войдите на сайт для отправки комментариев
Вс, 10/12/2017 - 22:39
Имеется энкодер от магнитолы, подключенный к ардуино. С помощью энкодера увеличеватся число от 0 до 26. Реализовать ограничение получилось, но если, скажем, при 0 сделать 10 щелчков на уменьшение, то чтобы получить 1, нужно сделать 11 щелчков на увеличение. Как программно реализовать, чтобы не было этого? Заранее спасибо!
Насколько понимаю у вас переменная уходит в минус, поэтому нужно сделать ее беззнаковой
http://arduino.ru/Reference/UnsignedInt
И крутите скоко хотите - ЭТОГО точно не будет.
В обработчике энкодера проверяйте свою переменную -
если она равна 0, то ничего не делать, если больше 0, то уменьшать.
И наоборот, на увеличение - если 26, игнорировать, если меньше 26 - увеличить.
Ещё вариант - закольцовывать значения:
Это значит, что вы "организовали ограничение" неправильно. При правильном у вас значение не должно уходить ниже нуля - и значит при первом же щелчке энкодера обратно должно получаться 1, потом 2 и тд
А как правильно? Можете подсказать?
в сообщениях #3 и #4
Код который был предложен не совсем верен. Мне нужно, чтобы число изменялось в границах от 0 до 26. Т.е. 0 1 2 3 4 5 6... и т.д. А не только 0 и 26
У меня получилось так, но присутствует проблема описанная в первом посте
Проблема решена. Всем спасибо!