Язык программирования Ардуино
Как я уже написал выше все программы создаются на базе языков программирования C/C++.
Если вы знаете C++, то Arduino откроет вам двери в фантастический мир создания роботов и различных устройств.
Приведу пример программы одного из самых простых устройств — мигание светодиода, подключенного к плате:
void setup () { pinMode (13, OUTPUT); // Назначение порта 13 в качестве выходного порта } void loop () { digitalWrite (13, HIGH); // Установка порта 13 в состояние «1», светодиод загорается delay (1000); // Задержка на 1000 миллисекунд digitalWrite (13, LOW); // Установка порта 13 в состояние «0», светодиод гаснет delay (1000); // Задержка на 1000 миллисекунд }
Программы для плат Ардуино пишутся в специальной программе с которой мы познакомимся ниже, но никто не мешает вам использовать тот редактор кода который вам нравится или к которому вы привыкли.
Разное
Использование сдвигового регистра 74HC595
Использование одного сдвигового регистра 74HC595
- ShftOut11 — Простая передача битов
- ShftOut12 — Один за одним
- ShftOut13 — Использование массива
- Управление светодиодами с помощью сдвигового регистра 74HC595
- Создание эффекта «бегущий всадник» с помощью сдвигового регистра 74HC595
- Гистограмма расстояния с помощью сдвигового регистра 74HC595 и ИК-датчика расстояния
Использование двух сдвиговых регистров 74HC595
- ShftOut21 — Два светодиодных счетчика от «0» до «255» (в двоичном формате)
- ShftOut22 — Поочередное зажигание 16 светодиодов
- ShftOut23 — Использование двух массивов
Использование сдвигового регистра CD4021B
Использование одного сдвигового регистра CD4021B
- ShftIn11 — Простой ввод данных
- ShftIn12 — Какая кнопка нажата?
- ShftIn13 — Проверка разных комбинаций
- ShftIn14 — Нажата ли кнопка?
Использование двух сдвиговых регистров CD4021B
- ShftIn21 — Простой ввод данных от двух сдвиговых регистров
- ShftIn22 — Проверка разных комбинаций на двух комплектах переключателей
- ShftIn23 — Печать включенных настроек
RFID
- Гайд по использованию RFID-ридера MFRC522 вместе с Arduino
- Защищенный доступ с помощью RFID-ридера MFRC522 и Arduino
LCD-дисплеи
- Гайд по использованию LCD-дисплея Nokia 5110 вместе с Arduino
- Вывод на LCD-дисплей произвольного текста и значения счетчика
- Прогресс-бар на LCD-дисплее
- Термостат с отображением информации на LCD-дисплее
Управление DC-моторами
- Управление DC-мотором при помощи Arduino
- Управление DC-мотором при помощи Arduino и потенциометра
- Управление двумя DC-моторами при помощи Arduino и Bluetooth
- Управление DC-мотором при помощи Arduino и драйвера моторов
Управление серводвигателями
- Управление серводвигателем с помощью потенциометра
- Радиальный ИК-датчик расстояния
- Радиальный ультразвуковой датчик расстояния
Управление RGB-светодиодом
- Управление RGB-светодиодом при помощи Arduino
- Управление RGB-светодиодом при помощи Arduino и Android-приложения
Последовательный порт
- Вывод значений потенциометра в последовательный порт
- Применение управляющих символов при выводе значений потенциометра в последовательный порт
- Эхо данных последовательного порта
- Различие между char и int
- Управление светодиодом отправкой одиночных символов
- Управление RGB-светодиодом отправкой последовательности цифр
- Управление цветом окна программы на Processing с помощью Arduino и потенциометра
- Управление RGB-светодиодом с помощью палитры цветов из программы на Processing
Использование библиотеки Keyboard
- Запись данных с датчиков в текстовый файл на ПК
- Блокировка ПК на основе показаний фоторезистора
- Управление курсором мыши
Использование библиотеки Wire
- Чтение данных с I2C-датчика температуры TC74A0-5.0VAT
- Чтение данных с I2C-датчика температуры TC74A0-5.0VAT с отображением данных на гистограмме и программе на Processing
Использование библиотеки SPI
- Регулировка яркости светодиодов с помощью двух SPI цифровых потенциометров MCP4231
- Регулировка яркости светодиодов и громкости динамика с помощью двух SPI цифровых потенциометров MCP4231
Использование библиотеки SD
- Запись произвольных данных на SD карту
- Чтение и запись произвольных данных на SD карту
- Чтение и запись произвольных данных на SD карту с использованием часов реального времени
- Регистратор прохода через дверь
Использование прерываний
Прерывания по таймеру
- Мигаем светодиодом с помощью прерывания по таймеру
- Музыкальный инструмент с помощью прерывания по таймеру и аппаратного прерывания
Аппаратная часть Arduino
Существует множество версий этого микроконтроллера. Они отличаются друг от друга размерами, фирмой производителем, частотой процессора, количеством встроенной памяти, количеством контактов вывода/ввода. Так например есть самая популярная ардуинка — Arduino UNO.
Она подходит практически для всех целей, в том числе и для освоения микроконтроллеров. Есть более мощная версия Arduino MEGA, обладающая большей тактовой частотой процессора, увеличенной памятью, бОльшим количеством контактов и более внушительным размером.
Есть и более маленькие версии такие как Arduino Mini и Arduino Pro.
Описание самых популярных плат вы найдете на странице «Платы»
Что можно подключить к Arduino
К пинам микроконтроллера можно подключать огромное количество разнообразных устройств и датчиков. Ардуино умеет считывать значения датчиков, обрабатывать их и управлять механизмами в соответствии с установленной прошивкой. Например: можно подключить датчик света и реле. Когда освещение в помещении становится ниже заданного уровня ардуино открывает реле. Это самый простой пример использования. Ниже не полный перечень устройств и датчиков, которые можно подключить:
Переферийные устройства
- Кнопки, переключатели, сенсорные панели
- Светодиоды
- Динамики и микрофоны
- Коллекторные, безколлекторные и шаговые электродвигатели
- Сервоприводы
- ЖК и LCD дисплеи.
- Устройства считывающие радиометки RFID и NFC
- Ультразвуковые и лазерные датчики расстояния
- Модули Ethernet, WiFi и Bluetooth
- Кардридеры SD
- Модули GSM для совершения звонков и приема/отправки SMS
- GPS для получения точных координат местоположения
Датчики
- Освещенности
- Магнитного поля
- Температуры
- Влажности воздуха и почвы
- Уровня шума
- Вибрации
- Огня и дыма
- Электронные компасы, гироскопы и акселерометры для определения положения в пространстве.
Датчики для Arduino
Arduino или AVR?
Думаю, не ошибусь, если скажу, что каждый начинающий радиолюбитель, еще не имеющий опыта работы ни с одной платформой для разработки электронных устройств, затрудняется в своем выборе. Новички советуют одно, профи – другое. На форумах мнения разделяются. Так сложилось, что мы начали развитие темы прикладного программирования с создания устройств на AVR микроконтроллерах. И если для более опытных электронщиков изучение AVR не становится проблемой, то у начинающих появляется море вопросов. Переход к созданию своих устройств на практике бывает затруднен. Но решение есть. Оно довольно простое и не очень затратное. Многие, думаю, слышали о такой платформе под названием “Arduino”.
Arduino – это электронный модуль-конструктор, имеющий в своем составе МК AVR, который является мозгом всего этого конструктора. Отличие от самого МК AVR – это упрощенное программирование, большое количество дешевых периферийных устройств, которые можно купить без проблем, а также простая и безопасная “заливка” программы в МК.
Блок-схема платы Arduino до боли проста:
Периферийными устройствами в данном случае являются разные датчики контроля, а также исполняемые устройства. Всем этим винегретом заправляет МК AVR, который установлен посередине платы
Вот некоторые из периферийных устройств.
В процессе изучения мы будем знакомиться с ними поближе
Библиотеки Arduino
Библиотеки Arduino представляют собой коллекции функций, которые позволят вам управлять устройствами. Вот некоторые из наиболее широко используемых библиотек:
- – чтение и запись в «постоянно» хранилище;
- – для подключения к интернету, используя плату Arduino Ethernet Shield;
- – для связи с приложениями на компьютере, используя стандартный последовательный протокол;
- – для подключения к сети GSM/GRPS с помощью платы GSM;
- – для управления жидкокристаллическими дисплеями (LCD);
- – для чтения и записи SD карт;
- – для управления сервоприводами;
- – для связи с устройствами, используя шину SPI;
- – для последовательной связи через любые цифровые выводы;
- – для управления шаговыми двигателями;
- – для отрисовки текста, изображений и фигур Arduino TFT экранах;
- – для подключения к интернету, используя плату Arduino WiFi shield;
- – двухпроводный интерфейс (TWI/I2C) для передачи и приема данных через сеть устройств или датчиков.
Наборы и конструкторы Ларт
ЛАРТ Сармат Армага
Набор на основе контроллера Ардуино, при помощи которого можно собрать робота, движущегося по линии. Главный компонент комплекта – миниатюрная плата Ардуино Нано, которая позволяет подключать не только входящие в состав набора компоненты, а и другие элементы совместимые с Ардуино, как механического, так и электронного типа. Это дает возможность совершенствовать полученного робота.
ЛАРТ Печенег Батана
Комплект включает плату Ардуино Нано и имеет достаточное количество элементов для разработки и строительства роботов, которых при помощи состава набора можно собрать две разновидности: робот, движущийся по черной линии и робот с датчиком ультразвука. Для программирования применяется текстовая среда Arduino IDE. Для разных модификаций роботов имеется возможность использования совместимых с Ардуино компонентов, а при помощи дополнительной пластины можно установить большее количество датчиков.
Выбрать и купить наборы ЛАРТ можно на официальном сайте: lartmaster.ru/
Конструктор Смарт Робо
Готовый конструктор для создания электронного робота на основе Ардуино, в комплект входит необходимое количество элементов, и руководство к сборке. Базовый элемент набора – плата от Keyestudio (100% аналог Ардуино). Полученный робот может быть запрограммирован на движение по линии, возможность объезда препятствий и управление от дистанционного пульта. Все элементы соединяются при помощи быстроразъемных соединителей и не требуют пайки. Доработать и усовершенствовать полученную конструкцию можно добавив на плату дополнительные элементы, совместимые с контроллером Ардуино.
Конструктор Смарт
Серия наборов, которые отличаются по комплектации. Основной компонент – плата Smart Uno – аналог контроллера Ардуино Уно, не уступающий ему по качественным характеристикам. В зависимости от комплектации (Смарт 10, Смарт 20 и Смарт 30) набор содержит элементы, как для начального уровня проектирования, так и для разработки более сложных проектов. При необходимости возможно подключение других электронных компонентов, совместимых с микроконтроллером.
Смарт Genuino
Серия наборов – Смарт 10 Genuino, Смарт 20 Genuino, Смарт 30 Genuino, которые отличны по количеству деталей в комплекте. Главный базовый компонент – плата Genuino Uno, кроме которой в составе имеются электронные детали, беспаечная макетная плата, провода и руководство по проектированию. Набор будет интересен как новичкам, так и профессиональным пользователям.
Выбрать и купить конструктор SmartElements можно на официальном сайте: https://smartelements.ru/
Робоплатформа Robbo (ScratchDuino)
Конструктор предназначен для обучения детей и взрослых основам робототехники и электроники. Управление роботизированным механизмом может осуществляться из различных сред программирования (Scratch, Lazarus, Кумир) или же пульта управления. Базовый компонент – картридж Ардуино. В зависимости от типа комплектации варьируется количество составных элементов.
Выбрать и купить конструктор Robbo можно на официальном сайте: https://robboclub.ru/
Модели Ардуино
Платы Arduino
Вот мы и добрались до самих плат Ардуино, которых на данный момент появилось великое множество благодаря открытости платформы: все схемы и исходные коды находятся в открытом доступе, и вы можете сделать свою версию платы и продавать её, чем активно занимаются китайцы. Единственный пункт: слово Arduino – зарегистрированная торговая марка, и свою плату вам придется назвать как-то по-другому, отсюда и появились всякие Искры, Бузины и прочие так называемые Arduino совместимые платы. Разновидностей плат очень много, но используют они одни и те же модели микроконтроллеров. От модели микроконтроллера зависит объем памяти и количество ног, ну и есть некоторые специальные фишки. На большинстве моделей Arduino стоят 8-битные МК от AVR с кварцевым генератором на 16 МГц (либо ниже), то есть по производительности платы на ATmega не отличаются, отличаются только объемом памяти, количеством ног и интерфейсов/таймеров. Модели Ардуино с МК от производителя ARM, например Arduino DUE, в разы мощнее своих собратьев за счёт 32-битного процессора, но это совсем другая история.
Параметр | ATtiny85 | ATmega328 | ATmega32u4 | ATmega2560 |
Кол-во ног | 8 | 32 | 44 | 100 |
Из них доступны | 5 | 23 | 24 | 86 |
Flash память | 8 Kb | 32 Kb | 32 Kb | 256 Kb |
EEPROM память | 512 bytes | 1 Kb | 1 Kb | 4 Kb |
SRAM память | 512 bytes | 2 Kb | 2.5 kB | 8 Kb |
Каналов АЦП | 3 (4 с rst) | 6 (8 в SMD корпусе) | 12 | 16 |
Каналов PWM | 3 | 6 | 7 | 15 |
Таймеры | 2х 8bit | 2х 8bit | 2х 8bit | 2х 8bit |
1х 16bit | 2х 16bit | 4х 16bit | ||
Serial интерфейс | Нет | х1 | х1 | х4 |
I2C интерфейс | Нет | Да | Да | Да |
Прерывания | 1 (6 PCINT) | 2 (23 PCINT) | 5 (44 PCINT) | 8 (32 PCINT) |
Платы на его основе | Digispark, LilyTiny | Uno, Nano, Pro Mini, Lilypad, Strong | Leonardo, Micro, Pro Micro, BS Micro | Mega, Mega Pro |
Таким образом вы должны сразу понять, что, например, Ардуино Уно=Нано=Про Мини=Лилипад по своим возможностям и взаимозаменяемости. Или Леонардо=Про Микро. Ссылки на недорогие китайские Ардуины вы можете найти у меня на сайте. Точно там же вы найдёте ссылки на кучу датчиков, модулей и другого железа, которое можно подключить к Arduino. О возможностях ардуино по работе с другими железками поговорим в одном из следующих уроках.
Дополнительные модули и сенсоры
Полностью раскрыть потенциал Arduino позволяют дополнительные модули, подключающиеся к выводам платы, которые называют пинами (англ. — pin).
Наиболее интересные и популярные модули расширения:
- 3D-джойстик. Своеобразный программируемый 3D-стик, способный стать способом управления спроектированного механизма или робота;
- Bluetooth-модуль. Даёт возможность управления механизмом или обменом данными через Bluetooth;
- EasyVR Shield 3.0. Разработка, служащая для распознавания голосовых команд;
- Espruino Pico. Контролер, позволяющий выполнять Java-скрипты, расширяя варианты применения платы;
- GPRS Shield. Расширение, позволяющее принимать и отправлять голос, SMS и GPRS-данные;
- Motor Shield. Подключаемый модуль, позволяющий программно управлять двумя моторчиками;
- Power Bank. Аккумулятор для переносных компактных модулей на 2000 МАч.
- Датчики влажности, температуры и т.п.: — датчик дождя, — датчик расстояния, — датчик температуры, — детектор пыли, — GPS приемник, — и др.
Это далеко не весь список, а лишь популярные и распространённые дополнения.
Существуют разнообразные подключаемые картридеры, акселерометры, передатчики и модули для разнообразных сфер жизнедеятельности. Arduino начинает эффективно применяться даже в медицине.
Программная часть
Когда система собрана, ее необходимо запрограммировать. Управление GSM выполняется специфическими функциями и АТ-командами. Устройство принимает их, интерпретирует и выдает определенный результат, отправляя/получая СМС или звонок. Команды задаются через программное обеспечение (такая возможность предусмотрена в IDE) или вводятся напрямую через утилиты работы с портами.
AT-команды
Как уже говорилось, GSM-модули управляются посредством передаваемых на них AT-команд. Это текстовые строки, обрабатываемые прошивкой и инициирующие те или иные действия.
Обычно они генерируются управляющим ПО, но могут быть отправлены и с клавиатуры, например, через утилиту монитора порта из поставки Arduino IDE.
Команды делятся на три вида:
- текстовые — на них контроллер дает ответ о поддержке введенной пользователем директивы или отсутствии таковой;
- чтение — просмотр параметров;
- запись — ввод и сохранение некоторых новых значений.
Набор команд может отличаться в зависимости от контроллера.
Получение и отправка СМС
Пример работы с короткими сообщениями для связки «Arduino + сотовый модуль»:
- в IDE выполняется директива AT+CMGF=1. Она указывает перейти в формат передачи текстового сообщения;
- далее вводится AT+CSCS=«GSM». Выбирается кодировка ASCII;
- AT+CMGS=«номер», где номер указывается полностью (в формате «+7…»);
- когда выполнена эта команда, вводится непосредственно текст сообщения, и по нажатию ctrl-Z отправляется на выбранный номер.
Если все сделано, интерфейс программы вернет ОК.
Для получения SMS:
- AT + CNMI = 2,2,0,0,0 — переход в состояние чтения;
- когда блок GSM получит сообщение, он отправит в порт строку +CMTI: «SM»,2. Цифра может отличаться, она обозначает номер СМС в очереди;
- для прочтения следует дать директиву AT+CMGR=2.
Прием голового звонка
Для выполнения потребуется включить библиотеку разработчика GSM.h:
Если SIM-карта защищена пин-кодом, его также следует определить в скетче:
При пустом коде значение этого поля просто остается пустым.
В обязательном порядке объявляется переменная отслеживания статуса подключения к мобильной сети:
Соединение выполняется посредством функции gsmAcess.begin(). Если процесс завершен успешно, функция возвращает строку GSM_READY.
Далее нужно указать, что сотовый модем переведен в режим приема звонка. За это отвечает функция vcs.hangCall(). Следующая важная функция — getvoiceCallStatus. При входящем звонке она вернет строку RECEIVINGCALL. А для определения номера звонящего следует воспользоваться retreiveCallingNumber.
При поднятой трубке скетч сообщит об этом строкой TALKING. После чего перейдет в режим ожидания ввода; для завершения разговора вводится символ перехода на новую строку.
Это основные функции и команды для данной задачи. Разумеется, в полном скетче потребуется определить гораздо больше параметров, которые можно найти в идущих с IDE примерах и официальной документации.
Что такое Arduino и для чего оно нужно?
Arduino — это электронный конструктор, который позволяет любому человеку создавать разнообразные электро-механические устройства. Ардуино состоит из программной и аппаратной части. Программная часть включает в себя среду разработки (программа для написания и отладки прошивок), множество готовых и удобных библиотек, упрощенный язык программирования. Аппаратная часть включает в себя большую линейку микроконтроллеров и готовых модулей для них. Благодаря этому, работать с Arduino очень просто!
С помощью ардуино можно обучаться программированию, электротехнике и механике. Но это не просто обучающий конструктор. На его основе вы сможете сделать действительно полезные устройства. Начиная с простых мигалок, метеостанций, систем автоматизации и заканчивая системой умного дома, ЧПУ станками и беспилотными летательными аппаратами. Возможности не ограничиваются даже вашей фантазией, потому что есть огромное количество инструкций и идей для реализации.
проекты на Arduino
Что такое bluetooth модуль и его назначение
Bluetooth протокол необходим для быстрой передачи данных на небольших расстояниях. Но значительно чаще его применяют в проектах, с целью наладить управление микроконтроллером с близких расстояний. Соответственно, он будет удобен для построения тех же умных домов, если дополнить аппаратную составляющую приложением на смартфон.
Таким образом, первичное и главное назначение Ардуино блютуз – связь с вашим ПК и\или Андроидом по соответствующему протоколу. Это позволяет не только управлять разнообразными датчиками на микроконтроллере, но и, в случае необходимости, обновлять прошивку.
Полностью перепрошить устройство с его помощью не получится. Помимо этого, Android Arduino bluetooth может обеспечить связь между несколькими МК и приборами. Естественно, для этого на каждом из них должен быть установлен независимый модуль. HC-05 позволяет проложить несколько мостов по типу USAR-bluetooth-USART. При этом само устройство будет восприниматься в качестве ответного на USART. А организовывать связь уже будет аппаратная часть вашего проекта.
Модуль HC-06
У блютуз модуля под Ардуино, есть несколько преимуществ, перед стандартными дополнениями под другие МК:
- Инженеру нет необходимости изучать технологию протокола блютуз, чтобы написать софт или начать использовать уже готовые библиотеки.
- Простота использования в целом. Вам не нужно будет паять отдельную плату под распределение мощностей, просто подсоедините устройство к уже готовому МК через пины.
- Обширный выбор библиотек. Так как Ардуино имеет низкий порог вхождения, под все его модули можно найти большое количество библиотек, разного назначения. Но стоит отметить, что весомая их часть – бесполезны, ибо не работают или работают крайне плохо. Ведь пишет их сообщество, которое не изучало основы алгоритмизации и, в большинстве своём, в принципе, плохо разбирается в программировании. Из-за этого, во многих ситуациях, просто модифицировать чужой софт – не лучшее решение, и значительно проще написать свой.
Сфера же применения RC car Arduino bluetooth – огромна и ограничена лишь вашей фантазией. Например, вы можете купить обычную китайскую гарнитуру, припаять к ней пару модулей под Ардуино, так как они могут функционировать и без МК, и загрузить одну из готовых библиотек. После таких манипуляций наушники можно будет использовать в беспроводном режиме и исчезнет проблема с запутывающимися или гнущимися проводами. Это одна из банальных проблем реализации данного протокола в проекте, на деле их тысячи.
Предназначается bluetooth аудио модуль для бытового и коммерческого применения, чему способствуют его характеристики. Также стоит учитывать, что если вы собираетесь в дальнейшем связываться по одноимённому протоколу с ПК, то на большинстве современных устройств необходимо будет докупить блютуз по USB. Но вы можете также спаять его из МК, создав собственный bluetooth модуль для компьютера. Естественно, это не относится к ноутбукам, где поголовно устанавливаются одноимённые передатчики, и никак модифицировать их уже не требуется.
Описание модуля с его особенностями
Ардуино WiFi модуль обладает развитым интерфейсом:
- 14 входами/выходами, 6 из которых могут работать на выход в режиме ШИМ;
- 6 входами аналогового сигнала;
- USB;
- разъемом питания;
- коннекторами для ICSP;
- кнопкой сброса установок.
Присутствие на плате модуля Wi-Fi ESP8266 позволяет Arduino поддерживать обмен информацией по беспроводным сетям 802.11 b/g/n.
Микросхема ESP8266
Для создания беспроводной сети в пределах помещения наиболее часто используется чип ESP8266. С его помощью организуется связь по Wi-Fi, осуществляются сбор информации, дистанционное управление и выход в интернет. Платы Arduino Uno, WeMos, NodeMcu используют ESP8266. Множество самодельных проектов основано на этом чипе с использованием среды Arduino IDE.
Язык программирования Ардуино
Когда у вас есть на руках плата микроконтроллера и на компьютере установлена среда разработки, вы можете приступать к написанию своих первых скетчей (прошивок). Для этого необходимо ознакомиться с языком программирования.
Для программирования Arduino используется упрощенная версия языка C++ с предопределенными функциями. Как и в других Cи-подобных языках программирования есть ряд правил написания кода. Вот самые базовые из них:
- После каждой инструкции необходимо ставить знак точки с запятой (;)
- Перед объявлением функции необходимо указать тип данных, возвращаемый функцией или void если функция не возвращает значение.
- Так же необходимо указывать тип данных перед объявлением переменной.
- Комментарии обозначаются: // Строчный и /* блочный */
Подробнее о типах данных, функциях, переменных, операторах и языковых конструкциях вы можете узнать на странице по программированию Arduino. Вам не нужно заучивать и запоминать всю эту информацию. Вы всегда можете зайти в справочник и посмотреть синтаксис той или иной функции.
Все прошивки для Arduino должны содержать минимум 2 функции. Это setup() и loop().
Функция setup
Функция setup() выполняется в самом начале и только 1 раз сразу после включения или перезагрузки вашего устройства. Обычно в этой функции декларируют режимы пинов, открывают необходимые протоколы связи, устанавливают соединения с дополнительными модулями и настраивают подключенные библиотеки. Если для вашей прошивки ничего подобного делать не нужно, то функция все равно должна быть объявлена. Вот стандартный пример функции setup():
Функция loop
Функция loop() выполняется после функции setup(). Loop в переводе с английского значит «петля». Это говорит о том что функция зациклена, то есть будет выполняться снова и снова. Например микроконтроллер ATmega328, который установлен в большинстве плат Arduino, будет выполнять функцию loop около 10 000 раз в секунду (если не используются задержки и сложные вычисления). Благодаря этому у нас есть большие возможности.
Язык программирования Ардуино
Как я уже написал выше все программы создаются на базе языков программирования C/C++.
Если вы знаете C++, то Arduino откроет вам двери в фантастический мир создания роботов и различных устройств.
Приведу пример программы одного из самых простых устройств — мигание светодиода, подключенного к плате:
void setup () { pinMode (13, OUTPUT); // Назначение порта 13 в качестве выходного порта } void loop () { digitalWrite (13, HIGH); // Установка порта 13 в состояние «1», светодиод загорается delay (1000); // Задержка на 1000 миллисекунд digitalWrite (13, LOW); // Установка порта 13 в состояние «0», светодиод гаснет delay (1000); // Задержка на 1000 миллисекунд }
Программы для плат Ардуино пишутся в специальной программе с которой мы познакомимся ниже, но никто не мешает вам использовать тот редактор кода который вам нравится или к которому вы привыкли.
Понятие «Ардуино»
Arduino представляет собой устройство, состоящее из одной печатной платы, оснащенное контроллером. Оно позволяет передавать и получать сигналы, управлять датчиками, внешними устройствами: освещением, электродвигателями.
Условно его разделяют на мозг и руки. В качестве мозга выступает микроконтроллер AVR семейства ATmega, чаще всего ATmega328.
«Ардуино» предоставляет такие же возможности, как и любая другая классическая плата с микроконтроллером, но управление реализовано гораздо проще, поэтому устройство доступно начинающим. На плате есть все, что необходимо для управления контроллером: тактирующее устройство, питание, сброс, различные подтяжки.
«Руками» служат электрические выводы. Их разное количество в зависимости от модели ардуино. Выводы бывают цифровыми и аналоговыми, назначение которых различается: на цифровой вывод подается логическая единица (3-5 В) или ноль (0-1,5 В), а аналоговые могут принимать сигнал с любым напряжением от 0 до 5 В и измерять его. Работают они по принципу 10-разрядного АЦП, разбивая диапазон на 1024 цифровых значения. Это позволяет измерять сигналы с аналоговых датчиков (термопары, фотодиода и т. д.) и осуществлять управление с плавной регулировкой.