Базовая структура программы для Arduino состоит, по меньшей мере, из двух обязательных частей: функций setup() и loop().
Перед функцией setup() идет объявление переменных, подключение библиотек. Функция setup() запускается один раз после каждого включения питания или сброса платы Arduino.
Функция loop() в бесконечном цикле последовательно исполняет команды, которые описаны в ее теле.
Базовые функции
delay(ms) — Приостанавливает вашу программу на заданное время (в миллисекундах).
millis() — Возвращает число миллисекунд (как unsigned long), прошедшее с момента старта программы.
Первая программа — проверка работы встроенного светодиода
Скомпилируйте и залейте следующий код в Arduino (Uno или Nano):
int ledPin = 13; void setup() < pinMode(ledPin, OUTPUT); >void loop()
Здесь delay(ms) приостанавливает программу на заданное время (в миллисекундах).
Если всё сделано правильно и плата рабочая, то на ней будет моргать светодиод (с интервалом в 1 сек.)
Пример работы Ардуино с дисплеями Nextion в программе FLProg
Платы ARDUINO по низкой цене
Нажми на изображение, чтобы заказать в интернет-магазине:
Now 13.06.23 1:16:17, Your IP: 46.159.151.246; arduino.zl3p.com/basic/33_first_program
ePN
Источник: arduino.zl3p.com
Arduino для начинающих. Часть 1
Доброго времени суток, Хабр. Запускаю цикл статей, которые помогут Вам в знакомстве с Arduino. Но это не значит, что, если Вы не новичок в этом деле – Вы не найдёте ничего для себя интересного.
Введение
Было бы не плохо начать со знакомства с Arduino. Arduino – аппаратно-программные средства для построения систем автоматики и робототехники. Главным достоинством есть то, что платформа ориентирована на непрофессиональных пользователей. То есть любой может создать своего робота вне зависимости от знаний программирования и собственных навыков.
Начало
Создание проекта на Arduino состоит из 3 главных этапов: написание кода, прототипирование (макетирование) и прошивка. Для того, чтоб написать код а потом прошить плату нам необходима среда разработки. На самом деле их есть немало, но мы будем программировать в оригинальной среде – Arduino IDE. Сам код будем писать на С++, адаптированным под Arduino. Скачать можно на официальном сайте.
Скетч (набросок) – программа, написанная на Arduino. Давайте посмотрим на структуру кода:
main() < void setup()< >void loop() < >>
Важно заметить, что обязательную в С++ функцию main() процессор Arduino создаёт сам. И результатом того, что видит программист есть:
void setup() < >void loop()
Давайте разберёмся с двумя обязательными функциями. Функция setup() вызывается только один раз при старте микроконтроллера. Именно она выставляет все базовые настройки. Функция loop() — циклическая.
Она вызывается в бесконечном цикле на протяжении всего времени работы микроконтроллера.
Программирование Ардуино. Урок №1: Структура скетча. Типы данных. Операции над переменными
Первая программа
Для того, чтоб лучше понять принцип работы платформы, давайте напишем первую программу. Эту простейшую программу (Blink) мы выполним в двух вариантах. Разница между ними только в сборке.
int Led = 13; // объявляем переменную Led на 13 пин (выход) void setup() < pinMode(Led, OUTPUT); // определяем переменную >void loop()< digitalWrite(Led, HIGH); // подаём напряжение на 13 пин delay(1000); // ожидаем 1 секунду digitalWrite(Led, LOW); // не подаём напряжение на 13 пин delay(1000); // ожидаем 1 секунду >
Принцип работы этой программы достаточно простой: светодиод загорается на 1 секунду и тухнет на 1 секунду. Для первого варианта нам не понадобиться собирать макет. Так как в платформе Arduino к 13 пину подключён встроенный светодиод.
Прошивка Arduino
Для того, чтоб залить скетч на Arduino нам необходимо сначала просто сохранить его. Далее, во избежание проблем при загрузке, необходимо проверить настройки программатора. Для этого на верхней панели выбираем вкладку «Инструменты». В разделе «Плата», выберете Вашу плату. Это может быть Arduino Uno, Arduino Nano, Arduino Mega, Arduino Leonardo или другие.
Также в разделе «Порт» необходимо выбрать Ваш порт подключения (тот порт, к которому вы подключили Вашу платформу). После этих действий, можете загружать скетч. Для этого нажмите на стрелочку или во вкладке «Скетч» выберете «Загрузка» (также можно воспользоваться сочетанием клавиш “Ctrl + U”). Прошивка платы завершена успешно.
Прототипирование/макетирование
Для сборки макета нам необходимы следующие элементы: светодиод, резистор, проводки (перемычки), макетная плата(Breadboard). Для того, чтоб ничего не спалить, и для того, чтоб всё успешно работало, надо разобраться со светодиодом. У него есть две «лапки». Короткая – минус, длинная – плюс.
На короткую мы будем подключать «землю» (GND) и резистор (для того, чтоб уменьшить силу тока, которая поступает на светодиод, чтоб не спалить его), а на длинную мы будем подавать питание (подключим к 13 пину). После подключения, загрузите на плату скетч, если вы ранее этого не сделали. Код остаётся тот же самый.
На этом у нас конец первой части. Спасибо за внимание.
Источник: habr.com
Инструкция по программированию Arduino

