Итальянский бренд arduino и причины его популярности

Содержание

Язык программирования Ардуино

Как я уже написал выше все программы создаются на базе языков программирования 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).

Наиболее интересные и популярные модули расширения:

  1. 3D-джойстик. Своеобразный программируемый 3D-стик, способный стать способом управления спроектированного механизма или робота;
  2. Bluetooth-модуль. Даёт возможность управления механизмом или обменом данными через Bluetooth;
  3. EasyVR Shield 3.0. Разработка, служащая для распознавания голосовых команд;
  4. Espruino Pico. Контролер, позволяющий выполнять Java-скрипты, расширяя варианты применения платы;
  5. GPRS Shield. Расширение, позволяющее принимать и отправлять голос, SMS и GPRS-данные;
  6. Motor Shield. Подключаемый модуль, позволяющий программно управлять двумя моторчиками;
  7. Power Bank. Аккумулятор для переносных компактных модулей на 2000 МАч.
  8. Датчики влажности, температуры и т.п.: — датчик дождя, — датчик расстояния, — датчик температуры, — детектор пыли, — 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

У блютуз модуля под Ардуино, есть несколько преимуществ, перед стандартными дополнениями под другие МК:

  1. Инженеру нет необходимости изучать технологию протокола блютуз, чтобы написать софт или начать использовать уже готовые библиотеки.
  2. Простота использования в целом. Вам не нужно будет паять отдельную плату под распределение мощностей, просто подсоедините устройство к уже готовому МК через пины.
  3. Обширный выбор библиотек. Так как Ардуино имеет низкий порог вхождения, под все его модули можно найти большое количество библиотек, разного назначения. Но стоит отметить, что весомая их часть – бесполезны, ибо не работают или работают крайне плохо. Ведь пишет их сообщество, которое не изучало основы алгоритмизации и, в большинстве своём, в принципе, плохо разбирается в программировании. Из-за этого, во многих ситуациях, просто модифицировать чужой софт – не лучшее решение, и значительно проще написать свой.

Сфера же применения 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 цифровых значения. Это позволяет измерять сигналы с аналоговых датчиков (термопары, фотодиода и т. д.) и осуществлять управление с плавной регулировкой.