Давайте подробнее рассмотрим элементы этого базового скетча Arduino. Прежде всего идет небольшой комментарий:
// Pin 13 has an LED connected on most Arduino boards.
// give it a name:
Это просто комментарий, призванный помочь людям понять смысл программы. В программах Arduino комментарии начинаются двумя косыми линиями. В момент компиляции игнорируется весь текст, находящийся в строке после двух косых линий. Поэтому комментарии не влияют на размер вашей программы. Обязательно комментируйте ваш код! Вы можете легко забыть, какие действия должен выполнять какой-либо участок вашей программы. Я настоятельно рекомендую вам привыкнуть подробно комментировать ваш код и читать комментарии в каждом из примеров, которые мы используем в этом классе.
int led = 13;
Следующая строка - объявление переменной. Вы можете представить переменную как "ведро" для некоторой информации. Переменные, также как и вёдра, имеют размеры и формы для хранения различной информации. Переменные также имеют имена, такие как обязательная надпись на ведре.
Эта строка кода определяет переменную типа int, что означает целое число. Вспомните о математическом классе начальной школы, когда вы, возможно, узнали, что целые числа - это целые числа (положительные или отрицательные).
Итак, у нас есть "ведро", которое может содержать целое число. Имя переменной - Led, но c таким же успехом может быть например MyLEDPin или любое слово (только буквы и цифры, чувствительные к регистру), всё это зависит только от вас. Я настоятельно рекомендую использовать осмысленные имена для ваших переменных, чтобы вы могли отслеживать, что делает ваша программа!
После строки вышеприведенного кода в любое время, когда мы видим Led в программе, в реальности это будет заменено на число 13. Это удобно для таких конфигураций, как наша, где мы хотим, чтобы можно было ссылаться на тот контакт, к которому подключен светодиод. Если впоследствии мы захотим изменить номер контакта, то нам нужно будет поменять число только один раз в одном месте.
// the setup routine runs once when you press reset:
void setup() {
}
Как отмечается в комментарии, любой код, помещенный между этой строкой и закрывающей фигурной скобкой } является частью инициализации, то есть это секция кода, которая выполняется один раз за сеанс. Код внутри процедуры инициализации выполняется один раз, когда ваша плата включается, или когда вы нажимаете кнопку сброса Arduino.
// initialize the digital pin as an output.
pinMode(led, OUTPUT);
}
Пины 0-13 на плате Arduino являются цифровыми портами ввода / вывода, это означает, что они могут быть либо входами, либо выходами. pinMode (); это функция, сокращенный способ ссылаться на подмножество команд так сказать "под капотом".
Программа Arduino показывает вам, что она распознает некоторые элементы кода, изменяя цвет их текста. Если когда-либо ключевое слово не меняет цвет при вводе его в Arduino, у вас, вероятно, есть ошибка орфографии, ошибка капитализации или другая опечатка.
Блоки информации, передаваемые в функции, называются аргументами. Поскольку переменная led будет обслуживать ее содержимое в любое время, когда вы вводите ее, номер пина платы, который передается pinMode (); равен 13, а состояние - OUTPUT. Это конфигурирует контакт с номером 13 для управления светодиодом, а фигурная скобка закрывает инициализацию.
// the loop routine runs over and over again forever:
void loop() {
Это основная часть (главный цикл) программы Arduino, в которой обычно происходят такие действия, как проверка входных контактов и управление выходными контактами. Все, что мы напишем между этой строкой и закрывающей фигурной скобкой } будет повторяться до тех пор, пока не будет отключено питание платы.
digitalWrite(led, HIGH); // turn the LED on (HIGH is the voltage level)
Первой в цикле идет функция digitalWrite () ;, которая принимает два блока информации: номер пина и состояние HIGH (включено)или LOW (выключено). Эти блоки информации, переданные в функции, называются аргументами. Поскольку переменная led будет передавать свое содержимое в любой момент, когда вы ее напишете, номер вывода, который будет передан в качестве аргумента в функцию digitalWrite (); будет равен 13, а состояние вывода будет HIGH (включено). Таким образом, эта строка кода приводит к включению светодиода, подключенного к выводу 13.
delay(1000); // wait for a second
delay (); является еще одной встроенной функцией Arduino. Она приостанавливает программу на некоторое время, задаваемое в миллисекундах. Эта строка кода приостанавливает программу на 1000 мс, то есть на одну секунду.
digitalWrite(led, LOW); // turn the LED off by making the voltage LOW
Как мы уже разобрали ранее, функция digitalWrite (); может включать или выключать выходной контакт. На этот раз он устанавливает контакт 13 в состояние LOW (выкл.).
delay(1000); // wait for a second
}
Эта строка приостанавливает программу на время, равное одной секунде, а фигурная скобка означает конец цикла. Итак, чтобы подвести итог, программа включает и выключает светодиод с интервалом в одну секунду. Давайте попробуем изменить этот интервал. Например, вы можете создать более неравномерное мигание:
void loop() {
digitalWrite(led, HIGH); // turn the LED on (HIGH is the voltage level)
delay(2000); // wait for two seconds
digitalWrite(led, LOW); // turn the LED off by making the voltage LOW
delay(500); // wait for a half second
}
Попробуйте загрузить измененный скетч в свою плату Arduino и посмотрите как он себя поведет.
#arduino #макетирование #МакетнаяПлата
Нет комментариев