Различия

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

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

Предыдущая версия справа и слеваПредыдущая версия
Следующая версия
Предыдущая версия
products:aruno:exp7 [2020/05/28 12:24] 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>
  
Строка 42: Строка 42:
   * Led – номер вывода для генерации ШИМ сигнала.   * Led – номер вывода для генерации ШИМ сигнала.
   * brightness – коэффициент заполнения ШИМ.   * brightness – коэффициент заполнения ШИМ.
-Для плавного изменения яркости светодиода необходимо изменять коэффициент заполнения, для плавного увеличения или уменьшения мы будем использовать оператор цикла **for()**\\+Для плавного изменения яркости светодиода необходимо изменять коэффициент заполнения, для этого мы будем использовать оператор цикла **for()**\\
  
 <WRAP center round info 60%> <WRAP center round info 60%>
Строка 49: Строка 49:
 </WRAP> </WRAP>
  
-В условии цикла **for** мы записали, чтобы наша переменная **brightness** увеличивалась от **0** до **255**, с шагом 1, то есть выражения в теле цикла (заключенные в фигурные скобки) будут повторяться пока значение переменной не достигнет 255, после этого выполнение цикла завершиться.+В условии цикла **for** мы записали, чтобы значение нашей переменной **brightness** увеличивалась от **0** до **255**, с шагом 1, то есть выражения в теле цикла (заключенные в фигурные скобки) будут повторяться пока значение переменной не достигнет 255, после этого выполнение цикла завершиться.\\ 
 +И поскольку переменная **brightness** записана в качестве аргумента функции ''analogWrite(Led, brightness)'', то с каждым шагом выполнения цикла будет увеличиваться коэффициент заполнения ШИМ, чтобы это происходило плавно в теле цикла присутствует небольшая задержка в 5 мс.\\ 
 +В результате выполнения этого блока программы светодиод будет плавно набирать яркость.\\ 
 +Во втором блоке с оператором **for** в условии записано уменьшение значения переменной **brightness**, и соответственно уменьшению коэффициента заполнения ШИМ в процессе выполнения цикла, в результате чего светодиод плавно гаснет.\\ 
 +После завершения работы второго цикла, выполнение передается на первый и далее по кругу.
  
 <WRAP center round tip 60%> <WRAP center round tip 60%>
-Попробуй изменить программу так, чтобы светодиод имел не два, а 3 или более вариантов яркости, которые переключались бы по- очереди.+Попробуй изменить программу так, чтобы светодиод набирал не полную яркость либо затухал не полностью
 </WRAP> </WRAP>