доброго времени суток хочу сделать флюгер пытаюсь разобраться с энкодером проблема в том что при повороте на один щелчок программа выдает 3 или 4 показания (как будто я повернул 3 или 4 раза) первое показание правильное а последующие выдает всегда "1" код на lua Код (Text): pin_a = 6 pin_b = 5 n = 0 gpio.mode(pin_a,gpio.INT,gpio.PULLUP) gpio.mode(pin_b,gpio.INPUT,gpio.PULLUP) function napravlenie() n = n+1 print(n.."поворот".." b= "..gpio.read(pin_b)) end gpio.trig(pin_a, "down", napravlenie)
это не проблема, а штатная работа энкодера. Поэтому надо разобраться, как работает инкрементальный энкодер, а потом уже начинать писать.
как работает энкодер я разобрался я отслеживаю переход к единице (или нолю) на pin_A и проверяю что в момент перехода на pin_B если показания совпадают то вращение в одном направлении, а если разные то в противоположном. Что я делаю не так и где неправильно понял принцип работы подскажите пожалуйста