Проекты ардуино для начинающих

История Ардуино

Основателями компании, которая начала создавать платы Ардуино, являются итальянцы Массимо Банци, Девида Куартиллье, Тома Иго, Джанлука Мартино и Девида Меллиса. Такой была первоначальная команда создателей.

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

Фрагмент портрета Ардуина из Ивреи. Замок Мазино. Картина пьемонтской школы около 1700 года.

Ардуин был итальянским дворянином, который был королем Италии с 1002 по 1014 год. В 990 году Ардуин стал маркграфом Ивреи, а в 991 году графом Священного дворца Латеранского в Риме.

Стоит также сказать, что для Соединенных Штатов Америки используется другое название — Genuino.

Плюсы Ардуино

Самый главный плюс плат Arduino для начинающих, как я уже упомянул выше, — это то, что нам не нужно использовать паяльник и не нужно ничего паять.

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


Пример сборки устройства с помощью перемычек

Кроме того, чтобы плата заработала всего лишь достаточно подключить её к компьютеру через USB.

Дополнительные плюсы я перечислю ниже, но не пугайтесь, если какие-то термины вы не поймете, со временем вы с ними разберетесь:

  1. Плата обладает встроенным программатором (не нужен компилятор);
  2. Использование языка программирования близкого к C/C++, что делает её простой в использовании и изучении;
  3. Наличие множества библиотек для модулей, сенсоров, дисплеев и т.п., доступных для свободного использования;
  4. Для сбора устройства не требуется пайка, компоненты соединяются при помощи специальной макетной платы, перемычек и проводов;
  5. Возможность автономной работы, т.е. использование батареек или аккумуляторов;
  6. Наличие версии для работы с популярной мобильной операционной системой Android;
  7. Огромное количество различных модулей, сенсоров, дисплеев, датчиков и т.п..
  8. Наличие большого количества плат расширения — shields или «шилды».

Есть еще один очень существенный плюс Arduino — просто невероятно огромное сообщество любителей этих плат и любителей посоздавать различные устройства на ее основе своими руками.

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

Наличие портативных аккумуляторов и беспроводных источников передачи данных способствуют созданию ряда интересных проектов.

Что умеет Ардуино

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

Этих возможностей хватает для реализации сложных устройств, таких как беспилотные летательные аппараты, 3D-принтеры, роботизированные манипуляторы, радиоуправляемые машинки, лодки, вездеходы и т. д. Возможности Ардуино ограничены только воображением. Если вам будет не хватать возможностей Ардуино, то существуют более мощные микроконтроллеры такие как Ардуино Мега, NodeMCU, STM32, Wemos, Raspberry Pi, Orange Pi.

Программная часть Arduino

Программируются микроконтроллеры на упрощенной версии языка C++ с дополнительными функциями обработки ввода и вывода для легкого и удобного использования ардуино. Так же у arduino есть своя среда разработки Arduino IDE. Подробно о том как установить, настроить и использовать эту программу изложено в статье Arduino IDE. Список необходимых функций и описание их использования вы найдете на странице программирование.

Arduino это сложно?

Вовсе нет! Ардуино становится очень популярна, благодаря простоте и дешевизне. Вы легко найдете множество уроков, советов и примеров по работе с этим микроконтроллером. Разобраться в основах можно всего за пару часов. Любой может сделать собственного робота или другое устройство независимо от подготовки. Платформа предоставляет практически безграничные возможности. Есть примеры удивительных, красивых, забавных и полезных устройств, созданных с помощью Arduino.

Сводная таблица

Эта сводная таблица показывает сравнение характеристик всех плат Arduino и Genuino.

