Пишем программу для подключения энкодера к плате ESP8266 в среде программирования microPython.

страница в разработке

В данном уроке мы с Вами напишем один из вариантов алгоритма для для подключения энкодера на языке программирования microPython.
У нас с Вами будет самый простой энкодер:

Подтягивающие резисторы мы включим внутри микроконтроллера и подключим канал А к ножке 4, а канал В к ножке 5, контакт С посадим на землю.

Так как при вращении энкодера у нас у нас по очереди на ножках появляются логические нули и единицы, нам необходимо их считать и уже по их последовательности понять в какую сторону вращается энкодер, что бы выполнить те или иные действия. При этом нам так же нужно будет понимать, когда энкодер не вращается. Для решения данной задачи, нам нужно будет запоминать старое значение на выходе ножек и сравнивать с новыми, если они отличаются — энкодер поменял свое значение, если они остались без изменений — энкодер стоит на месте.

Программный код:

from machine import Pin
from time import sleep
import utime

EncA = Pin(5, Pin.IN, Pin.PULL_UP)
EncB = Pin(4, Pin.IN, Pin.PULL_UP)

C = 0
i = 0
x = 0
C_old = 0

while True:
  if EncA.value() == 0:
    A = 1
  else:
    A = 0
  if EncB.value() == 0:
    B = 1
  else:
    B = 0
  if A == 0 and B == 0:
    n = 0
    x = 0
  if A == 1 and B == 1:
    n = 1
    x = 0
  if n == 0 and A == 0 and B == 1 and x == 0:
    C = C + 1
    x = 1
  if n == 0 and A == 1 and B == 0 and x == 0:
    C = C - 1
    x = 1
  if(C_old != C):
     print("Val =",(C))
     C_old = C
  utime.sleep(0.01)