Как сделать программу ардуино

Добавил пользователь Владимир З.
Обновлено: 04.10.2024

Хотите научиться создавать электронные гаджеты своими руками, но не знаете, с чего начать? Намерены изучить основы электроники? Тогда платы семейства Arduino – отличный выбор для начинающего. В частности, хороша для этих целей плата Arduino UNO, которую мы сейчас и рассмотрим.

Вам понадобится

  • плата Arduino UNO;
  • кабель USB (USB A - USB B);
  • персональный компьютер;
  • светодиод;
  • пара соединительных проводов длиной 5-10 см;
  • при наличии – макетная плата (breadboard).

1 ЗагрузкаArduino IDE

Загрузите среду разработки для Ардуино (Arduino IDE) с официального сайта для своей операционной системы (поддерживаются ОС Windows, Mac OS X, Linux). Можете выбрать установщик (Installer), можете архив (ZIP file for non admin install). Во втором случае программа просто запускается из папки, без установки. Скачанный файл содержит кроме среды разработки также драйверы для плат семейства Arduino.

Загружаем среду разработки для Ардуино

Загружаем среду разработки Arduino IDE с официального сайта

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

Подключите плату Arduino с помощью USB кабеля (типа USB-A - USB-B) к компьютеру. Должен загореться зелёный светодиод ON на плате.

USB кабель для подключения Arduino

Кабель "USB-A – USB-B" для подключения Arduino к компьютеру

3 Установка драйверадля Arduino

Установка драйвера Arduino

Arduino в диспетчере устройств Windows

4 НастройкаArduino IDE

Укажите среде разработки свою плату. Для этого в меню Инструменты Плата выберите Arduino UNO.

Настройка Arduino IDE

Выбираем плату Arduino UNO в настройках

Укажите номер COM-порта, к которому подключена плата Arduino: Инструменты Порт .

Выбрать COM-порт, которому назначена плата Arduino

Задаём последовательный порт, к которому подключена плата Arduino

5 Открываем примерпрограммы

Открыть пример программы для Arduino

Открываем пример скетча для Arduino

6 Сборка схемысо светодиодом

Отключите Arduino от компьютера. Соберите схему, как показано на рисунке. Обратите внимание, что короткая ножка светодиода должна быть соединена с выводом GND, длинная – с цифровым пином "13" платы Arduino. Удобно пользоваться макетной платой, но при её отсутствии соедините провода скруткой.

Цифровой пин "13" имеет встроенный резистор на плате. Поэтому при подключении светодиода к плате внешний токоограничивающий резистор использовать не обязательно. При подключении светодиода к любым другим выводам Ардуино использование резистора обязательно, иначе сожжёте светодиод, а в худшем случае – порт Ардуино, к которому подключён светодиод!

Собираем первую схему на Arduino

Схема подключения светодиода к Arduino

7 Загрузка скетчав память Ардуино

Почитайте комментарии в тексте программы – их достаточно чтобы разобраться с нашим первым экспериментом. Сначала описываем блок инициализации setup(), в котором задаём начальные значения переменных и функции выводов Arduino. Далее следует бесконечный цикл loop(), который повторяется снова и снова, пока на плату подаётся питание. В этом цикле мы выполняем все необходимые действия. В данном случае – зажигаем и гасим светодиод. Оператор delay() задаёт длительность выполнения (в миллисекундах) предшествующего оператора. Оператор digitalWrite() указывает Ардуино, на какой вывод подать напряжение, и какой именно уровень напряжения. Ваш первый скетч готов!

Полезный совет

В сети есть множество сайтов, посвящённых работе с платами семейства Arduino. Читайте, осваивайте, не бойтесь экспериментировать и познавать новое! Это увлекательное и полезное занятие, которое принесёт вам много удовольствия.

Обратите внимание

Будьте внимательны при работе с платой Arduino – это электронное изделие, которое требует бережного отношения. Снизу платы есть оголённые проводники, и если Вы положите плату на токопроводящую поверхность, есть вероятность сжечь плату. Также не трогайте плату влажными или мокрыми руками и избегайте при работе сырых помещений.

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

