Самые первые простые программы на Arduino — поморгать диодом. В IDE для платы есть много примеров программ, в т.ч. и такие простые.
Вот один из примеров:
/* Blink Turns on an LED on for one second, then off for one second, repeatedly. This example code is in the public domain. */ // Pin 13 has an LED connected on most Arduino boards.
// give it a name: int led = 13; // the setup routine runs once when you press reset: void setup() < // initialize the digital pin as an output. pinMode(led, OUTPUT); > // the loop routine runs over and over again forever: void loop() < digitalWrite(led, HIGH); // turn the LED on (HIGH is the voltage level) delay(1000); // wait for a second digitalWrite(led, LOW); // turn the LED off by making the voltage LOW delay(1000); // wait for a second >
Из комментариев к тексту понятно, что программа делает. Даже нет необходимости делать какие либо схемы, диод на пин 13 уже встроен в сам Arduino достаточно только скомпилировать и отправить программу на устройство. Мы с Арсением решили усложнить и заставить диод выдавать сигнал SOS. Получилась такая программа:
Программирование Ардуино с нуля. Arduino для начинающих.
int led = 12; // the setup routine runs once when you press reset: void setup() < // initialize the digital pin as an output. pinMode(led, OUTPUT); > // the loop routine runs over and over again forever: void loop() < int i; for(i=0;i<=2;i++) < digitalWrite(led, HIGH); // turn the LED on (HIGH is the voltage level) delay(500); // wait for half a second digitalWrite(led, LOW); // turn the LED off by making the voltage LOW delay(500); > // wait for a second for(i=0;i<=2;i++) < digitalWrite(led, HIGH); // turn the LED on (HIGH is the voltage level) delay(1000); // wait for a second digitalWrite(led, LOW); // turn the LED off by making the voltage LOW delay(1000); > >
Результат её работы:
Ну и первая собранная на макете схема:
Вот так оно моргает:
Источник: medinskiy.net
Урок 4. Arduino — цикл for. Изучаем Ардуино без Arduino.
Сегодня в уроке программирования Arduino познакомимся с циклом for. Для этого разберём пример подачи сигнала бедствия SOS (СОС) с помощью Arduino и светодиода.
SOS — радиосигнал о помощи от терпящих бедствие на море. Состоит из сочетания трех точек, трёх тире и ещё трех точек азбуки Морзе. Мнение, будто SOS — аббревиатура английского словосочетания «Save Our Souls» («Спасите наши души») или «Save Our Ship» («Спасите наш корабль») — красивая легенда. На самом деле расшифровки нет, просто соединение точек, тире, точек — наиболее простая и отчетливая комбинация.
Подать сигнал SOS можно с помощью дыма, огня, отражения. В данном уроке мы научимся подавать сигнал бедствия с помощью светодиода и Arduino.
Схема подключения Arduino.
Схема подключения проста. Достаточно подключить всего один светодиод к Arduino. Для данного урока можно воспользоваться встроенным светодиодом на плате Arduino UNO, который подключен к 13 пину, и на плате обозначается буквой L. Но для наглядного примера подключим внешний светодиод.
Цель урока: Arduino — цикл for.
Из названия урока понято, что будем изучать цикл forцикл for.
Конструкция for используется для повторения блока операторов, заключенных в фигурные скобки. Счетчик приращений обычно используется для прибавления и завершения цикла. Оператор for подходит для любых повторяющихся действий и часто используется в сочетании с массивами коллекций данных/выводов.
for ( initialization ; condition ; increment )
Инициализация ( Initialization ) выполняется самой первой и один раз. Каждый раз в цикле проверяется условие ( condition ), если оно верно, выполняется блок операторов и приращение ( increment ), затем условие проверяется вновь. Когда логическое значение условия становится ложным, цикл завершается.
Использование цикла for для подачи сигнала бедствия SOS.
Чтобы подать сигнал SOS можно написать по порядку все необходимые команды. Например, чтобы подать 3 точки можно написать вот такие строки кода.
digitalWrite(led_pin, HIGH); delay(350); // digitalWrite(led_pin, LOW); delay(300); // digitalWrite(led_pin, HIGH); delay(350); // digitalWrite(led_pin, LOW); delay(300); // digitalWrite(led_pin, HIGH); delay(350); // digitalWrite(led_pin, LOW); delay(300); //
По аналогии можно подать 3 тире. Как видим данную задачу можно решить и без использования цикла. Но код в таком случае будет очень большой. Чтобы сделать код более читабельным, и чтобы он стал меньше, будем использовать цикл.
Цикл for выполняет повторяющиеся команды нужное количество раз.
В итоге у нас получается вот такой код.
int led_pin =2; void setup() < pinMode(led_pin, OUTPUT); >void loop() < for (int i = 0; idelay(300); for (int i=0; i delay(300); for (int i=0; i delay(5000); >
Рассмотрим первый цикл из кода:
for (int x=0; x
- int x=0 — Присвоим переменной x значение равное 0.
- x ; — Если x меньше чем 3, выполняем цикл.
- x++ — При каждом выполнении цикла прибавляем к x единицу. По другому данную строку можно записать x=x+1.
Изначально Икс ( x) равен 0. Сравниваем 0. После выполнения действия в скобках. Выполняем проверку x у нас сейчас равен 1. 1. Аналогично пройдет третий проход по циклу. А при попытке выполнить цикл четвертый раз у нас получится, что 3=3. Условия цикла не выполняется. Выполнение цикла прекращаться.
Остальные циклы в скетче выполняются аналогично.
Загружаем код в Arduino UNO. Arduino — цикл for.
Arduino UNO уроки для начинающих можно использовать не только в симуляторе, но и программировать реальную Arduino UNO. Для этого полученный код можно скопировать в Arduino IDE и загрузить в отладочную плату. Подробнее о загрузке кода смотрите в предыдущем уроке.
Понравился Урок 4. Arduino — цикл for. Изучаем Ардуино без Arduino? Не забудь поделиться с друзьями в соц. сетях.
А также подписаться на наш канал на YouTube, вступить в группу Вконтакте, в группу на Facebook.
Спасибо за внимание!
Технологии начинаются с простого!
Источник: arduino-tex.ru
Справочник языка Ардуино
Язык программирования Ардуино построен на языке С/С++. С++ низкоуровневый язык и он довольно сложен для изучения. Но для программирования устройств на основе Ардуино создан более простой язык, использовать который вы сможете с первого дня изучения Ардуино. Огромное сообщество уже создало массу готовых функций, классов и библиотек для работы с микроконтроллером и оборудованием. Описание этих функций и другие особенности языка вы найдете в этом справочнике языка программирования Ардуино.
Функции
Цифровой ввод/вывод
- pinMode() // Установить режим работы пина на вход или выход.
- digitalWrite() // Подает HIGH или LOW на цифровой пин.
- digitalRead() // Считывает значение с заданного пина.
Аналоговый ввод/вывод
- analogRead() // Cчитывает значение с указанного контакта.
- analogReference() // Определяет опорное напряжение.
- analogWrite() // Выдает аналоговую величину на контакт.
Функции работы со временем
- millis() // Возвращает количество миллисекунд с момента начала выполнения текущей программы.
- micros() // Возвращает количество микросекунд с момента начала выполнения текущей программы.
- delay() // Останавливает выполнение программы на заданное количество миллисекунд.
- delayMicroseconds() // Останавливает выполнение программы на заданное количество микросекунд.
Математические функции
- min() // Возвращает наименьшее из двух значений.
- max() // Возвращает наибольшее из двух значений.
- abs() // Возвращает модуль числа.
- constrain() // Bозвращает число, так чтобы оно было в области допустимых значений
- map() // Пропорционально переносит значение из текущего диапазона в новый.
- pow() // Вычисляет значение возведенное в заданную степень.
- sq() // Возвращает квадрат числа.
- sqrt() // Вычисляет квадратный корень числа.
Тригонометрические функции
- sin() // Возвращает синус угла, заданного в радианах.
- cos() // Возвращает косинус угла, заданного в радианах.
- tan() // Возвращает тангенс угла, заданного в радианах.
Генераторы случайных значений
- randomSeed() // Инициализирует генератор псевдослучайных чисел.
- random() // Возвращает псевдослучайное число.
Дополнительные фунции ввода/вывода
- tone() // Генерирует сигнал прямоугольной формы.
- noTone() // Останавливает сигнал, созданный командой tone().
- shiftOut() // Последовательно выводит байт информации на порт ввода/вывода.
- pulseIn() // Считывает длину сигнала на заданном порту.
Внешние прерывания
- attachInterrupt() // Задает функцию обработки внешнего прерывания.
- detachInterrupt() // Выключает обработку внешнего прерывания.
Функции передачи данных
- Serial // Набор функций Serial служит для связи устройства Ардуино с компьютером или другими устройствами.
Новое видео на канале
Свежие записи
- Библиотека. Урок 26. Ардуино
- Классы. Урок 25. Ардуино
- Сайт на Laravel. Урок 6. Vk API
- Сайт на Laravel. Урок 5. Контроллер
- Сайт на Laravel. Урок 4. Git
Источник: arcadepub.ru