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



бет25/45
Дата13.02.2023
өлшемі1,82 Mb.
#67503
түріЗакон
1   ...   21   22   23   24   25   26   27   28   ...   45
Пояснения к коду

  • Мы можем пользоваться не только встроенными функциями, но и создавать собственные. Это обоснованно, когда нам нужно повторять одни и те же действия в разных местах кода или, например, нужно выполнять одни и те же действия над разными данными, как в данном случае: обработать сигнал с цифровых портов 2 и 3.

  • Определять собственные функции можно в любом месте кода вне кода других функций. В нашем примере, мы определили функцию после loop.

  • Чтобы определить собственную функцию, нам нужно:

    • Объявить, какой тип данных она будет возвращать. В нашем случае это boolean. Если функция только выполняет какие-то действия и не возвращает никакого значения, используйте ключевое слово void

    • Назначить функции имя — идентификатор. Здесь действуют те же правила, что при именовании переменных и констант. Называть функции принято в том же стиле какПеременные.

    • В круглых скобках перечислить передаваемые в функцию параметры, указав тип каждого. Это является объявлением переменных, видимых внутри вновь создаваемой функции, и только внутри нее. Например, если в данном эксперименте мы попробуем обратиться к wasUp или isUp изloop() получим от компилятора сообщение об ошибке. Точно так же, переменные, объявленные вloop, другим функциям не видны, но их значения можно передать в качестве параметров.

    • Между парой фигурных скобой написать код, выполняемый функцией

    • Если функция должна вернуть какое-то значение, с помощью ключевого слова return указать, какое значение возвращать. Это значение должно быть того типа, который мы объявили

  • Так называемые глобальные переменные, т.е. переменные, к которым можно обратиться из любой функции, обычно объявляются в начале программы. В нашем случае — это brightness.

  • Внутри созданной нами функции handleClick происходит всё то же самое, что в эксперименте«Кнопочный переключатель».

  • Поскольку при шаге прироста яркости 35 не более чем через восемь нажатий подряд на одну из кнопок значение выражения brightness + delta выйдет за пределы интервала [0, 255]. С помощью функцииconstrain мы ограничиваем допустимые значения для переменной brightness указанными границами интервала.

  • В выражении plusUp = handleClick(PLUS_BUTTON_PIN, plusUp, +35) мы обращаемся к переменнойplusUp дважды. Поскольку = помещает значение правого операнда в левый, сначала вычисляется, что вернет handleClick. Поэтому когда мы передаем ей plusUp в качестве параметра, она имеет еще старое значение, вычисленное при прошлом вызове handleClick.

  • Внутри handleClick мы вычисляем новое значение яркости светодиода и записываем его в глобальную переменную brightness, которая на каждой итерации loop просто передается вanalogWrite.



Достарыңызбен бөлісу:
1   ...   21   22   23   24   25   26   27   28   ...   45




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

    Басты бет