Arduino – это одноплатный контроллер с открытыми исходными кодами, который можно использовать в множестве различных приложений. Это возможно самый простой и самый дешевый вариант из микроконтроллеров для любителей, студентов и профессионалов для разработки проектов на основе микроконтроллеров. Платы Arduino используют либо микроконтроллер Atmel AVR, либо микроконтроллер Atmel ARM, и в некоторых версия имеет интерфейс USB. Они также имеют шесть или более выводов аналоговых входов и четырнадцать или более выводов цифровых входов/выходов (I/O), которые используются для подключения к микроконтроллеру датчиков, приводов и других периферийных схем. Цена на платы Arduino в зависимости от набора функций составляет от шести до сорока долларов.

arduino

Типы плат Arduino

Существует множество различных типов плат Arduino, как показано в списке ниже, каждая из которых обладает собственным набором функций. Они отличаются по скорости обработки, памяти, портам ввода/вывода и подключению, но основная составляющая их функционала остается неизменной.

Программное обеспечение (IDE)

USB кабель

Большинство плат Arduino подключаются к компьютеру с помощью USB кабеля. Это соединение позволяет загружать скетчи на вашу плату Arduino, а также обеспечивает плату питанием.

usb кабель

USB кабель для Arduino

Программирование

Программирование Arduino легко: сначала вы используете редактор кода IDE для написания программы, а затем компилируете и загружаете её одним кликом.

Программа для Arduino включает в себя две основные функции:

Вы можете использовать функцию setup() для инициализации настроек платы. Эта функция выполняется только один раз, при включении платы.

Функция loop() выполняется после завершения функции setup() , и в отличие от функции setup() она работает постоянно.

Функции программ

Ниже приведен список наиболее часто используемых функции при программировании Arduino:

  • pinMode – устанавливает вывод в режим входа или выхода;
  • analogRead – считывает аналоговое напряжение на аналоговом входном выводе;
  • analogWrite – записывает аналоговое напряжение в аналоговый выходной вывод;
  • digitalRead – считывает значение цифрового входного вывода;
  • digitalWrite – задает значение цифрового выходного вывода в высокий или низкий уровень;
  • Serial.print – пишет данные в последовательный порт в виде удобочитаемого текста ASCII.

Библиотеки Arduino

Библиотеки Arduino представляют собой коллекции функций, которые позволят вам управлять устройствами. Вот некоторые из наиболее широко используемых библиотек:

Этапы настройки Arduino

Внимание: возможно, вам понадобится установить драйвера, если ваша система не обнаружит Arduino.

Платы расширения Arduino

Платы расширения Arduino (Arduino Shields) – это платы, которые подключаются к Arduino, чтобы предоставить вам возможность подключать к Arduino периферийные устройства, датчики и приводы. Ниже приведен список некоторых популярных плат расширения:

  • GSM Shield;
  • Ethernet Shield;
  • WiFi Shield;
  • Motor Shield;
  • Proto Shield;
  • Joystick Shield;
  • Bluetooth Shield;
  • Xbee shield.

Комплектующие и принадлежности

Ниже приведен список всех комплектующих и принадлежностей, обычно используемых совместно с Arduino для разработки проектов:

Всё, что необходимое для макетирования, вы можете найти в подразделе Макетирование раздела сайта Купить

Подключение и программирование Ардуино для начинающих

Электронная промышленность постоянно развивается. Это нетрудно заметить, например, потому что все возрастающая группа продуктов, предназначенных для бытового и профессионального использования, содержит в своей конструкции один или несколько микроконтроллеров. По этой причине на рынке растет спрос на специалистов в области электроники и программирования.

Arduino - это инструмент, который позволяет быстро научиться программировать электронные устройства от простейших основ (управление кнопками и управление светодиодами) до сложных прототипов (например, роботов, поддерживающих производственные процессы).

Изучение микроконтроллеров кажется чем-то сложным и непонятным? До появления Арудино – это было действительно не легко и требовало определенный набор программаторов и прочего оборудования.


Что такое Arduino?

Это своего рода электронный конструктор. Изначальная задача проекта – это позволить людям легко обучаться программированию электронных устройств, при этом уделяя минимальное время электронной части.

Что такое Arduino

Какую первую плату Arduino купить новичку?

Базовой и самой популярной платой считается Arduino Uno. Эта плата размером напоминает кредитную карту. Довольно крупная. Большинство шилдов которые есть в продаже идеально подходят к ней. На плате для подключения внешних устройств расположены гнезда.

