Это старая версия документа!


Эксперимент 27. Счетчик

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

Схема эксперимента

Добавим кнопку к схеме собранной ранее. Рисунок 1. Электрическая принципиальная схема эксперимента

Токоограничительные резисторы обязательны!

Рисунок 2. Монтажная схема эксперимента

Программный код эксперимента

Exp25.py
  1. from machine import Pin
  2. import time
  3. _init()
  4.  
  5. button = Pin(0, Pin.IN)
  6. state_old = 1
  7. count = 0
  8.  
  9. segments = [14, 13, 4, 5, 12, 16, 15] # ABCDEFG
  10.  
  11. digits = [
  12. [1, 1, 1, 1, 1, 1, 0], # 0
  13. [0, 1, 1, 0, 0, 0, 0], # 1
  14. [1, 1, 0, 1, 1, 0, 1], # 2
  15. [1, 1, 1, 1, 0, 0, 1], # 3
  16. [0, 1, 1, 0, 0, 1, 1], # 4
  17. [1, 0, 1, 1, 0, 1, 1], # 5
  18. [1, 0, 1, 1, 1, 1, 1], # 6
  19. [1, 1, 1, 0, 0, 0, 0], # 7
  20. [1, 1, 1, 1, 1, 1, 1], # 8
  21. [1, 1, 1, 1, 0, 1, 1], # 9
  22. ]
  23.  
  24. def draw_time(digit):
  25. for el in enumerate(digits[digit]):
  26. if (el[1]):
  27. Pin(segments[el[0]]).on()
  28. else:
  29. Pin(segments[el[0]]).off()
  30.  
  31.  
  32. while True:
  33. new_state = button.value()
  34. if new_state == 0 and state_old == 1:
  35. count = count + 1
  36. if count > 9:
  37. count = 0
  38. state_old = new_state
  39. draw_time(count)