Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Занятие 2 Общие понятия.doc
Скачиваний:
115
Добавлен:
11.03.2016
Размер:
309.25 Кб
Скачать

2.3. Синтаксис языка программирования Arduino

Аналогичен используемому в языке Си:

  • ;– точка с запятой. Указывает на конец строки. Пример использования:

int led = 13;

в случае отсутствия ; в месте, где она должна быть, при попытке загрузить программу в Arduinoпрограмма загружена не будет и выдаст ошибку в нижней части окна

  • { }– круглые скобки. Открывающая скобка – начало блока, закрывающая – конец блока

    void setup() { // начало блока

    pinMode(led, OUTPUT);

    } // конец блока

  • // – комментарии. То, что написано в строке после данных символов, контроллер на воспринимает, это примечания для программиста

delay(1000); // ждем одну секунду (1000 миллисекунд)

В общем случае программа для Arduinoсостоит из трех частей:

  1. описание переменных, подключение библиотек – находится в самом начале

  2. блок setup (настройка):

void setup() {

// то, что находится в данном блоке, выполнится один раз – как только будет включен контроллер

}

в данном блоке выполняется инициализация контактов Arduino(как входов, выходов), подключение внешних датчиков и модулей

  1. блок loop(цикл):

void loop() {

// то, что находится в данном блоке, будет выполняться бесконечно – после выполнения последней команды блока контролер перейдет в начало блока и снова начнет выполнять команды по списку

}

В данном блоке пишется основная часть программы – то, что должен делать контроллер

2.4. Подключение Arduinoк компьютеру

Для загрузки написанной программы в Arduino, а также для питания его в процессе работыArduinoподключается к компьютеру черезUSB. Для этого используется кабельUSB-miniUSB, который должен быть достаточной длины для комфортной работы с контроллером.

После подключения желательно проверить правильность настройки соединения в среде ArduinoIDE: выполните командыСервис / Плата / Arduino UnoиСервис / Последовательный порт /Нижний в выпавшем спискеCOMпортов.

После написания программы и подключения Arduinoк компьютеру необходимо записать программу вArduino. Это выполняется нажатием на кнопкуЗагрузитьвверху слева (стрелка вправо в круге)

Практическое занятие 2:

  1. Запустите среду программирования ArduinoIDE(ярлыкArduinoна рабочем столе компьютера)

  2. Откройте пример программы для управления миганием встроенного на плату светодиода L:Файл / Примеры / Basic / Blink

  3. Подключите ArduinoкUSBпорту компьютера

  4. Нажмите кнопку Загрузить , убедитесь, что в нижней части окна появилась надписьКомпилирование, которая через некоторое время сменится надписьюЗагрузка(наArduinoзамигают светодиодыRXTX) и появится надписьЗагрузка выполнена.

  5. Убедитесь, что светодиод 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 секунда).

  1. удалите один ноль в обеих строках delay(1000);, чтобы они обе имели вид

delay(100);

  1. загрузите полученную программу в контроллер () и убедитесь, что светодиодLна плате стал мигать намного быстрее – с периодом 100 миллисекунд = 0,1 секунда, т.е. 10 раз в секунду

  2. попробуйте задать различные значения периодов задержки delayи загрузить программу с ними