Arduino Uno

В отечественных магазинах на 2017 год её цена порядка 4-5 долларов. На современных моделях её сердцем является Atmega328.

Arduino Uno

Изображение платы ардуино и расшифровка функций каждого вывода, Arduino UNO pinout

Микроконтроллер на данной плате это длинна микросхема в корпусе DIP28, что говорит о том, что у него 28 ножек.

Следующая по популярности плата, стоит почти в двое дешевле предыдущей – 2-3 доллара. Это плата Arduino Nano. Актуальные платы построены том же Atmega328, функционально они аналогичны с UNO, различия в размерах и решении согласования с USB, об этом позже подробнее. Еще одним отличием является то, что для подключения к плате устройств предусмотрены штекера, в виде иголок.

Arduino Nano

Третья по популярности плата – это Arduino Pro Mini, на ней нет USB порта для подключения к компьютеру, как осуществляется связь я расскажу немного позже.

Сравнение размеров Arduino Nano и Pro Mini

Сравнение размеров Arduino Nano и Pro Mini

Это самая маленькая плата из всех рассмотренных, в остальном она аналогична предыдущим двум, а её сердцем является по-прежнему Atmega328. Другие платы рассматривать не будем, так как это статья для начинающих, да и сравнение плат – это тема отдельной статьи.

Если UNO удобна для макетирования, то Nano и Pro Mini удобны для финальных версий вашего проекта, потому что занимают мало места.

Arduino для начинающих

Как подключить Arduino к компьютеру?

Arduino Uno и Nano подключаются к компьютеру по USB. При этом нет аппаратной поддержки USB порта, здесь применено схемное решение преобразования уровней, обычно называемое USB-to-Serial или USB-UART (rs-232). При этом в микроконтроллер прошит специальный Arduino загрузчик, который позволяет прошиваться по этим шинам.

В Arduino Uno реализована эта вязь на микроконтроллере с поддержкой USB – ATmega16U2 (AT16U2). Получается такая ситуация, что дополнительный микроконтроллер на плате нужен для прошивки основного микроконтроллера.

В Arduino Nano это реализовано микросхемой FT232R, или её аналогом CH340. Это не микроконтроллер — это преобразователь уровней, этот факт облегчает сборку Arduino Nano с нуля своими руками.

Обычно драйвера устанавливаются автоматически при подключении платы Arduino. Однако, когда я купил китайскую копию Arduino Nano, устройство было опознано, но оно не работало, на преобразователе была наклеена круглая наклейка с данными о дате выпуска, не знаю нарочно ли это было сделано, но отклеив её я увидел маркировку CH340.

Через этот же USB порт может и питаться микроконтроллер, т.е. если вы подключите его к адаптеру от мобильного телефона – ваша система будет работать.

Что делать если на моей плате нет USB?

Плата Arduino Pro Mini имеет меньшие габариты. Это достигли тем что убрали USB разъём для прошивки и тот самый USB-UART преобразователь. Поэтому его нужно докупить отдельно. Простейший преобразователь на CH340 (самый дешевый), CPL2102 и FT232R, продаётся стоит от 1 доллара.

При покупке обратите внимание на какое напряжение рассчитан этот переходник. Pro mini бывает в версиях 3.3 и 5 В, на преобразователях часто расположен джампер для переключения напряжения питания.

Arduino Pro Mini

При прошивке Pro Mini, непосредственно перед её началом необходимо нажимать на RESET, однако в преобразователях с DTR это делать не нужно, схема подключения на рисунке ниже.

Схема подключения для прошивки

Подключение ардуино

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

Штекера

Как писать программы для Arduino?

Для работы со скетчами (название прошивки на языке ардуинщиков), есть специальная интегрированная среда для разработки Arduino IDE, скачать бесплатно её можно с официального сайта или с любого тематического ресурса, с установкой проблем обычно не возникает.

Программа для Arduino

Так выглядит интерфейс программы. Писать программы можно на специально разработанном для ардуино упрощенном языке C AVR, по сути это набор библиотек, который называют Wiring, а также на чистом C AVR. Использование которого облегчает код и ускоряет его работу.