Название Процессор Рабочее/входное напряжение Скорость процессора Аналоговый Вход/выход Цифровые IO/PWM EEPROM SRAM Flash USB UART
101 Intel Curie 3.3 V/ 7-12V 32MHz 6/0 14/4 24 196 Regular
Gemma ATtiny85 3.3 V / 4-16 V 8 MHz 1/0 3/2 0.5 0.5 8 Micro
LilyPad ATmega168VATmega328P 2.7-5.5 V /2.7-5.5 V 8MHz 6/0 14/6 0.512 1 16
LilyPad SimpleSnap ATmega328P 2.7-5.5 V /2.7-5.5 V 8 MHz 4/0 9/4 1 2 32
LilyPad USB ATmega32U4 3.3 V / 3.8-5 V 8 MHz 4/0 9/4 1 2.5 32 Micro
Mega 2560 ATmega2560 5 V / 7-12 V 16 MHz 16/0 54/15 4 8 256 Regular 4
Micro ATmega32U4 5 V / 7-12 V 16 MHz 12/0 20/7 1 2.5 32 Micro 1
MKR1000 SAMD21 Cortex-M0+ 3.3 V/ 5V 48MHz 7/1 8/4 32 256 Micro 1
Pro ATmega168 ATmega328P 3.3 V / 3.35-12 V5 V / 5-12 V 8 MHz 16 MHz 6/0 14/6 0.512 1 1 2 16 32 1
Pro Mini ATmega328P 3.3 V / 3.35-12 V5 V / 5-12 V 8 MHz 16 MHz 6/0 14/6 1 2 32 1
Uno ATmega328P 5 V / 7-12 V 16 MHz 6/0 14/6 1 2 32 Regular 1
Zero ATSAMD21G18 3.3 V / 7-12 V 48 MHz 6/1 14/10 32 256 2 Micro 2
Due ATSAM3X8E 3.3 V / 7-12 V 84 MHz 12/2 54/12 96 512 2 Micro 4
Esplora ATmega32U4 5 V / 7-12 V 16 MHz 1 2.5 32 Micro
Ethernet ATmega328P 5 V / 7-12 V 16 MHz 6/0 14/4 1 2 32 Regular
Leonardo ATmega32U4 5 V / 7-12 V 16 MHz 12/0 20/7 1 2.5 32 Micro 1
Mega ADK ATmega2560 5 V / 7-12 V 16 MHz 16/0 54/15 4 8 256 Regular 4
Mini ATmega328P 5 V / 7-9 V 16 MHz 8/0 14/6 1 2 32
Nano ATmega168ATmega328P 5 V / 7-9 V 16 MHz 8/0 14/6 0.5121 12 1632 Mini 1
Yùn ATmega32U4AR9331 Linux 5 V 16 MHz400MHz 12/0 20/7 1 2.516MB 3264MB Micro 1
Arduino Robot ATmega32u4 5 V 16 MHz 6/0 20/6 1 KB (ATmega32u4)/512 Kbit (I2C) 2.5 KB(ATmega32u4) 32 KB (ATmega32u4) of which4 KB used by bootloader 1 1
MKRZero SAMD21Cortex-M0+32bit low powerARM MCU 3.3 V 48 MHz 7 (ADC 8/10/12 bit)/1(DAC 10 bit) 22/12 No 32 KB 256 KB 1 1

Спецификации плат, которые больше не выпускаются.

Название Процессор Рабочее/входное напряжение Скорость процессора Аналоговые вход/выход Цифровые IO/PWM EEPROM SRAM Flash

USB

UART

BT ATmega328P 5 V / 2.5-12 V 16 MHz 6/0 14/6 1 2 32 1
Fio ATmega328P 3.3 V / 3.7-7 V 8 MHz 8/0 14/6 1 2 32 Mini 1

Подключение Arduino Nano

Подключение платы Arduino Nano к компьютеру не представляет особого труда – оно аналогично обычной плате Uno. Единственная сложность может возникнуть при работе с платой на базе чипа ATMEGA 168 – в настройках нужно выбрать сперва плату Nano, а затем нужный вариант процессора.

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

Микросхема CH340 часто используется в платах Ардуино со встроенным USB-to-Serial преобразователем. Она позволяет уменьшить затраты на производство плат, не влияя на ее работоспособность. При  помощи этого программатора можно легко прошивать платы Ардуино. Для того, чтобы начать работать с этой микросхемой, нужно установить драйвер на компьютер.

Установка выполняется в несколько этапов:

 Настройка Arduino IDE

Стандартная среда разработки Arduino IDE используется для работы всех видов Ардуино с компьютером. Чтобы начать работу, нужно сначала скачать Arduino IDE с официального сайта и установить ее. Удобнее скачивать Windows Installer, особенно если среда разработки будет установлена на постоянном рабочем компьютере. Если скачан архив, то его нужно распаковать и запустить файл Arduino.exe.

