- •Курс «Основы робототехники на Arduinoдля школьников». Занятие 2 Основные понятия
- •2.1. Электронная часть – контроллер Arduinoи совместимые с ним модули
- •2.2. Команды языка программирования Arduino
- •2.3. Синтаксис языка программирования Arduino
- •2.4. Подключение Arduinoк компьютеру
- •2.5. Цифровой выход – команда digitalWrite
- •2.6. Изучение Arduinoдома
- •Домашнее задание
2.3. Синтаксис языка программирования Arduino
Аналогичен используемому в языке Си:
;– точка с запятой. Указывает на конец строки. Пример использования:
int led = 13;
в случае отсутствия ; в месте, где она должна быть, при попытке загрузить программу в Arduinoпрограмма загружена не будет и выдаст ошибку в нижней части окна
{ }– круглые скобки. Открывающая скобка – начало блока, закрывающая – конец блока
void setup() { // начало блока
pinMode(led, OUTPUT);
} // конец блока
// – комментарии. То, что написано в строке после данных символов, контроллер на воспринимает, это примечания для программиста
delay(1000); // ждем одну секунду (1000 миллисекунд) |
В общем случае программа для Arduinoсостоит из трех частей:
описание переменных, подключение библиотек – находится в самом начале
блок setup (настройка):
void setup() { // то, что находится в данном блоке, выполнится один раз – как только будет включен контроллер } |
в данном блоке выполняется инициализация контактов Arduino(как входов, выходов), подключение внешних датчиков и модулей
блок loop(цикл):
void loop() { // то, что находится в данном блоке, будет выполняться бесконечно – после выполнения последней команды блока контролер перейдет в начало блока и снова начнет выполнять команды по списку } |
В данном блоке пишется основная часть программы – то, что должен делать контроллер
2.4. Подключение Arduinoк компьютеру
Для загрузки написанной программы в Arduino, а также для питания его в процессе работыArduinoподключается к компьютеру черезUSB. Для этого используется кабельUSB-miniUSB, который должен быть достаточной длины для комфортной работы с контроллером.
После подключения желательно проверить правильность настройки соединения в среде ArduinoIDE: выполните командыСервис / Плата / Arduino UnoиСервис / Последовательный порт /Нижний в выпавшем спискеCOMпортов.
После написания программы и подключения Arduinoк компьютеру необходимо записать программу вArduino. Это выполняется нажатием на кнопкуЗагрузитьвверху слева (стрелка вправо в круге)
Практическое занятие 2:
Запустите среду программирования ArduinoIDE(ярлыкArduinoна рабочем столе компьютера)
Откройте пример программы для управления миганием встроенного на плату светодиода L:Файл / Примеры / Basic / Blink
Подключите ArduinoкUSBпорту компьютера
Нажмите кнопку Загрузить , убедитесь, что в нижней части окна появилась надписьКомпилирование, которая через некоторое время сменится надписьюЗагрузка(наArduinoзамигают светодиодыRXTX) и появится надписьЗагрузка выполнена.
Убедитесь, что светодиод Lна плате начал мигать с периодом в 1 секунду
2.5. Цифровой выход – команда digitalWrite
Команда digitalWrite(номер пина, уровень)позволяет подать на определенный пинArduino(пока будем использовать цифровые пины – от 0 до 13) высокий уровень напряжения (HIGH, +5 В, логическая единица) или низкий уровень напряжения (LOW, 0 В, логический ноль). Примеры:
digitalWrite(5, HIGH);– напряжение на пине 5 станет равным +5 В
digitalWrite(12, LOW);– напряжение на пине 12 станет равным 0 В
Примечание: перед использованием на пине командыdigitalWriteобязательнонужно настроить этот пин в блокеsetupкак выходной, используя командуpinMode(номер пина, OUTPUT);
Для изучения данной команды запустим среду ArduinoIDEи откроем пример, который использовали на прошлом занятииФайл / Примеры / Basic / Blink. Для облегчения понимания комментарии (слова после //, которыеArduinoне воспринимает, а предназначены только для программистов) в программе ниже переведены на русский язык и выделеныкурсивом, а команды, которые контроллер воспринимает – выделеныжирным.
// создадим переменную led типа integer (целое число), хранящую номер данного пина – 13 int led = 13;
// то, что находится в блоке setup, выполнится один раз после запуска контроллера void setup() { pinMode(led, OUTPUT);// прописываем цифровой пин с номером 13 как выходной }
// выполнение блока loop повторяется снова и снова в процессе работы контроллера void loop() { digitalWrite(led, HIGH);// включаем светодиод (подаем на пин 13 высокий уровень +5 В (светодиод загорается) delay(1000); // ждем одну секунду (1000 миллисекунд) digitalWrite(led, LOW);// выключаем светодиод (подаем на пин 13 низкий уровень 0 В (светодиод потухает) delay(1000); // ждем одну секунду (1000 миллисекунд) }// после окончания блока loop контроллер начинает выполнять его с первой строчки |
Практическое занятие 3: изменим период мигания светодиода. В программе периоды заданы командойdelay(задержка, ожидание), при выполнении которой контроллер ждет время в миллисекундах, заданное в скобках (1000 миллисекунд = 1 секунда).
удалите один ноль в обеих строках delay(1000);, чтобы они обе имели вид
delay(100);
загрузите полученную программу в контроллер () и убедитесь, что светодиодLна плате стал мигать намного быстрее – с периодом 100 миллисекунд = 0,1 секунда, т.е. 10 раз в секунду
попробуйте задать различные значения периодов задержки delayи загрузить программу с ними