Друзья, на связи снова специалист Giant 4 Алексей! Мы продолжаем наш небольшой курс статей, по использованию платы Arduino Nano и так называемой адресной лентой, на основе светодиодов ws 2812 b . На сегодня это уже четвертая статья. В прошлый раз мы написали первую программу для управления лентой.
Но все-таки нужно иметь хотя бы небольшое представление о языке программирования, которым мы пользовались. Иначе говорить о чем-то дальше будет просто бессмысленно. И так, перед Вами C / C ++ подобный язык. Конечно же, мы не будем изучать его полностью, но я постараюсь затронуть основные моменты.
Основные функции
Конечно же, это функции setup () и loop () и они нам уже знакомы.
Функция setup () вызывается автоматически, при старте программы. Она выполняется один раз и ничего не возвращает, поэтому мы обозначаем данную функцию типом void . В дальнейшем мы разберем, что это значит.
Функция loop () начинает выполняться после завершения функции setup (), данная функция тоже ничего не возвращает и выполняется по кругу бесконечное количество раз.
И loop (), и setup () являются необходимым минимумом программы. Эти функции должны всегда присутствовать, иначе компилятор выдаст ошибку. Как правило, в setup () происходит инициализация объектов. А в loop () выполняется основная программа и вызываются другие функции.
Типы данных
Конечно же, когда речь идет о программировании, то приходится использовать данные разного типа. Типов достаточно много, но мы разберем лишь некоторые из них.
— Boolean – это логический тип данных, переменные такого типа могут принимать лишь два значения true или false . Где true – это истина, а false – это ложь. Без этого типа было бы невозможно организовать логику программы. Для того, чтобы объявить переменную такого типа, необходимо записать « boolean a ;».
И тогда нам будет доступна переменная с именем «а» типа boolean . А для того, чтобы присвоить данной переменной значение, нужно сделать такую запись – « a = true ;». Хотя можно присвоить значение сразу, при объявлении переменной «boolean a = true;». А чтобы в дальнейшем изменить значение переменной, достаточно просто присвоить ей новое значение. Кстати, да, знак равенства – это операция присваивания. Записи с такой операцией принято читать справа налево. « a = true ;» — Значение true присваивается переменно « a ».
boolean a = true;
Таким же образом, как мы объявляли переменные типа boolean , можно объявить переменную любого типа.
— int – пожалуй, самый используемый и востребованный тип. В переменных такого типа хранятся целые числа от -32768 до 32767. Данные ограничения связанны с тем, что на переменную выделяется два байта памяти и больше записать просто не получится. Хотя, если понадобится, то можно воспользоваться другими типами, на которые выделено больше памяти, например, тип long (от -2 147 483 648 до 2 147 483 647).
— String – строковый тип. В переменную такого типа можно записать строку или массив символов.
String s = » Привет «;
Переменная – это имя, закреплённое за выделенной областью памяти. Переменная позволяет опустить потребность контроля, за расположением принадлежащей ей ячейки памяти. Достаточно записать значение в переменную, и значение попадет в выделенную для этого область памяти. При этом, пока существует переменная, присвоенное ей значение будет оставаться в целостности и не будет случайно стерто.
Как мы уже могли понять, переменные могут быть разных типов и содержать в себе разные данные. Мало того, очень важно то, в каком месте объявлена переменная, так как объявление работает лишь в рамках тела, обособленного фигурными скобками. Как только тело заканчивается, переменная перестает существовать. В следующем примере при каждом повторе функции loop (), в начале работы, переменная инициализируется и ей присваивается значение, а в момент завершения, переменная перестает существовать.
String s = » Привет «;
С этим нужно быть аккуратным, так как на инициализацию переменной тратится немного вычислительного ресурса микроконтроллера.
Теперь хочу еще раз обратить ваше внимание на то, что если мы объявим переменную в теле одной функции, и при этом попытаемся использовать в теле другой функции, то программа не сможет ее увидеть. Хорошо, что ошибка вылезет еще на этапе компиляции.
Но при этом, если в теле функции, где объявлена переменная, есть еще какое-то тело, например, условие, то все будет отлично работать.
Также можно объявить глобальную переменную, которая будет видна из любой части программы. Но тогда она никогда не будет очищена. И любое место, где она использована, может повлиять на ее значение. Будьте аккуратны .
Арифметические операторы
С одним из арифметических операторов Arduino вы уже знакомы – это оператор присваивания «=». Но есть и другие, их немного и смысл, думаю, будет понятен и без объяснений.
— «%» = остаток от деления.
Но, не смотря на всю простоту, я приведу пример.
myInt = myInt * 3;
В первой строчке мы объявляем переменную типа int с именем myInt . В пятой строке мы присваиваем нашей переменной значение из суммы чисел «1» и «2», то есть myInt равен трем. В десятой строке мы присваиваем переменной значение, равное значению переменной, умноженной на «3».
Следовательно, 3 * 3 = 9. Но так как функция loop () выполняется по кругу, то при втором проходе, когда переменная уже равна 9, ей будет уже присвоено произведение двух чисел «9» и «3». Следовательно, переменная будет хранить в себе число 27. А при третьем проходе значение превратится в 81. И так будет продолжаться до бесконечности.
И снова мы возвращаемся к этому, только теперь мы уже вооружены некоторыми знаниями и готовы писать свои функции для Ардуино. Да, помимо стандартных setup () и loop () мы можем создавать свои, совершенно любого назначения. Помните, я говорил, что перед названием функции мы пишем « void » именно потому что она ничего не возвращает?
Так вот, функция – это отдельно стоящий блок программы, который мы можем вызвать в любой момент. Мы имеем возможность передать функции какие-то значения, чтобы использовать их в теле функции. Также мы можем распорядиться таким образом, чтобы функция вернула значение нам, к примеру, результат расчета. И « void » — это еще один тип данных, использующийся только в купе с функциями.
Если перед названием функции стоит « void » — это значит, что функция ничего не возвращает, она делает свои операции и просто заканчивает работу. Функции при программировании Arduino используют, как правило, в тех случаях, когда одно и то же действие необходимо повторять из разных частей программы и с разными значениями. Не понятно? Не страшно, сейчас разберем все подробно.
Создать функцию в Arduino очень просто, ее даже не нужно объявлять, достаточно только записать. Давайте создадим функцию с названием « myFun ». Эта функция ничего не принимает, ничего не возвращает и даже ничего не выполняет. Пока что она просто есть.
Источник: giant4.ru