Как только среда установлена, нужно ее запустить. Для этого нужно подключить к компьютеру саму плату Ардуино через USB. Затем перейти в меню Пуск >> Панель управления >> Диспетчер устройств, найти там Порты COM и LPT. В списке появится установленная плата и указан номер порта, к которому подключается плата.

После этого нужно запустить Arduino IDE, перейти в меню Инструменты >> Порт, и указать порт, к которому присоединена Ардуино.  В меня Инструменты>> Платы нужно выбрать модель подключенной платы, в данном случае Arduino Nano. Если у вас плата Nano версии 2.0, то вам нужно также выбрать вариант процессора в соответствующем меню.

Важно помнить, что если к компьютеру будет подключаться другая плата, настройки снова нужно будет поменять на соответствующее устройство

Виды

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

  1. Датчики. Разнообразные системы или контроллеры, позволяющие считывать, отправлять и обрабатывать информацию. Хотя последние иногда относят ко второму классу модулей, но из-за тесной связи с устройствами ввода-вывода их лучше причислить именно к датчикам, тем более, зачастую они выполняют сразу две функции. Все эти устройства направленны на расширение аппаратного функционала системы, например, чтобы дать возможность Ардуино считывать расстояние до объекта или влажность воздуха, что просто необходимо для многих систем.
  2. Модули, расширяющие вычислительные мощности проекта. Это различные карты памяти, дополнительные буферы для проведения операций и вспомогательные многопоточные процессоры. К ним же можно отнести вариации самого микроконтроллера, характеристики которого варьируются от версии к версии. Они направлены именно на улучшение возможностей программной части системы, например, дополнительные карты памяти позволяют хранить больше информации в различных кодеках, чтобы воспроизводить какие-то аудиодорожки. Особенно необходимы при проектировании сложных систем с нейросетями или в робототехнике, в которой также используется Ардуино.

Сами же датчики отдельно делятся на:

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

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

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

Что можно сделать с помощью Ардуино?

Для начала работы с Ардуино нам достаточно любой платы. Большинство начинающих Ардуинщиков и любителей сделать что-либо своими руками начинают с Arduino Uno:

Arduino Uno R3

Даже если у вас есть есть только плата, то вы уже можете начать работать с ней.

Как я уже написал выше — один из первых и самых популярных уроков для начинающих — моргание встроенным на плату светодиодом.

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

На базе Arduino создание устройств ограничивается только человеческой фантазией. Вы можете запрограммировать систему быстро среагировать на определённое изменение и сможете управлять:

  • светом,
  • моторами,
  • разнообразными приводами,
  • и т.п..

Самое интересное, что Ардуино применяется не только для домашнего использования, но и для промышленного.

Если вы только начинаете знакомство с микроконтроллерами, то рекомендуем вам начать с самых простых, которые есть на нашем сайте:

Разработка любых устройств зависит только от вашей фантазии, а Ардуино и множество дополнительных компонентов помогают в создании этих устройств своими руками.

Преобразование типов данных

В Ардуино преобразование переменной — это приведение значение переменной к другому типу. Например, требуется в программе преобразовать тип данных byte в тип данных int. Для этого требуется указать нужный тип переменной в скобках перед преобразуемой переменной — результат вернет переменную с новым типом данных. Приведем пример явного преобразования типа данных (переменных) Ардуино:

byte x = 150;
int y = (int)x;
// в переменную y будет записано значение переменной x, приведенной к типу byte
float x = 15,4;
int y = (int)x;
// в переменную y будет записано значение x, приведенной к целочисленному значению
// переменная будет округлена до 15

Заключение. Знание типов переменных поможет правильно использовать объем памяти в плате Arduino, что поможет работать микроконтроллеру намного быстрее и эффективнее. Использование переменных позволяет не запоминать какое-либо значение, для этого достаточно обратиться к ячейке памяти по заданному имени.

Аппаратная часть Arduino

Для начала стоит уяснить, что собой представляет микроконтроллер. По логике, это небольшое устройство, к которому подключаются все остальные элементы системы. Ардуино должен координировать их работу при помощи прописанных в нём скриптов, выдавая соответствующие электрические сигналы. Для стандартного МК Ардуино сигналом является 5 вольт – это единичка, а отсутствие сигнала – нолик.

