Различия

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

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

Предыдущая версия справа и слеваПредыдущая версия
Следующая версия
Предыдущая версия
products:aruno:exp7 [2020/05/28 10:25] alexnikproducts:aruno:exp7 [2020/08/28 11:46] (текущий) alexnik
Строка 23: Строка 23:
 void setup() { void setup() {
   pinMode(Led, OUTPUT); // инициализируем пин как выход   pinMode(Led, OUTPUT); // инициализируем пин как выход
-}+ }
    
 void loop() { void loop() {
Строка 30: Строка 30:
      analogWrite(Led, brightness);  // формируем сигнал ШИМ на пине      analogWrite(Led, brightness);  // формируем сигнал ШИМ на пине
      delay(5); // создаем задержку 5 миллисекунд      delay(5); // создаем задержку 5 миллисекунд
-  }+   }
   // теперь производим уменьшение значения переменной (уменьшаем яркость)   // теперь производим уменьшение значения переменной (уменьшаем яркость)
   for (int brightness = 255; brightness >= 0; brightness --) {    for (int brightness = 255; brightness >= 0; brightness --) { 
      analogWrite(Led, brightness);       analogWrite(Led, brightness); 
      delay(5);      delay(5);
-  +   
-}+ }
 </file> </file>
  
-Как мы уже знаем, у сигнала с широтно- импульсной модуляцией есть два параметра- частота и коэффициент заполнения(скважность). Частота сигнала ШИМ в контроллере около 500 герц, а коэффициент заполнения сигнала можно задавать с помощью функции **void analogWrite(pinval)**, где:\\ +Как мы уже знаем, у сигнала с широтно- импульсной модуляцией есть два параметра- частота и коэффициент заполнения(скважность). Частота сигнала ШИМ в контроллере около 500 герц, а коэффициент заполнения сигнала будем задавать с помощью функции ''analogWrite(Ledbrightness)'', где:\\ 
-  * pin – номер вывода для генерации ШИМ сигнала. +  * Led – номер вывода для генерации ШИМ сигнала. 
-  * val – коэффициент заполнения ШИМ.+  * brightness – коэффициент заполнения ШИМ. 
 +Для плавного изменения яркости светодиода необходимо изменять коэффициент заполнения, для этого мы будем использовать оператор цикла **for()**\\
  
-Настройки закончили, теперь будем управлять яркостью светодиода:+<WRAP center round info 60%> 
 +Операторы цикла используется для повторения блока операторов, заключенных в фигурные скобки.\\ 
 +[[http://arduino.ru/Reference/For.html|Подробнее о цикле For ]] 
 +</WRAP>
  
-<code python [enable_line_numbers="2", start_line_numbers_at="9"]> +В условии цикла **for** мы записали, чтобы значение нашей переменной **brightness** увеличивалась от **0** до **255**, с шагом 1, то есть выражения в теле цикла (заключенные в фигурные скобки) будут повторяться пока значение переменной не достигнет 255, после этого выполнение цикла завершиться.\\ 
-while True: +И поскольку переменная **brightness** записана в качестве аргумента функции ''analogWrite(Led, brightness)''то с каждым шагом выполнения цикла будет увеличиваться коэффициент заполнения ШИМчтобы это происходило плавно в теле цикла присутствует небольшая задержка в 5 мс.\\ 
-    pwmLed.duty(200) +В результате выполнения этого блока программы светодиод будет плавно набирать яркость.\\ 
-    time.sleep(1) +Во втором блоке с оператором **for** в условии записано уменьшение значения переменной **brightness**и соответственно уменьшению коэффициента заполнения ШИМ в процессе выполнения цикла, в результате чего светодиод плавно гаснет.\\ 
-    pwmLed.duty(1023) +После завершения работы второго цикла, выполнение передается на первый и далее по кругу.
-    time.sleep(1) +
-</code> +
- +
-В бесконечном цикле мы устанавливаем значение ШИМ равное 200, а потом 1023 с задержками по 1 секунде. В результате наш светодиод одну секунду горит тускло, потом одну секунду горит ярко+
- +
-Осталось разобраться что это за цифры 200 и 1023, которые мы передали в качестве параметров в функцию ''duty()''. Это и есть коэффициент заполнения, только здесь он он выражен не в процентах, а числом от 0 до 1023, где 0 — это 0%, а 1023 — это 100%. +
- +
-Когда тебе надоест смотреть на результат работы этой программыто, как обычно, останови ее через кнопку остановки. Программа завершится, а работа ШИМ генератора— нет, ведь он не привязан к нашей программе, это отдельное устройствокоторое мы лишь настроили и запустили, но работает оно само.+
  
 <WRAP center round tip 60%> <WRAP center round tip 60%>
-Попробуй изменить программу так, чтобы светодиод имел не два, а 3 или более вариантов яркости, которые переключались бы по- очереди.+Попробуй изменить программу так, чтобы светодиод набирал не полную яркость либо затухал не полностью
 </WRAP> </WRAP>