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


Эксперимент 17. Индикатор уровня

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

В левой части платы конструктора имеется 6 светодиодов подходящих по цвету для использования в качестве шкалы. Когда уровень сигнала в пределах нормы, он отображается зеленым, когда он достаточно высокий— желтым, а при перегрузке загорается красный.

Подключим все 6 светодиодов к микроконтроллеру.

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

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

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

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

Exp17.py
  1. from machine import Pin
  2. _init()
  3.  
  4. ledPins = [5,12,13,14,15,16]
  5. leds = []
  6.  
  7. for pinNum in ledPins:
  8. leds.append(Pin(pinNum, Pin.OUT))
  9.  
  10. adc = machine.ADC(0)
  11.  
  12. def ledOff():
  13. for led in leds:
  14. led.off()
  15.  
  16. def ledOn(count):
  17. for i in range(count):
  18. led = leds[i]
  19. led.on()
  20.  
  21. while True:
  22. value = adc.read()
  23. ledOff()
  24.  
  25. if value in range(0,170):
  26. ledOn(1)
  27. elif value in range(171,340):
  28. ledOn(2)
  29. elif value in range(341,510):
  30. ledOn(3)
  31. elif value in range(511,680):
  32. ledOn(4)
  33. elif value in range(681,850):
  34. ledOn(5)
  35. elif value in range(851,1023):
  36. ledOn(6)

В коде программы много нового. Давайте разбираться.

  1. ledPins = [5,12,13,14,15,16]

Ранее мы уже много раз сталкивались с переменными. Это был некий контейнер для хранения какого либо значения или объекта. Например, мы записывали номер пина в переменную. Теперь настала пора познакомиться с массивами. Массив, это тоже контейнер, как и переменная, но он может хранить не одно значение, а много. Если переменную можно было представить как коробку, в которую можно что-то положить, то переменная, это полка шкафа, на которую можно поставить несколько коробок со значениями.

В строке 4 мы объявили массив ledPins с помощью прямоугольных скобок и сразу записали в него 6 значений. Эти значения номера выводов, к которым подключены светодиоды. Важным свойством массива является то, что каждый элемент имеет свой номер. Номера элементов массива начинаются с 0. Так если в массиве 3 элемента, то у них будут номера 0, 1 и 2.