Показаны различия между двумя версиями страницы.
Следующая версия | Предыдущая версия | ||
products:aruno:exp10 [2020/05/29 12:35] – создано alexnik | products:aruno:exp10 [2020/06/01 12:28] (текущий) – alexnik | ||
---|---|---|---|
Строка 1: | Строка 1: | ||
===== Эксперимент 10. Программный выключатель===== | ===== Эксперимент 10. Программный выключатель===== | ||
+ | Монитор порта можно использовать не только для вывода значения, | ||
+ | Соберем проект в котором будем управлять включением и выключением светодиода посредством отправки команд через монитор порта.\\ | ||
==== Схема эксперимента ==== | ==== Схема эксперимента ==== | ||
{{ : | {{ : | ||
Строка 9: | Строка 10: | ||
==== Программный код эксперимента ==== | ==== Программный код эксперимента ==== | ||
- | < | + | < |
- | void setup() { | + | const int Led = 2; |
- | | + | |
- | } | + | |
- | + | ||
- | void loop() { | + | |
- | digitalWrite(2, | + | |
- | delay(1000); | + | |
- | digitalWrite(led, | + | |
- | delay(1000); | + | |
- | } | + | |
- | </ | + | |
- | Убедитесь, | + | void setup() { |
- | Перепишите | + | |
+ | Serial.println(" | ||
+ | | ||
+ | } | ||
- | Наша программа состоит из двух стандартных функций **//setup()//** , в теле которой расположено одно выражение и функции **// | + | void loop() { |
- | Каждое выражение — это приказ процессору что — то сделать.\\ | + | |
- | Выражения | + | |
- | Как | + | // Если команда |
- | После завершения работы **//setup()//** вызывается функция **//loop()//**, которая выполняется в бесконечном цикле.\\ | + | |
+ | | ||
+ | | ||
+ | } | ||
+ | </file> | ||
- | Теперь давайте попробуем понять почему написанная программа приводит в итоге к миганию светодиода.\\ | + | Для взаимодействия |
- | Как известно, | + | Для удобства пользователя, здесь же выводим в монитор |
- | В нашем примере мы управляем светодиодом | + | В основном цикле |
- | Это делается выражением в функции setup(): | + | В условиях операторов **if** |
- | pinMode(2, OUTPUT); | + | |
- | <WRAP center round tip 60%> | + | |
- | Предназначение функция setup(): настроить | + | |
- | </ | + | |
- | В функции setup() вызывается функция с именем pinMode(), которая устанавливает заданный по номеру пин в определенный режим: вход или выход. О каком пине и о каком режиме идёт речь | + | |
- | <WRAP center round tip 60%> | + | |
- | Уточняющие | + | |
- | </ | + | |
- | Перейдём | + | |
- | <WRAP center round tip 60%> | + | |
- | Функция loop() называется основным циклом программы и предназначена | + | |
- | </ | + | |
- | Пройдёмся по выражениям по порядку.\\ | + | |
- | Первое выражение — это вызов встроенной функции digitalWrite().\\ Она | + | |
- | Второе выражение вызов функции delay().\\ Функция delay() — это, встроенная функция, которая заставляет | + | |
- | Как только 1000 мс истекают, процессор просыпается и переходит к следующему выражению. В нашем примере это снова вызов знакомой нам встроенной функции digitalWrite(). Правда на этот раз | + | |
- | Четвертое выражение снова вызов функции delay() c аргументом 1000 мс.\\ | + | |
- | По истечении установленного времени выполнение снова передаётся к первому | + | |
- | Если коротко описать работу программы, | + | |
- | 1. Поджигаем светодиод\\ | + | |
- | 2. Спим 1000 миллисекунд\\ | + | |
- | 3. Гасим светодиод\\ | + | |
- | 4. Спим 1000 миллисекунд\\ | + | |
- | 5. Переходим к пункту 1\\ | + | |
- | Таким образом мы получили проект с маячком, | + | |
==== Дополнительное задание ==== | ==== Дополнительное задание ==== | ||
<WRAP center round tip 60%> | <WRAP center round tip 60%> | ||
- | Попробуй | + | Попробуй |
</ | </ | ||