Именно на таком принципе построено программирование двоичным кодом. Но от такой системы мы уже давно ушли, и потому к устройству можно подключать трансформаторы переменного тока и дополнительные резисторы, ведь некоторым модулям требуется ток в 3.2-4.7 Вольт.

Соответственно, аппаратная часть Ардуино в стандартной комплектации представлена чипом с постоянной памятью, набором из резисторов и транзисторов, а также несколькими пинами. Такая простая конструкция позволяет пользователю самому навешивать «улучшения» по необходимости.

С «коробки» в микроконтроллер устанавливается стандартная прошивка, способная распознавать базовые АТ команды. Пользователь может переустановить её или перепрошить Ардуино по желанию, но стоит учитывать, что без должного опыта вы можете получить бесполезную и неработающую плату.

Как несложно догадаться, изначально Ардуино – это лишь инструмент, который позволяет координировать работу всей системы. А делает он это при помощи встроенных в него библиотек, которые можно устанавливать в систему дополнительно, по необходимости. Вплоть до того, что вы можете поставить вспомогательную карту памяти, если не хватает места. А сами же библиотеки написаны на низкоуровневом C++, который обеспечивает полный контроль над работой микроконтроллера, но имеет и ряд весомых недостатков, о которых мы и поговорим ниже.

Справочник языка Ардуино

Операторы

  • setup()
  • loop()

Синтаксис

  • ; (точка с запятой)
  • {} (фигурные скобки)
  • // (одностроковый коментарий)
  • /* */ (многостроковый коментарий)
  • #define
  • #include

Битовые операторы

  • & (побитовое И)
  • | (побитовое ИЛИ)
  • ^ (побитовое XOR или исключающее ИЛИ)
  • ~ (побитовое НЕ)
  • << (побитовый сдвиг влево)
  • >> (побитовый сдвиг вправо)
  • ++ (инкремент)
  • — (декремент)
  • += (составное сложение)
  • -= (составное вычитание)
  • *= (составное умножение)
  • /= (составное деление)

  • &= (составное побитовое И)
  • |= (составное побитовое ИЛИ)

Данные

Типы данных

  • void
  • boolean
  • char
  • unsigned char
  • byte
  • int
  • unsigned int
  • word
  • long
  • unsigned long
  • short
  • float
  • double
  • string — массив символов
  • String — объект
  • массивы

sizeof()

Библиотеки

  • EEPROM
  • SD
  • SPI
  • SoftwareSerial
  • Wire

Функции

Цифровой ввод/вывод

  • pinMode()
  • digitalWrite()
  • digitalRead()

Аналоговый ввод/вывод

  • analogReference()
  • analogRead()
  • analogWrite() — PWM

Только для Due

  • analogReadResolution()
  • analogWriteResolution()

Расширенный ввод/вывод

  • tone()
  • noTone()
  • shiftOut()
  • shiftIn()
  • pulseIn()

Время

  • millis()
  • micros()
  • delay()
  • delayMicroseconds()

Математические вычисления

  • min()
  • max()
  • abs()
  • constrain()
  • map()
  • pow()
  • sqrt()
  • sq()

Тригонометрия

  • sin()
  • cos()
  • tan()

Случайные числа

  • randomSeed()
  • random()

Биты и байты

  • lowByte()
  • highByte()
  • bitRead()
  • bitWrite()
  • bitSet()
  • bitClear()
  • bit()

Внешние прерывания

  • attachInterrupt()
  • detachInterrupt()

Прерывания

  • interrupts()
  • noInterrupts()

Дополнительные модули и сенсоры

Полностью раскрыть потенциал 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 начинает эффективно применяться даже в медицине.

Переносные электронные устройства

Ниже сравнительные таблицы, так называемых, переносных электронных устройств.

Платы

Arduino Gemma Lilypad Arduino USB Lilypad Arduino Main Board
Микроконтроллер ATtiny85 ATMega32u4 ATmega168 or ATmega328V
Рабочее напряжение 3.3 V 3.3 V 2.7 V — 5.5 V
Входное напряжение 4 V — 16 V 3.8 V — 5 V 2.7 V — 5.5 V
Цифровые (I/O) Пины 3 9 14
PWM Каналы 2 4 6
Аналоговый вход Каналы 1 4 6
Постоянный ток на I/O Пин 20 mA 40 mA 40 mA
Absorption 9 mA while running
Флэш-память 8 KB (2.75 KB для загрузчика) 32 KB (4 KB для загрузчика) 16 KB (2 KB для загрузчика)
SRAM 512 KB 2.5 KB 1 KB
EEPROM 512 KB 1 KB 512 KB
Тактовая частота 8 MHz 8 MHz 8 MHz
LED встроенные 1
Диаметр 27.94 mm 50 mm

