Программирование Arduino урок 1 — первый шаг

Первое, с чего следует начать работу по освоению Arduino – это приобрести отладочную плату (хорошо бы сразу приобрести монтажную плату и т.п.). Уже описывал, какие виды плат Arduino представлены на рынке. Кто еще не читал статью Введение в курс «Программирование микроконтроллеров» советую ознакомиться. Для изучения основ выбираем стандартную плату Arduino Uno (оригинал или хорошую китайскую копию — решать вам). При первом подключении оригинальной платы проблем возникнуть не должно, а вот с «китайцем» нужно будет немного поковыряться (не переживайте – всё покажу и расскажу).

Подключаем Arduino к компьютеру USB кабелем. На плате должен засветиться светодиод «ON«. В диспетчере устройств появится новое устройство «Неизвестное устройство«. Необходимо установить драйвер. Тут внесу небольшую неясность (кот отвлек – я не запомнил, какой из драйверов решил «проблему неизвестного устройства».

Предварительно скачал и распаковал программную средy Arduino (arduino-1.6.6-windows). Затем скачал этот архив. Он самораспаковывающейся. Запустил файл CH341SER.EXE. Выбрал установку (INSTALL). После установки появилось сообщение, нажал «Ок» (прочитать не успел).

После перешёл в свойства все еще «неизвестного устройства» и выбрал кнопку «Update Driver». Выбрал вариант «Установка из указанного места» – указал папку с разархивированной программной средой Arduino. И о чудо – всё удачно заработало…

Запускаем программу Arduino (в моём случае 1.6.6) и разрешаем доступ.

Все проекты (программы) для Arduino состоят из двух частей: void setup и void loop. void setup выполняется всего один раз, а void loop выполняется снова и снова.

Прежде чем продолжим, необходимо выполнить две обязательные операции:

— указать в программной среде Arduino, какую плату вы используете. Tool->board-> Arduino Uno. Если отметка уже стоит на нужной вам плате – это хорошо, если нет – ставим отметку.

— указать в программной среде какой последовательный порт вы используете для связи с платой. Tool->port-> COM3. Если отметка уже стоит на порте – это хорошо, если нет – ставим отметку. Если у вас в разделе порты представлен больше, чем один порт, как же узнать, какой именно используется для соединения с платой? Берём плату и отсоединяем от неё провод. Снова заходим в порты и смотрим, какой из них исчез. В моём случае вкладка «порты» вообще стала не активной.

Снова подключаем провод USB.

Для первой программы никаких дополнительных модулей не нужно. Будем включать светодиод, который уже смонтирован на плате (на 13 выводе микроконтроллера).

Для начала сконфигурим 13 вывод (на вход или на выход).

Для этого вводим в блок «void setup» команду pinMode, в скобках указываем параметры (13, OUTPUT) (Какой вывод задействован, Режим работы). Программная среда выделяет слова/команды соответствующим цветом шрифта.

Переходим в блок «void loop» и вводим команду digitalWrite с параметрами (13, HIGH).

Первая программа готова, теперь осталось загрузить её в микроконтроллер. Нажимаем кнопку UPLOAD.

Светодиод засветился. Но не стоит так скептически относиться к простоте первой программы. Вы только, что освоили первую управляющую команду. Вместо светодиода ведь можно подключить любую нагрузку (будь-то освещение в комнате или сервопривод, перекрывающий подачу воды), но об этом всём поговорим позже…

Светодиод мы включили, он немного посветил, пора его выключать. Для этого видоизменим написанную нами программу. Вместо «HIGH» напишем «LOW».

Нажимаем кнопку UPLOAD. Светодиод погас.

Мы уже познакомились с понятием «переменные», пора им воспользоваться. Дальнейшие программы будут становится все объёмнее и сложнее, а работы по их изменению будут занимать все больше и больше времени, если мы оставим подобный стиль написания кода.

Смотрим на программу (снова включим светодиод). Зададим номер вывода микроконтроллера не числом 13, а переменной, которой будет присвоено значение соответствующего вывода (в нашем случае 13). В дальнейшем будет очень удобно изменять значения переменных в начале программы, вместо того, чтобы шарится по коду в поисках тех мест, где необходимо произвести замены значений.

Создаём глобальную переменную int LED_pin = 13; (тип переменной, имя переменной, присваиваемое ей значение).

Нажимаем кнопку UPLOAD. Светодиод светится. Все работает отлично.

В этом уроке, кроме включения/выключения светодиода, мы еще научимся мигать им.

Для этого вводим вторую команду «digitalWrite» с параметрами (LED_pin, LOW).

Нажимаем кнопку UPLOAD. И что мы видим? Светодиод светится «в пол наказа». Причина кроется в том, что время переключения двух состояний (HIGH и LOW) ничтожно мало и человеческий глаз не может уловить эти переключения. Необходимо увеличить время нахождения светодиода в одном из состояний. Для этого пишем команду delay с параметром (1000). Задержка в миллисекундах: 1000 миллисекунд – 1 секунда. Алгоритм программы следующий: включили светодиод – ждём 1 секунду, выключили светодиод – ждём 1 секунду и т.д.

Нажимаем кнопку UPLOAD. Светодиод начал мерцать. Все работает.

Доработаем программу создав переменную, которой будет присваиваться значение, отвечающее за длительность задержки.

Нажимаем кнопку UPLOAD. Светодиод мерцает, как и мерцал.

Доработаем написанную нами программу. Задачи следующие:

  • Светодиод включен 0,2 секунды и выключен 0,8 секунды;
  • Светодиод включен 0,7 секунды и выключен 0,3 секунды.

В программе созданы 2 переменные, что отвечают за временные задержки. Одна определяет время работы включенного светодиода, а вторая – время работы выключенного светодиода.

 

Выводы по уроку:

  • подключили плату Arduino;
  • написали первую программу;
  • модернизировали её (применили теорию на практике).

Примеры написанных программ:

Спасибо за внимание. До скорой встречи!

Картотека программирования

ПОДЕЛИТЕСЬ С ДРУЗЬЯМИ!


About alexlevchenko

Ценю в людях честность и открытость. Люблю мастерить разные самоделки. Нравится переводить статьи, ведь кроме того, что узнаешь что-то новое - ещё и даришь другим возможность окунуться в мир самоделок.