Ложные срабатывания энкодера

Тема в разделе "ESP8266, ESP32", создана пользователем BlakSoft, 8 июн 2021.

  1. BlakSoft

    BlakSoft Нуб

    доброго времени суток хочу сделать флюгер
    пытаюсь разобраться с энкодером
    проблема в том что при повороте на один щелчок программа выдает 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)
    флюгер.png
     
  2. parovoZZ

    parovoZZ Гуру

    это не проблема, а штатная работа энкодера. Поэтому надо разобраться, как работает инкрементальный энкодер, а потом уже начинать писать.
     
  3. BlakSoft

    BlakSoft Нуб

    как работает энкодер я разобрался
    я отслеживаю переход к единице (или нолю) на pin_A и проверяю что в момент перехода на pin_B если показания совпадают то вращение в одном направлении, а если разные то в противоположном. Что я делаю не так и где неправильно понял принцип работы подскажите пожалуйста
    енкодеР.gif
     
  4. wadim_k

    wadim_k Нерд

    Дребезг контактов. Загугли.