Платы (продолжение)

Lilypad Arduino Simple Lilypad Arduino Simple Snap
Микроконтроллер ATmega328 ATmega328
Рабочее напряжение 2.7 V — 5.5 V 2.7 V — 5.5 V
Входное напряжение 2.7 V — 5.5 V 2.7 V — 5.5 V
Цифровые (I/O) Пины 9 9
PWM Каналы 5 5
Аналоговый вход Каналы 4 4
Постоянный ток на I/O Пин 40 mA 40 mA
Флэш-память 32 KB (2 KB для загрузчика) 32 KB (2 KB для загрузчика)
SRAM 2 KB 2 KB
EEPROM 1 KB 1 KB
Тактовая частота 8 MHz 8 MHz
Диаметр 50 mm 50 mm
Радиус 18 mm

Arduino для детей

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

Arduino – это целый мир, в котором можно почувствовать себя волшебником. Лучший инструмент для приобщения детей к технологиям и вдохновленного инженерного творчества! Для обучения детей электронике вы можете использовать как отдельные контроллеры Arduino Uno, Mega или Nano, а также наборы и конструкторы ардуино российских и китайских производителей. Обучение детей программированию Ардуино возможно с использованием среды программирования Arduino IDE или же в визуальных средах ArduBlock, S4A, mBlock, основанных на Scratch.

Аналоговые входы Arduino

Как мы уже знаем, цифровые пины могут быть как входом так и выходом и принимать/отдавать только 2 значения: HIGH и LOW. Аналоговые пины могут только принимать сигнал. И в отличии от цифровых входов аналоговые измеряют напряжение поступающего сигнала. В большинстве плат ардуино стоит 10 битный аналогово-цифровой преобразователь. Это значит что 0 считывается как 0 а 5 В считываются как значение 1023. То есть аналоговые входы измеряют, подаваемое на них напряжение, с точностью до 0,005 вольт. Благодаря этому мы можем подключать разнообразные датчики и резисторы (терморезисторы, фоторезисторы) и считывать аналоговый сигнал с них.

Для этих целей в Ардуино есть функция analogRead(). Для примера подключим фоторезистор к ардуино и напишем простейший скетч, в котором мы будем считывать показания и отправлять их в монитор порта. Вот так выглядит наше устройство:


Подключение фоторезистора к Ардуино

В схеме присутствует стягивающий резистор на 10 КОм. Он нужен для того что бы избежать наводок и помех. Теперь посмотрим на скетч:

Вот так из двух простейших элементов и четырех строк кода мы сделали датчик освещенности. На базе этого устройства мы можем сделать умный светильник или ночник. Очень простое и полезное устройство.

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

Аналоговые и цифровые выходы на Ардуино

Для этого занятия нам потребуется:

  • плата Arduino Uno / Arduino Nano / Arduino Mega;
  • макетная плата;
  • светодиод;
  • резистор 220 Ом;
  • провода «папа-папа».

Если вы хотите регулировать выходное напряжение, то следует использовать пины, помеченные символом «~». Для Arduino Uno — это 3, 5, 6, 9, 10, 11. С помощью аналоговых портов можно выдавать любое напряжение 0 до 5 Вольт, а цифровые выходы можно только включать и выключать. Аналоговые порты используют ШИМ (широтно-импульсную модуляцию), по английски PWM (pulse-width modulation), с помощью которой имитируется аналоговый сигнал.


Аналоговые выходы на плате Ардуино имеют, отметку тильда «~»

Чтобы понять разницу между цифровым и аналоговым сигналом, соберите на макетной плате схему из светодиода и резистора, как на первом занятии — Подключение светодиода. Но в этот раз подключите светодиод к аналоговому выходу ~9. Откройте скетч для мигания светодиодом из первого занятия и измените в нем порт выхода с Pin13 на Pin9. Загрузите скетч в плату Arduino NANO или UNO.


На Arduino аналоговый выход будет работать, как цифровой

