Теперь разберем программный код скетча
Для удобства восприятия кода лучше удалить оригинальные комментарии после двух слэшей //
В итоге у нас должен остаться вот этот код:
- Код: выделить все
void setup() {
pinMode(LED_BUILTIN, OUTPUT);
}
void loop() {
digitalWrite(LED_BUILTIN, HIGH);
delay(1000);
digitalWrite(LED_BUILTIN, LOW);
delay(1000);
}
В коде используется синтаксис языка программирования
C++void setup() - установочный цикл программы, обрабатывается один раз при включении и загрузке контроллера.
void loop() - главный цикл программы, все что находится в данном цикле, обрабатывается последовательно и постоянно, по кругу, в цикле.
Обязательно должно соблюдаться правило двух фигурных скобок {}Весь код в установочном и главном цикле программы должен находиться между двух {}
void setup()
{
//начало кода в установочном цикле
pinMode(LED_BUILTIN, OUTPUT);
//конец кода в установочном цикле
}
void loop() {
//начало кода в главном цикле
digitalWrite(LED_BUILTIN, HIGH);
delay(1000);
digitalWrite(LED_BUILTIN, LOW);
delay(1000);
//конец кода в главном цикле
}У контроллеров Ардуино UNO имеется 13 цифровых выводов, которые могут работать как входы (INPUT) и выходы (OUTPUT).
В реальных условиях мы можем использовать для своих разработок только 11 выводов, так как 0 и 1 выводы используются для программирования контроллера и использовать их на начальном уровне крайне не рекомендуется, можно превратить плату контроллера в "КИРПИЧ"
Для того чтобы сказать контроллеру как мы будем использовать его вывод, нужно в установочном цикле прописать команду:
pinMode(LED_BUILTIN, OUTPUT);Где:
pinMode - команда назначения вывода,
LED_BUILTIN - номер вывода,
OUTPUT - назначение вывода, в данном случае мы назначаем вывод как ВЫХОД (OUTPUT).
Далее, в главном цикле программы видим следующий код:
void loop() {
//начало кода в главном цикле
digitalWrite(LED_BUILTIN, HIGH);
delay(1000);
digitalWrite(LED_BUILTIN, LOW);
delay(1000);
//конец кода в главном цикле
}Где:
digitalWrite - команда изменения состояния выхода,
LED_BUILTIN - номер вывода,
HIGH, LOW - изменение уровня выхода, HIGH - высокий, LOW - низкий. т.е. включаем на выходе 5 вольт и выключаем 5 вольт.
delay(1000); - задержка, указывается в миллисекундах 1000 м.сек = 1 сек.
Как работает данный код:
digitalWrite(LED_BUILTIN, HIGH); - установили на выходе с номером LED_BUILTIN высокий уровень, +5 вольт.
delay(1000); - включили задержку на 1 сек.
digitalWrite(LED_BUILTIN, LOW); - установили на выходе с номером LED_BUILTIN низкий уровень, -5 вольт.
delay(1000); - включили задержку на 1 сек.
Программа будет выполнятся постоянно, дойдя до конца она вернется в начало и так по кругу, в цикле.
Теперь загрузим нашу программу в контроллер, для этого нажимаем на кнопку Загрузка.
- Загрузка программы в Ардуино
Далее мы можем наблюдать ход компиляции программы и загрузки ее в контроллер.
При успешном завершении загрузки программы мы должны увидеть сообщение -
Загрузка завершена
- Загрузка программы в Ардуино
После этого мы можем обратить внимание на плату контроллера и увидим что на плате будет мигать светодиод, 1 сек. горит, 1 сек. не горит.
Это значит что у нас все получилось правильно!
Поздравляю, Вы загрузили в контроллер Ардуино первую программу
- Загрузка программы в Ардуино
А почему мигает светодиод распаянный на плате, где мы это прописали ? спросите вы !А потому что, в среде разработки Ардуино IDE версии 1.8.5 и выше, значение
LED_BUILTIN которое у нас указано в скетче
равно выводу 13 контроллера , к которому уже прям на заводе подключили светодиод и распаяли его на плате.
Это сделано для проверки работы контроллера и для удобства, упрощения загрузки первой программы, чтоб не надо было пока ничего дополнительного подключать
Что бы сделать то же самое но с другим выводом контроллера, необходимо просто поменять значение в скетче
LED_BUILTIN на номер вывода,
от 2 до 12.
Первые два вывода 0 и 1, как я уже писал выше, мы использовать не можем, нельзя!