Показаны различия между двумя версиями страницы.
Предыдущая версия справа и слеваПредыдущая версияСледующая версия | Предыдущая версия | ||
products:laboratory_iot:exp17 [2020/05/14 16:43] – [Программный код эксперимента] labuser29 | products:laboratory_iot:exp17 [2024/11/14 11:59] (текущий) – [Эксперимент 17. Индикатор уровня] labuser30 | ||
---|---|---|---|
Строка 3: | Строка 3: | ||
В технике часто применяются индикаторы уровней на светодиодной шкале. Например в звукозаписывающем оборудовании, | В технике часто применяются индикаторы уровней на светодиодной шкале. Например в звукозаписывающем оборудовании, | ||
- | В левой части платы конструктора имеется 6 светодиодов подходящих по цвету для использования в качестве шкалы. Когда уровень сигнала в пределах нормы, он отображается зеленым, | + | В левой части платы конструктора имеется 6 светодиодов подходящих по цвету для использования в качестве шкалы. Когда уровень сигнала в пределах нормы, он отображается зеленым, |
Подключим все 6 светодиодов к микроконтроллеру. | Подключим все 6 светодиодов к микроконтроллеру. | ||
Строка 61: | Строка 61: | ||
</ | </ | ||
+ | ==== Массивы ==== | ||
Ранее мы уже много раз сталкивались с // | Ранее мы уже много раз сталкивались с // | ||
Строка 119: | Строка 120: | ||
led.on() | led.on() | ||
</ | </ | ||
+ | |||
+ | Теперь у нас есть 2 функции '' | ||
+ | |||
+ | <code python [enable_line_numbers=" | ||
+ | while True: | ||
+ | value = adc.read() | ||
+ | ledOff() | ||
+ | |||
+ | if value in range(0, | ||
+ | ledOn(1) | ||
+ | elif value in range(171, | ||
+ | ledOn(2) | ||
+ | elif value in range(341, | ||
+ | ledOn(3) | ||
+ | elif value in range(511, | ||
+ | ledOn(4) | ||
+ | elif value in range(681, | ||
+ | ledOn(5) | ||
+ | elif value in range(851, | ||
+ | ledOn(6) | ||
+ | </ | ||
+ | |||
+ | Здесь все просто. Мы считываем значение напряжения с помощью АЦП, выключаем все светодиоды и анализируем сколько светодиодов нужно зажечь. Мы помним, | ||
+ | |||
+ | Если сигнал в интервале от 0 до 170, то мы должны включить 1 светодиод. Если сигнал в интервале от 171 до 340 — зажигаем 2 светодиода и т.д. С помощью оператора '' | ||
+ | |||
+ | ==== Дополнительное задание ==== | ||
+ | <WRAP center round tip 60%> | ||
+ | * Попробуй изменить интервалы, | ||
+ | * Измени 1 строку в программе, | ||
+ | </ | ||
+ |