9 порт может работать, как цифровой выход. Но если функцию digitalWrite изменить на analogWrite, то вместо значения HIGH (1) и LOW (0) можно поставить любое значение от 0 до 255. Именно в этом интервале можно менять напряжение на аналоговых выходах. Загрузите программу для плавного включения и затухания светодиода. Подробное описание работы данной программы даны ниже в пояснении к коду.

Скетч. Аналоговый сигнал Ардуино и светодиод

int svet = 0; // начальная яркость свечения светодиода
int fade = 5; // шаг изменения яркости свечения светодиода

void setup() {
  pinMode(9, OUTPUT); // используем Pin9 для операции вывода
}

void loop() {
 // устанавливаем яркость светодиода на Pin9
  analogWrite(9, svet);

// изменяем яркость, прибавляя заданную величину fade в каждом цикле
  svet = svet + fade;

// меняем порядок затухания при минимальной и максимальной яркости
  if (svet == 0 || svet == 255) {
    fade = -fade;
  }

  delay(20); // устанавливаем паузу для эффекта
}

Пояснения к коду:

  1. Функция , где pin — порт выхода на который подается сигнал, value — значение между 0 (полностью выключено) и 255 (полностью включено), используется для управления яркостью светодиода или скоростью электродвигателя, посредством Широтно-Импульсной Модуляции (ШИМ);
  2. Переменная имеет начальное значение «0» при каждом выполнении цикла к величине прибавляется заданное значение (в данном скетче fade = 5);
  3. При достижении переменной максимального значения равного 255, принимает отрицательное значение -5. Теперь при каждом выполнении цикла к величине прибавляется -5, т.е. каждый раз из вычитается .
  4. Если сопоставить работу скетча с графиком процесса квантования, размещенным на рисунке в начале статьи, то — это шаг квантования, т.е. величина на которую увеличивается подаваемое напряжение, а — это шаг дискретизации, т.е. период времени через который меняется значение .

Что за Github и зачем он мне?

Github — это огромное сообщество программистов. Да, ваш код будет публично светиться на весь интернет, но… любой человек может предложить свои правки к вашему коду. Мне, например, очень помогли с SmartDelay два человека, один из которых сделал свою подобную библиотеку и мы поподсматривали чуть-чуть код друг у друга. Лучше две хорошие библиотеки, чем две глюкавые, правда?

Чтобы поместить вашу библиотеку в Github надо сделать там аккаунт, сгенерить ключ и создать репозиторий с там же именем, что ваша библиотека (папка). Файлы можно загрузить через web-шнтерфейс.

Для установки библиотеки из Github в Arduino IDE достаточно скопировать URL и воспользоваться утилитой git:

Или загрузить ZIP — это будет как раз библиотека Arduino, как и все прочие библиотеки.

Модели плат

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

  1. Arduino Uno. Хорошее решение для начинающих пользователей и простых проектов. Поддерживает работу с Windows, Linux и MacOS. Встроенный микропроцессор работает на частоте 16 МГц, обладает 32 Кб встроенной памяти. Включается в комплекты для начинающих;
  2. Arduino Yun. Комплект с встроенным портом Ethernet и модулем WiFi. Оптимизирован для работы с семейством Linux. Подойдёт для работы как с любительскими, так и промышленными проектами;
  3. Arduino ADK. Устройство оптимизировано для работы с платформой Android. Хорошая совместимость и уникальный программный комплект позволяют создать проект, управляемый с мобильного телефона;
  4. Arduino Due. Улучшенная версия, работающая на мощном 32 битном ARM процессоре с тактовой частотой 84 МГц. В плату установлено 96 Кб SRAM и 512 Кб флеш-памяти.
  5. Arduino Nano. Одна из самых миниатырных, но очень полезных и популярных плат особенностью которой является разъем USB.

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

Например, плата Arduino Mega 2560 является более мощной платой для серьезных проектов.

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

Расширение возможности на Ардуино

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

Упомянутая программная технология применяется для решения интернет-задач, поэтому для визуализации «Умного дома» используется язык Java Script (именно с его помощью создается обработчик и сервер). Результаты можно увидеть на экране компьютера или ПК.

