Эксперимент Маячок



бет14/45
Дата13.02.2023
өлшемі1,82 Mb.
#67503
түріЗакон
1   ...   10   11   12   13   14   15   16   17   ...   45
Пояснения к коду

  • Как мы уже знаем, analogWrite(pin, value) в качестве value принимает значения от 0 до 255. Если передать значение из-за пределов этого диапазона, функция сработает, но в общем случае вы получите неожиданный результат.

  • Оператор X % Y дает остаток от деления X на Y. Если X меньше Y, т.е. целая часть результата деления равна 0, оператор % будет возвращать X. Таким образом:

    • Пока brightness + 1 меньше 256, в brightness записывается значение brightness + 1

    • Как только brightness + 1 принимает значение 256, результатом (brightness + 1) % 256становится 0 и на следующей итерации loop() всё начинается сначала.

  • Оператор % работает только с целыми операндами.

  • В выражении (brightness + 1) % 256 скобки используются для назначения порядка действий. Операция % имеет больший приоритет, чем +, а сложение нам нужно выполнять раньше. С операциями умножения и деления оператор взятия остатка имеет одинаковый приоритет.

Вопросы для проверки себя

  1. Почему у светодиодной шкалы на 10 сегментов 20 ножек?

  2. Зачем в схеме биполярный транзистор?

  3. За счет чего увеличивается яркость шкалы?

  4. Почему после достижения значения 255 переменная brightness обнуляется?

Задания для самостоятельного решения

  1. Измените программу так, чтобы яркость шкалы росла только до половины от максимальной.

  2. Измените программу так, чтобы шкала становилась максимально яркой в три раза быстрее, без изменения функции delay.

  3. Измените исходную программу так, чтобы такой же результат был получен без использования операции %, но с применением условного оператора if.




Достарыңызбен бөлісу:
1   ...   10   11   12   13   14   15   16   17   ...   45




©emirsaba.org 2024
әкімшілігінің қараңыз

    Басты бет