В верхней части окна присутствует привычное меню, где можно открыть файл, настройки, выбрать плату, с которой вы работаете (Uno, Nano и много-много других) а также открыть проекты с готовыми примерами кода. Ниже расположен набор кнопок для работы с прошивкой, назначение клавиш вы увидите на рисунке ниже.

Интерфейс программы

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

Основы программирования в Arduino IDE

В начале кода нужно объявить переменные и подключить дополнительные библиотеки, если они имеются, делается это следующим образом:

Команда Define дают компилятору самому выбрать тип переменной, но вы можете его задать вручную, например, целочисленный int, или с плавающей точкой float.

Программа может определять состояние пина, как 1 или 0. 1 –это логическая единица, если пин 13 равен 1, то напряжение на его физической ножке будет равняться напряжению питания микроконтроллера (для ардуино UNO и Nano – 5 В)

Запись цифрового сигнала осуществляется командой digitalWrite (пин, значение), например:

digitalWrite(led, high); //запись единицы в пин 13(мы его объявили выше) лог. Единицы.

Как вы могли понять обращение к портам идёт по нумерации на плате, соответствующей цифрой. Вот пример аналогичного предыдущему коду:

digitalWrite (13, high); // устанавливаем вывод 13 в едиицу

Часто востребованная функция задержки времени вызывается командой delay(), значение которой задаётся в миллисекундах, микросекунды достигаются с помощью

delayMicroseconds() Delay (1000); //микроконтроллер будет ждать 1000 мс (1 секунду)

Настройки портов на вход и выход задаются в функции void setup<>, командой:

pinMode(NOMERPORTA, OUTPUT/INPUT); // аргументы – название переменной или номер порта, вход или выход на выбор

В начале командой pinMode мы сказали микроконтроллеру назначить порт со светодиодом на выход. Вы уже заметили, что в коде нет объявления переменной “LED_BUILTIN”, дело в том, что в платах Uno, Nano и других с завода к 13 выводу подключен встроенный светодиод и он распаян на плате. Он может быть использован вами для индикации в ваших проектах или для простейшей проверки ваших программ-мигалок.

Далее мы установили вывод к которому подпаян светодиод в единицу (5 В), следующая строка заставляет МК подождать 1 секунду, а затем устанавливает пин LED_BUILTIN в значение нуля, ждет секунду и программа повторяется по кругу, таким образом, когда LED_BUILTIN равен 1 – светодиод(да и любая другая нагрузка подключенная к порту) включен, когда в 0 – выключен.

Всё работает и всё понятно? Тогда идём дальше!

Читаем значение с аналогового порта и используем прочитанные данные

Микроконтроллер AVR Atmega328 имеет встроенный 10 битный аналогово цифровой преобразователь. 10 битный АЦП позволяет считывать значение напряжение от 0 до 5 вольт, с шагом в 1/1024 от всего размаха амплитуды сигнала (5 В).

int sensorPin = A0;

int sensorValue = 0;

Схема подключения потенциометра к Arduino, по аналогии центральный вывод вы можете подключить к любому аналоговому входу

Схема подключения потенциометра к Arduino, по аналогии центральный вывод вы можете подключить к любому аналоговому входу.

Ledpin – самостоятельно назначаем пин со встроенным светодиодом на выход и даём индивидуальное имя;

sensorPin – аналоговый вход, задаётся соответственно маркировке на плате: A0, A1, A2 и т.д.;

sensorValue – переменная для хранения целочисленного прочитанного значения и дальнейшей работы с ним.

Код работает так: sensorValue сохраняем прочитанное с sensorPin аналоговое значение (команда analogRead). – здесь работа с аналоговым сигналом заканчивается, дальше всё как в предыдущем примере.

Записываем единицу в ledPin, светодиод включается и ждем время равное значению sensorValue, т.е. от 0 до 1023 миллисекунд. Выключаем светодиод и снова ждем этот период времени, после чего код повторяется.

Таким образом положением потенциометра мы задаем частоту миганий светодиода.

Функция map для Арудино

Теперь о синтаксисе: map (значение которое мы переводим, минимальная величина входного, максимальная величина входного, минимальная выходного, максимальная выходного значения).

В коде это выглядит так:

(map(analogRead(pot), 0, 1023, 0, 180));

Мы считываем значение с потенциометра (analogRead(pot))от 0 до 1023, а на выходе получаем числа от 0 до 180