Для реализации задуманного подойдет ноутбук, обычный ПК или Raspberry Pi. Применение такой системы позволяет увеличить ее возможности. Так, если на плате Ардуино имеется небольшой объем памяти, на сервере такие ограничения отсутствуют. Программа пишется таким образом, чтобы обеспечить полное управление платформой.

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

Программа может запомнить время, когда владелец ложится отдыхать и отключать нагрев воды. Таких нюансов, которые при необходимости вносятся в программу, множество. Именно наличие внешнего ПК дает большие возможности контроллеру на Ардуино.

Работа с Arduino IDE

Для работы платы и вашего будущего проекта необходимо написать и загрузить на Andruno скетч. Скетч (sketch) — программа, написанная специально для Adruno. Для выполнения данного пункта вам понадобятся:

  • Ардуино;
  • USB-кабель Type-A;
  • Устройство, работающее на ОС Windows.

Скачайте бесплатную среду разработки для Ардуино с официального сайта производителя. Вместе с программой автоматически установятся драйвера для определения девайса при подключении к USB-порту. Если же Ардуино не определится — произведите ручную установку необходимых компонентов.

На схеме должен загореться зелёный светодиод при подключении к USB. Запустите приложение и приступайте к созданию собственного скетча. Проверка работоспособности и совместимости Arduino с ПО можно проверить при помощи встроенного скетча «LED». Запуск данного процесса должен вызвать мигание светодиода.

В меню Tool — Board выберите используемую плату. Далее следует загрузка скетча в Arduino при помощи кнопки «Upload». Успешное завершение данной операции подтверждается миганием светодиода оранжевого цвета на плате. Для подробного изучения Arduino IDE создано множество англоязычных и отечественных ресурсов, где рассказывается что такое Ардуино и как с ним работать.

Среда разработки оснащена стандартным менеджером добавления библиотек в виде исходного кода на языке C++. Данная возможность расширяет применение компонентов, добавляя новый функционал.

Начало работы с Ардуино

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

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

Arduino IDE

Для начала работы с Ардуино вам понадобится специальное программное обеспечение. Это среда для разработки прошивок Arduino IDE. В этой программе легко и удобно писать скетчи и загружать их на ваш микроконтроллер Ардуино. В среде разработки уже предустановленно большое количество примеров и дополнительных библиотек.

Ссылки на скачивание, инструкции по установке и настройке среды разработки есть на странице Arduino IDE.

Проекты Ардуино

Проектов на Ардуино огромное множество. Их можно разделить на категории:

  • Устройства умного дома
  • ЧПУ (CNC) станки
  • Бытовые приборы
  • Охранные системы
  • Игрушки
  • Информативные устройства
  • Декоративные проекты
  • Гаджеты и носимые устройства

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

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

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

Программы для плат Ардуино пишутся в специальной программе с которой мы познакомимся ниже, но никто не мешает вам использовать тот редактор кода который вам нравится или к которому вы привыкли.

Модели плат

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

  1. Arduino Uno. Хорошее решение для начинающих пользователей и простых проектов. Поддерживает работу с Windows, Linux и MacOS. Встроенный микропроцессор работает на частоте 16 МГц, обладает 32 Кб встроенной памяти. Включается в комплекты для начинающих;
  2. Arduino Yun. Комплект с встроенным портом Ethernet и модулем WiFi. Оптимизирован для работы с семейством Linux. Подойдёт для работы как с любительскими, так и промышленными проектами;
  3. Arduino ADK. Устройство оптимизировано для работы с платформой Android. Хорошая совместимость и уникальный программный комплект позволяют создать проект, управляемый с мобильного телефона;
  4. Arduino Due. Улучшенная версия, работающая на мощном 32 битном ARM процессоре с тактовой частотой 84 МГц. В плату установлено 96 Кб SRAM и 512 Кб флеш-памяти.
  5. Arduino Nano. Одна из самых миниатырных, но очень полезных и популярных плат особенностью которой является разъем USB.

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

Например, плата Arduino Mega 2560 является более мощной платой для серьезных проектов.

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

Рейтинг
( Пока оценок нет )
Понравилась статья? Поделиться с друзьями:
Электрик в доме
Добавить комментарий

;-) :| :x :twisted: :smile: :shock: :sad: :roll: :razz: :oops: :o :mrgreen: :lol: :idea: :grin: :evil: :cry: :cool: :arrow: :???: :?: :!: