Различия

Показаны различия между двумя версиями страницы.

Ссылка на это сравнение

Предыдущая версия справа и слеваПредыдущая версия
Следующая версия
Предыдущая версия
products:laboratory_iot:exp17 [2020/05/14 16:48] – [Программный код эксперимента] labuser29products:laboratory_iot:exp17 [2024/11/14 11:59] (текущий) – [Эксперимент 17. Индикатор уровня] labuser30
Строка 3: Строка 3:
 В технике часто применяются индикаторы уровней на светодиодной шкале. Например в звукозаписывающем оборудовании, как индикаторы уровня громкости динамиков или микрофона. Давайте тоже соберем такой индикатор. В технике часто применяются индикаторы уровней на светодиодной шкале. Например в звукозаписывающем оборудовании, как индикаторы уровня громкости динамиков или микрофона. Давайте тоже соберем такой индикатор.
  
-В левой части платы конструктора имеется 6 светодиодов подходящих по цвету для использования в качестве шкалы. Когда уровень сигнала в пределах нормы, он отображается зеленым, когда он достаточно высокий— желтым, а при перегрузке загорается красный.+В левой части платы конструктора имеется 6 светодиодов подходящих по цвету для использования в качестве шкалы. Когда уровень сигнала в пределах нормы, он отображается зеленым, когда он достаточно высокий — желтым, а при перегрузке загорается красный.
  
 Подключим все 6 светодиодов к микроконтроллеру. Подключим все 6 светодиодов к микроконтроллеру.
Строка 61: Строка 61:
 </code> </code>
  
 +==== Массивы ====
 Ранее мы уже много раз сталкивались с //переменными//. Это был некий контейнер для хранения какого либо значения или объекта. Например, мы записывали номер пина в переменную. Теперь настала пора познакомиться с //массивами//. Массив, это тоже контейнер, как и переменная, но он может хранить не одно значение, а много. Если переменную можно было представить как коробку, в которую можно что-то положить, то переменная, это полка шкафа, на которую можно поставить несколько коробок со значениями. Ранее мы уже много раз сталкивались с //переменными//. Это был некий контейнер для хранения какого либо значения или объекта. Например, мы записывали номер пина в переменную. Теперь настала пора познакомиться с //массивами//. Массив, это тоже контейнер, как и переменная, но он может хранить не одно значение, а много. Если переменную можно было представить как коробку, в которую можно что-то положить, то переменная, это полка шкафа, на которую можно поставить несколько коробок со значениями.
  
Строка 143: Строка 144:
 Здесь все просто. Мы считываем значение напряжения с помощью АЦП, выключаем все светодиоды и анализируем сколько светодиодов нужно зажечь. Мы помним, что при 0 вольт результатом преобразования АЦП является 0, а при напряжении питания — 1023. Разобьем этот диапазон на 6 одинаковых интервалов. Здесь все просто. Мы считываем значение напряжения с помощью АЦП, выключаем все светодиоды и анализируем сколько светодиодов нужно зажечь. Мы помним, что при 0 вольт результатом преобразования АЦП является 0, а при напряжении питания — 1023. Разобьем этот диапазон на 6 одинаковых интервалов.
  
-Если сигнал в интервале от 0 до 170, то мы должны включить 1 светодиод. Если сигнал в интервале от 171 до 340 — зажигаем 2 светодиода и т.д. +Если сигнал в интервале от 0 до 170, то мы должны включить 1 светодиод. Если сигнал в интервале от 171 до 340 — зажигаем 2 светодиода и т.д. С помощью оператора ''in'' проверяется попадание переменной в указанный интервал. Если это так, то выражение истинно и оператор ''if'' выполняет код для соответствующего условия. 
 + 
 +==== Дополнительное задание ==== 
 +<WRAP center round tip 60%> 
 +  * Попробуй изменить интервалы, чтобы добиться более резкого или плавного роста показаний шкалы 
 +  * Измени 1 строку в программе, чтобы светодиодная шкала начинала светиться не снизу-вверх, а наоборот 
 +</WRAP>