Значения карты величин:

На практике применим это к работе коду того-же сервопривода, взгляните на код с Arduino IDE, если вы внимательно читали предыдущие разделы, то он пояснений не требует.


И схема подключения.

Схема подключения

Ардуино для начинающих

Мнение автора:

Мне нравится ардуино. Жаль, что её многие опытные программисты микроконтроллеров безосновательно ругают, что она слишком упрощена. Упрощен, в принципе, только язык, но никто не заставляет пользоваться именно им, плюс вы можете прошить микроконтроллер через ICSP разъём, и залить туда тот код, который вам хочется, без всяких ненужных Вам бутлоадеров.

Для тех, кто хочет проиграться с электроникой, как продвинутый конструктор – отлично подойдёт, а для опытных программистов как плата, не требующая сборки, тоже станет полезной!

Еще больше информации про Ардуино и особенности его использования в различных схемах смотрите в электронной книге - Ардуино для чайников. Иллюстрированное практическое руководство .

В статье разберём, что такое Arduino IDE, установим ее и напишем первый шаблон для программы на Arduino Wiring (C++).

Что такое Arduino?

Arduino — это компания, которая разрабатывает аппараты и программы для робототехники и не только. Фактически компания зародилась в 2003 году, когда Эрнандо Барраган в рамках учебной работы создал первую версию платформы Arduino Wiring.

Среда разработки Arduino IDE

Среда разработки Arduino IDE

Установка Arduino IDE

Для использования среды Arduino IDE можно установить программу на свой компьютер или использовать онлайн-версию программы (необходима регистрация). Разберем, как установить программу на Windows 8/10.

Установка Arduino IDE

Программа установлена и готова к работе.

Горячие клавиши Arduino IDE

Меню Arduino IDE

Разберем горячие клавиши и их назначение.

Правка

Ctrl+Zотмена одной операции
Ctrl+Yвозврат одной отмененной операции
Ctrl+Fпоиск по коду
Atrl+Aвыделение всего кода
Ctrl+Pпечать содержимого вкладки
Ctrl+Xвырезать выделенный код
Ctrl+Cкопировать выделенный код
Ctrl+Vвставить выделенный код

Компиляция и загрузка

Ctrl+Rкомпиляция скетча
Ctrl+Uзагрузить скетч
Ctrl+Shift+Uзагрузить скетч с помощью программатора

Сохранение и работа с вкладками

Ctrl+Sсохранить текущий скетч
Ctrl+Shift+Sсохранить текущий скетч с выбором имени сохраняемого файла
Ctrl+Wзакрыть текущую вкладку
Ctrl+Shift+Nновая вкладка
Ctrl+Alt+Стрелка вправопереключение на вкладку справа от активной
Ctrl+Alt+Стрелка влевопереключение на вкладку слева от активной

Другое

Ctrl+Nоткрыть новое окно редактора
Ctrl+Oоткрыть существующий файл скетча
Ctrl+Слэш ( / или русская точка)закомментирование строки
Ctrl+Kоткрыть папку со скетчами
Ctrl+Tавтоформатирование кода
Ctrl+Shift+Mмонитор порта
Ctrl+, (русская буква Б)страница настроек Arduino IDE.

Шаблон программы. Функции setup() и loop()

Комментарии

Шаблон программы

Запустим Arduino IDE и напишем шаблон программы:

После setup и loop скобки () пишутся без пробела. Внутри скобок пробел отсутствует. Сами функции пишутся маленькими буквами. Фигурные скобки располагаются одна под другой на следующих строчках после имени функции.

Если вы все написали правильно, то ваша функция станет другого цвета.

Разберем подробнее назначение каждой функции.

Функция setup()

Функция setup() — это подготовка. Это первая функция, выполняемая программой. Она выполняется только один раз сразу после включения платы или ее перезапуска кнопкой reset. setup() используется чтобы завести новые функции, настроить ПИНы платы, создать переменные. Функция должна быть включена в программу, даже если в ней нет никакого содержания.

Функция loop()

После функции setup() управление переходит к функции loop(). В переводе с английского loop — это петля. Функция делает в точности то, что означает её имя — непрерывно выполняется заново. Она позволяет программе что-то изменять, возвращать данные и управлять платой Arduino.

Читайте также: