Оглавление
- История Ардуино
- Начало работы с Ардуино
- Улучшенные функции
- Переносные электронные устройства
- Физические характеристики и совместимость с «шилдами»
- Память Arduino Uno R3
- Наборы и конструкторы Ларт
- Дополнительные модули и сенсоры
- Почему analogRead() возвращает значение от 0 до 1023?
- Загрузка кода на Due
- ШИМ Arduino
- Питание
- Технические характеристики
- Исходный код программы
- Работа с Arduino IDE
- Из чего состоит плата Arduino?
- Arduino Due: порты ввода вывода, питание
- Заключение
История Ардуино
Основателями компании, которая начала создавать платы Ардуино, являются итальянцы Массимо Банци, Девида Куартиллье, Тома Иго, Джанлука Мартино и Девида Меллиса. Такой была первоначальная команда создателей.
А название они позаимствовали у итальянского бара, который, в свою очередь, был назван в честь короля Италии.
Фрагмент портрета Ардуина из Ивреи. Замок Мазино. Картина пьемонтской школы около 1700 года.
Ардуин был итальянским дворянином, который был королем Италии с 1002 по 1014 год. В 990 году Ардуин стал маркграфом Ивреи, а в 991 году графом Священного дворца Латеранского в Риме.
Стоит также сказать, что для Соединенных Штатов Америки используется другое название — Genuino.
Начало работы с Ардуино
Говоря бытовым языком, Ардуино – это электронная плата, в которую можно воткнуть множество разных устройств и заставить их работать вместе с помощью программы, написанной на языке Ардуино в специальной среде программирования.
Чаще всего плата выглядит вот так:
На рисунке показана одна из плат Ардуино – Arduino Uno. Мы изучим ее подробнее на следующих уроках.
В плату можно втыкать провода и подключать множество разных элементов. Чаще всего, для соединения используется макетная плата для монтажа без пайки. Можно добавлять светодиоды, датчики, кнопки, двигатели, модули связи, реле и создавать сотни вариантов интересных проектов умных устройств. Плата Ардуино – это умная розетка, которая будет включать и выключать все присоединенное в зависимости от того, как ее запрограммировали.
Вся работа над проектом разбивается на следующие этапы:
- Придумываем идею и проектируем.
- Собираем электрическую схему. Тут нам пригодится макетная плата, упрощающая монтаж элементов. Безусловно, понадобятся навыки работы с электронными приборами и умение пользоваться мультиметром.
- Подключаем плату Arduino к компьютеру через USB.
- Пишем программу и записываем ее в плату буквально нажатием одной кнопки на экране в специальной среде программирования Arduino.
- Отсоединяем от компьютера. Теперь устройство будет работать автономно – при включении питания оно будет управляться той программой, которую мы в него записали.
Программа и среда программирования выглядят вот так:
На экране показана программа (на сленге ардуинщиков текст программы называется “скетч”), которая будет мигать лампочкой, подсоединенной к 13 входу на плате Ардуино UNO. Как видим, программа вполне проста и состоит из понятных для знающих английский язык инструкций. В языке программирования Arduino используется свой диалект языка C++, но все возможности C++ поддерживаются.
Есть и другой вариант написания кода – визуальный редактор. Тут не нужно ничего писать – можно просто перемещать блоки и складывать из них нужный алгоритм. Программа загрузится в подключенную плату одним нажатием кнопки мыши!
Визуальную среду рекомендуется использовать школьникам младших классов, более старшим инженерам лучше сразу изучать “настоящий” Ардуино – это довольно просто, к тому же знания C++ никому не повредят.
В целом все выглядит довольно понятно, не так ли? Осталось разобраться в деталях.
Улучшенные функции
Ниже сравнительная таблица плат Ардуино с улучшенным функционалом.
Платы
Arduino Mega 2560 Rev 3 | Arduino Zero | Arduino Due | |
---|---|---|---|
Микроконтроллер | ATmega2560 | ATSAMD21G18, 32-Bit ARM Cortex MO+ | AT91SAM3X8E |
Рабочее напряжение | 5 V | 3.3 V | 3.3 V |
Входное напряжение (Рекомендуемое) | 7-12 V | 7-12 V | |
Входное напряжение (Ограничение) | 6-20 V | 6-16 V | |
Цифровые (I/O) Пины | 54 (15 for PWM Output) | 20 | 54 (12 for PWM Output) |
PWM Цифровые (I/O) Пины | 6 | All but Пины 2 and 7 | |
External Interrupts | All Пины Except Пин 4 | ||
Аналоговый вход Пины | 6 | 6, 12-bit ADC Каналы | 12 |
Analog Output Пины | 1, 10-bit DAC | 2 (DAC) | |
Постоянный ток на I/O Пин | 20 mA | 7 mA | 130 mA (Total on all I/O lines) |
Постоянный ток для 3.3 V Пин | 50 mA | 800 mA | |
Постоянный ток для 5 V | 800 mA | ||
Флэш-память | 256 KB (8 KB для загрузчика) | 256 KB | 512 KB for user applications |
SRAM | 8 KB | 32 KB | 96 KB (two banks: 64 KB and 32 KB) |
EEPROM | 4 KB | None | |
Тактовая частота | 16 MHz | 48 MHz | 84 MHz |
LED встроенные | 13 | 13 | |
Длина | 101.52 mm | 68 mm | 101.52 mm |
Ширина | 53.3 mm | 30 mm | 53.3 mm |
Вес | 37 g | 12 g | 36 g |
Платы (продолжение)
Arduino Pro | Arduino M0 | Arduino M0 Pro | |
---|---|---|---|
Микроконтроллер | ATmega328 | ATSAMD21G18, ARM Cortex-MO+, 48Пины LQFP | ATSAMD21G18, ARM Cortex-MO+, 48Пины LQFP |
Рабочее напряжение | 3.3 V | 3.3 V | |
Входное напряжение | 5-15 V | 5-15 V | |
Board Power Supply | 3.35 — 12 V (3.3 V model) or 5-12 V (5 V model) | ||
Circuit Рабочее напряжение | 3.3 V or 5 V (depending on model) | ||
Цифровые (I/O) Пины | 14 | 20, with 12 PWM and UART | 20 |
PWM Пины | 6 | ||
PWM Output | 12 | 12 | |
Аналоговый вход Пины | 6 | ||
External Interrupts | 2 | ||
Аналоговый вход Каналы | 12 | ||
Analog I/O Пины | 6 +1 DAC | 6 +1 DAC | |
Постоянный ток на I/O Пин | 40 mA | 7 mA (I/O Пины) | 7 mA (I/O Пины) |
Флэш-память | 32 KB (2 KB для загрузчика) | 256 KB | 256 KB |
SRAM | 2 KB | 32 KB | 32 KB |
EEPROM | 1 KB | ||
Тактовая частота | 8 MHz (3.3 V version) or 16 MHz (5 V version) | 48 MHz | 48 MHz |
LED встроенные | 13 | 13 | |
Power Consumption | 29 mA | 44 mA | |
Дополнительно | * UART — 1
* SPI — 1 * I2C — 1 |
||
Длина | 68.5 mm | 68.5 mm | |
Ширина | 53 mm | 53 mm | |
Вес | 21 g | 22 g |
Модули
Arduino MKRZero | Arduino Pro Mini | |
---|---|---|
Микроконтроллер | SAMD21 Cortex-MO +32bit low power ARM MCU | ATmega328 |
Рабочее напряжение | 5 V | |
Board Power Supply | 5 V (USB/VIN) | 3.35 — 12 V (3.3 V model) or 5-12 V (5 V Model) |
Supported Battery | Li-Po single cell, 3.7 V, 700mAh minimum | |
Circuit Рабочее напряжение | 3.3 V | 3.3 V or 5 V (depending on model) |
Цифровые (I/O) Пины | 22 | 14 |
PWM Пины | 12 (0,1,2,3,4,5,6,7,8,10, A4 — or 18 -, A4 -or 19) | 6 |
UART | 1 | 1 |
SPI | 1 | 1 |
I2C | 1 | 1 |
PWM Каналы | 6 | |
Аналоговый вход Пины | 7 (ADC 8/10/12 bit) | |
Analog Output Пины | 1 (DAC 10 bit) | |
External Interrupts | 8 (0, 1, 4, 5, 6, 7, 8, A1 — or 16 -, A2 — or 17) | 2 |
Постоянный ток на I/O Пин | 7mA | 40 mA |
Флэш-память | 256 KB (8 KB для загрузчика) | 32 KB (2 KB для загрузчика) |
SRAM | 32 KB | 2 KB |
EEPROM | none | 1 KB |
Тактовая частота | 32.768 kHz (RTC), 48 MHz | 8 MHz (3.3 V version) or 16 MHz (5 V version) |
LED встроенные | 32 | |
Дополнительно | *Full-Speed USB Device with Embedded Host |
Переносные электронные устройства
Ниже сравнительные таблицы, так называемых, переносных электронных устройств.
Платы
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 Due составляют 10,16 и 5,33 см соответственно, однако USB-коннекторы и разъем для питания могут немного выходить за эти пределы. Кроме того, на плате имеются три отверстия, которые позволяют прикрепить ее к какой-либо поверхности или корпусу
Обратите внимание, что расстояние между 7-ым и 8-ым контактами составляет 0,406 см, а между остальными контактами – 0,254 см.
Плата Arduino Due совместима с большинством «шилдов», разработанных для плат Uno, Diecimila и Duemilanove. Цифровые контракты с 0-го по 13-ый (и прилегающие к ним контакты AREF и GND), аналоговые контакты с 0-го по 5-ый, гребешок для питания и ICSP-гребешок (для SPI) находятся на тех же местах. Более того, на тех же контактах (т.е. на 0-ом и 1-ом) находится и UART (последовательный порт)
Обратите внимание, что интерфейс I2C расположен на 20-ом и 21-ом контактах, тогда как у Duemilanove и Diecimila она находится на 4-ом и 5-ом контактах.
Память Arduino Uno R3
Плата Uno по умолчанию поддерживает три типа памяти:
- Flash – память объемом 32 кБ. Это основное хранилище для команд. Когда вы прошиваете контроллер своим скетчем, он записывается именно сюда. 2кБ из данного пула памяти отводится на bootloader- программу, которая занимается инициализацией системы, загрузки через USB и запуска скетча.
- Оперативная SRAM память объемом 2 кБ. Здесь по-умолчанию хранятся переменные и объекты, создаваемые в ходе работы программы. Память эта энерго-зависимая, при выключении питания все данные, разумеется, сотрутся.
- Энергонезависимая память (EEPROM) объемом 1кБ. Здесь можно хранить данные, которые не сотрутся при выключении контроллера. Но процедура записи и считывания EEPROM требует использования дополнительной библиотеки, которая доступна в Arduino IDE по-умолчанию. Также нежно помнить об ограничении циклов перезаписи, присущих технологии EEPROM.
Некоторые модификации стандартной платы Uno могут поддерживать память с большими значениями, чем в стандартном варианте. Но следует понимать, что для работы с ними потребуются и дополнительные библиотеки.
Наборы и конструкторы Ларт
ЛАРТ Сармат Армага
Набор на основе контроллера Ардуино, при помощи которого можно собрать робота, движущегося по линии. Главный компонент комплекта – миниатюрная плата Ардуино Нано, которая позволяет подключать не только входящие в состав набора компоненты, а и другие элементы совместимые с Ардуино, как механического, так и электронного типа. Это дает возможность совершенствовать полученного робота.
ЛАРТ Печенег Батана
Комплект включает плату Ардуино Нано и имеет достаточное количество элементов для разработки и строительства роботов, которых при помощи состава набора можно собрать две разновидности: робот, движущийся по черной линии и робот с датчиком ультразвука. Для программирования применяется текстовая среда 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 позволяют дополнительные модули, подключающиеся к выводам платы, которые называют пинами (англ. — pin).
Наиболее интересные и популярные модули расширения:
- 3D-джойстик. Своеобразный программируемый 3D-стик, способный стать способом управления спроектированного механизма или робота;
- Bluetooth-модуль. Даёт возможность управления механизмом или обменом данными через Bluetooth;
- EasyVR Shield 3.0. Разработка, служащая для распознавания голосовых команд;
- Espruino Pico. Контролер, позволяющий выполнять Java-скрипты, расширяя варианты применения платы;
- GPRS Shield. Расширение, позволяющее принимать и отправлять голос, SMS и GPRS-данные;
- Motor Shield. Подключаемый модуль, позволяющий программно управлять двумя моторчиками;
- Power Bank. Аккумулятор для переносных компактных модулей на 2000 МАч.
- Датчики влажности, температуры и т.п.:- датчик дождя,- датчик расстояния,- датчик температуры,- детектор пыли,- GPS приемник,- и др.
Это далеко не весь список, а лишь популярные и распространённые дополнения.
Существуют разнообразные подключаемые картридеры, акселерометры, передатчики и модули для разнообразных сфер жизнедеятельности. Arduino начинает эффективно применяться даже в медицине.
Почему analogRead() возвращает значение от 0 до 1023?
Это связано с разрешением АЦП. Разрешение (в рамках этой статьи) — это степень, в которой что-то может быть представлено численно. Чем выше разрешение, тем выше точность, с которой что-то можно представить. Мы измеряем разрешение в терминах количества бит разрешения.
Например, 1-битное разрешение позволит использовать только два (два в степени одного) значения — ноль и единицу. 2-битное разрешение позволило бы получить четыре (два в степени двух) значения — ноль, один, два и три. Если мы попытаемся измерить диапазон в пять вольт с двухбитным разрешением, а измеренное напряжение будет равно четырем вольтам, наш АЦП вернет числовое значение 3 — при падении четырех вольт между 3,75 и 5В. Проще представить это с изображением выше.
Таким образом, в нашем примере АЦП с 2-битным разрешением может представлять напряжение только с четырьмя возможными результирующими значениями. Если входное напряжение падает между 0 и 1,25, АЦП возвращает цифру 0; если напряжение падает между 1,25 и 2,5, АЦП возвращает числовое значение 1. И так далее. С диапазоном АЦП нашего Arduino от 0 до 1023 — у нас есть 1024 возможных значения — или от 2 до 10, поэтому у наших Arduino есть АЦП с 10-битным разрешением.
Загрузка кода на Due
С точки зрения пользователя процесс загрузки скетча на Due такой же, как и на других моделях Arduino. Мы рекомендуем использовать для этих целей порт для программирования, но вообще делать это можно через оба USB-порта.
Для загрузки через порт для программирования нужно проделать следующее:
- Подключите плату к компьютеру, подсоединив USB-кабель к порту для программирования на Due (это порт, находящийся ближе к DC-разъему).
- Откройте IDE Arduino.
- В меню Инструменты > Порт (Tools > Serial Port) выберите порт Due.
- В меню Инструменты > Плата (Tools > Board) выберите Arduino Due (Programming Port).
Теперь на Arduino Due можно загружать скетчи.
ШИМ Arduino
Широтно-импульсная модуляция (ШИМ) — это процесс управления напряжением за счет скважности сигнала. То есть используя ШИМ мы можем плавно управлять нагрузкой
Например можно плавно изменять яркость светодиода, но это изменение яркости получается не за счет уменьшения напряжения, а за счет увеличения интервалов низкого сигнала. Принцип действия ШИМ показан на этой схеме:
ШИМ ардуино
Когда мы подаем ШИМ на светодиод, то он начинает быстро зажигаться и гаснуть. Человеческий глаз не способен увидеть это, так как частота слишком высока. Но при съемке на видео вы скорее всего увидите моменты когда светодиод не горит. Это случится при условии что частота кадров камеры не будет кратна частоте ШИМ.
В Arduino есть встроенный широтно-импульсный модулятор. Использовать ШИМ можно только на тех пинах, которые поддерживаются микроконтроллером. Например Arduino Uno и Nano имеют по 6 ШИМ выводов: это пины D3, D5, D6, D9, D10 и D11. В других платах пины могут отличаться. Вы можете найти описание интересующей вас платы в этом разделе.
Для использования ШИМ в Arduino есть функция analogWrite(). Она принимает в качестве аргументов номер пина и значение ШИМ от 0 до 255. 0 — это 0% заполнения высоким сигналом, а 255 это 100%. Давайте для примера напишем простой скетч. Сделаем так, что бы светодиод плавно загорался, ждал одну секунду и так же плавно угасал и так до бесконечности. Вот пример использования этой функции:
Питание
Плату Arduino Due можно запитать от USB-коннектора или от внешнего источника питания. Источник питания выбирается автоматически.
Внешнее (не USB) питание может идти либо от батареи, либо от адаптера, конвертирующего переменный ток в постоянный. Адаптер можно подключить, подсоединив 2,1-миллиметровый коннектор с центральным положительным контактом к разъему питания на плате. Провода от батареи можно подключить к контактам GND и VIN на коннекторе POWER.
Плата может работать на внешнем источнике питания, дающем 6-20 вольт. Однако, если подать на плату меньше 7 вольт, то контакт 5V может получить меньше 5 вольт, в результате чего плата может стать нестабильной. Кроме того, если подать на плату более 12 вольт, регулятор напряжения может перегреться и повредить плату. Поэтому рекомендуемый диапазон – 7-12 вольт.
Контакты для питания на плате Arduino Due:
- VIN – входное напряжение для паты Arduino Due при использовании внешнего источника питания (в отличие от 5 вольт, идущих от USB-соединения или другого отрегулированного источника питания). Вы можете подавать питание на этот контакт или, наоборот, брать его оттуда, если напряжение подается на разъем для питания.
- 5V – выдача отрегулированных 5 вольт от регулятора напряжения, имеющегося на плате. Плату можно питать либо от разъема постоянного тока (7-12 вольт), либо от USB-коннектора (5 вольт), либо от контакта VIN (7-12 вольт). Подача напряжения через контакты 5V и 3.3V идет в обход регулятора напряжения, поэтому может повредить плату. Делать этого не рекомендуется.
- 3V3 – выдача 3,3 вольт от регулятора напряжения, имеющегося на плате. Максимальная сила тока – 800 миллиампер. Этот регулятор также питает микроконтроллер SAM3X.
- GND – контакты для «земли».
- IOREF – эталонное напряжение, на котором работает микроконтроллер. Правильно настроенный «шилд» может прочитать напряжение на контакте IOREF и выбрать правильный источник питания или переключиться на нужную логику – 3,3-вольтовую или 5-вольтовую.
Технические характеристики
- Микроконтроллер – AT91SAM3X8E
- Рабочее напряжение – 3,3 вольта
- Входное напряжение (рекомендуемое) – 7-12 вольт
- Входное напряжение (лимит) – 6-16 вольт
- Цифровые I/O контакты – 54 шт. (из которых 12 шт. можно использовать для выдачи ШИМ)
- Входные аналоговые контакты – 12 шт.
- Выходные аналоговые контакты – 2 шт. (ЦАП)
- Суммарная сила постоянного тока на всех I/O линиях – 130 миллиампер
- Максимальная сила тока на контакт 3.3V – 800 миллиампер
- Максимальная сила тока на контакт 5V – 800 миллиампер
- Flash-память – 512 Кб (весь объем памяти доступен для использования в проектах пользователя)
- SRAM – 96 Кб (два банка памяти: 64 Кб и 32 Кб)
- Тактовая частота— 84 МГц
- Длина— 101,52 мм.0,00102 километр <br />1,015 метр <br />10,152 сантиметр <br />
- Ширина— 53,3 мм.5,33e-4 километр <br />0,533 метр <br />5,33 сантиметр <br />
- Вес— 36 грамм
Преимущества ядра ARM:
- 32-битное ядро позволяет выполнять операции с 4-байтными данными в рамках одного такта процессора (более подробно читайте в статье о типе данных int).
- Тактовая частота – 84 МГц
- 96 Кб SRAM-памяти
- 512 Кб flash-памяти для кода
- DMA-контроллер, который освобождает процессор от выполнения особо трудоемких задач
Исходный код программы
По умолчанию все необходимые заголовочные файлы и регистры уже заранее сконфигурированы в Arduino IDE, нам просто нужно вызвать их чтобы сформировать ШИМ сигнал на нужном нам контакте.
Сначала нам необходимо выбрать из 12 контактов платы Arduino Due, на которых возможно формирование ШИМ сигнала, нужный нам контакт. Затем этот контакт необходимо сконфигурировать в режим работы на вывод данных — pinMode(2, OUTPUT).
Далее мы формируем ШИМ сигнал на контакте PIN2 с помощью функции “analogWrite(pin, value)”. Здесь ‘pin’ обозначает номер контакта, на котором нам нужно сформировать ШИМ сигнал, в данном случае это будет контакт PIN2. “Value” в этой функции обозначает коэффициент заполнения ШИМ и может принимать значения от 0 (светодиод всегда выключен) до 255 (светодиод всегда включен). При помощи этого значения мы можем управлять яркостью свечения светодиода.
В схеме мы использовали две кнопки для того чтобы изменять значение “Value” в функции “analogWrite(pin, value)”. Одна кнопка будет инкрементировать это значение (увеличивать яркость свечения светодиода), а другая декрементировать (уменьшать яркость свечения светодиода).
Работа с Arduino IDE
Для работы платы и вашего будущего проекта необходимо написать и загрузить на Andruno скетч. Скетч (sketch) – программа, написанная специально для Adruno. Для выполнения данного пункта вам понадобятся:
- Ардуино;
- USB-кабель Type-A;
- Устройство, работающее на ОС Windows.
Скачайте бесплатную среду разработки для Ардуино с официального сайта производителя. Вместе с программой автоматически установятся драйвера для определения девайса при подключении к USB-порту. Если же Ардуино не определится – произведите ручную установку необходимых компонентов.
На схеме должен загореться зелёный светодиод при подключении к USB. Запустите приложение и приступайте к созданию собственного скетча. Проверка работоспособности и совместимости Arduino с ПО можно проверить при помощи встроенного скетча «LED». Запуск данного процесса должен вызвать мигание светодиода.
В меню Tool – Board выберите используемую плату. Далее следует загрузка скетча в Arduino при помощи кнопки «Upload». Успешное завершение данной операции подтверждается миганием светодиода оранжевого цвета на плате. Для подробного изучения Arduino IDE создано множество англоязычных и отечественных ресурсов, где рассказывается что такое Ардуино и как с ним работать.
Среда разработки оснащена стандартным менеджером добавления библиотек в виде исходного кода на языке C++. Данная возможность расширяет применение компонентов, добавляя новый функционал.
Из чего состоит плата Arduino?
Выпускаются различные модели Arduino. Каждая из них «заточена» для различных задач. Некоторые платы принципиально отличаются от приведенной на рисунке ниже. Но большинство из них имеют следующие одинаковые узлы:
Разъем питания (USB / разъем для адаптера)
Каждая плата Arduino должна подключаться к источнику питания. Arduino Uno может запитываться от USB кабеля от вашего персонального компьютера Или от отдельного адаптера, который подключается к предусмотренному на плате разъему. На рисунке соединение через USB отмечено (1), а разъем для внешнего источника питания — (2).
USB также используется для загрузки вашей программы (скетча) на плату.
Примечание! Не используйте источник питания с напряжением на выходе более 20 вольт. Это может привести к тому, что ваша плата перегорит. Рекомендуемое напряжение питания для Arduino — от 6 до 12 вольт.
Разъемы (пины) (5V, 3.3V, GND, Analog, Digital, PWM, AREF)
Пины на вашей плате Arduino — это предусмотренные разъемы, к которым вы будете подключать провода от периферийных устройств (очень часто для прототипов используют монтажные платы (макетная плата, макетка) и провода с коннекторами на концах). На Arduino несколько типов пинов, каждый из которых подписан в соответствии с выполняемой функцией.
- GND (3): сокращение от ‘Ground’ — ‘Земля’. На платах несколько пинов GND, каждый из которых может использоваться для заземления вашей электрической цепи.
- 5V (4) и 3.3V (5): как вы могли уже догадаться — питы, которые на выходе обеспечивают питание 5 вольт и 3.3 вольт соответственно. Большинство компонентов, которые подключаются к Arduino, благополучно питаются именно от 5 или 3.3 вольт.
- Analog (6): на участке, который подписан ‘Analog In’ (от A0 до A5 на Arduino Uno) расположены аналоговые входы. Эти пины позволяют считывать сигналы от аналоговых датчиков (например, датчик температуры) и преобразовывать их в цифровые значения, которыми мы в дальнейшем оперируем.
- Digital (7): напротив аналоговых пинов находятся цифровые пины (от 0 до 13 на Arduino Uno). Эти пины используются для цифровых входящих (input) сигналов (например, нажатие кнопки) и для генерации цифровых исходящих (output) сигналов (например, питание светодиода).
- PWM (8): вы наверное заметили знак (~) рядом с некоторыми цифровыми пинами (3, 5, 6, 9, 10, и 11 на UNO). Эти пины работаю как в обычном цифровом режиме, так и в режиме ШИМ-модуляции (PWM). Если объяснить вкратце — эти пины могут имитировать аналоговый выходной сигнал (например, для постепенного затухания светодиода).
- AREF (9): Этот пин используется достаточно редко. В некоторых случаях это подключают в схему для установки максимального значения напряжения на аналоговых входах (от 0 до 5 вольт).
Кнопка сброса (Reset Button)
Как и на оригинальных Nintendo, на Arduino есть кнопка сброса (reset) (10). При нажатии на нее контакт сброса замыкается с землей и код, загруженный на Arduino начинает отрабатывать заново. Полезная опция, если ваш код отрабатывает без повторов, но вы хотите протестить его работу.
Индикатор питания (Power LED)
Немного справа и ниже надписи “UNO” установлен светодиод, подписанный «on» (11). Этот светодиод должен загореться, когда вы подключили Arduino к источнику питания. Если светодиод не загорелся — плохой знак ;).
Светодиоды TX и RX
TX — сокращение от transmit (передача), RX — от receive (прием). Эти условные обозначения часто встречаются в электронике для обозначения контактов, которые отвечают за серийный обмен данным. На Arduino Uno эти контакты встречаются два раза на цифровых пинах 0 и 1 и в качестве светодиодов TX и RX (12). Эти светодиоды позволяют визуально отслеживать, передает или принимает данные Arduino (например, при загрузке программы на плату).
Главная интегральная микросхема (IC)
Черная деталь с металлическими коннекторами с двух сторон это интегральная микросхема, микропроцессор (IC или Integrated Circuit) (13). Можете смело считать, что это «мозги» нашей Arduino. Этот чип разный в разных моделях Arduino, но обычно он относится к линейке микропроцессоров ATmega от компании ATMEL
Это может оказаться важной информацией для загрузки скетча на плату. Модель интегральной микросхемы обычно указана на ее верхней корпусной части
Для дополнительной информации о вашей микросхеме стоит обратиться к ее даташиту.
Регулятор напряжения
Регулятор напряжения (14) is выполняет функцию, указанную в названии — контролирует напряжение, которое поступает на плату Arduino. Можете его себе представить как охранника, который не пропускает слишком большое напряжение на плату во избежание ее повреждений. Конечно же, у регулятора есть свой предел. Так что питать Arduino напряжением больше 20 вольт нельзя.
Arduino Due: порты ввода вывода, питание
Каждый порт общего назначения может использоваться в качестве входа или выхода. Каждый порт на схеме, как источник может выдавать ток 3 мА или 15 мА и получать, как приемник ток 6 мА или 9 мА. Как и на других платах Ардуино, на Due есть порты для коммуникации (RX и TX), которые используются для приема и передачи данных, порты для коммутации по интерфейсу I2C, выходы с ШИМ сигналом — со 2 по 13 порт.
5V – на пин подается стабилизированное напряжение 5В
3.3V – на пин подается стабилизированное напряжение 3.3В
GND – общий вывод земли (смотри схему Arduino Due)
VIN – пин для подачи тока от внешнего источника питания
IOREF – пин для получения информации о напряжении платы
Arduino Due: питание от внешнего источника
Arduino Due можно подключить к источнику питания через USB-разъем, а также разъем 2,1 мм для блока питания, аккумуляторов от 7 В до 12 В. Выбор источника питания в Arduino Due выполняется автоматически. Порт vin на плате не связан с 5 В или другим стабилизированным напряжением. Через вывод можно подавать внешнее питание на плату, так и потреблять ток, когда устройство подключено к внешнему источнику.
Заключение
Arduino Nano одна из самых маленьких полноценных версий плат Ардуино. По сути своей, она с точностью повторяет Arduino Uno, но имеет два главных отличия:
- Размеры платы.
- Связь платы UNO с компьютером осуществляется с помощью USB serial преобразователя на базе микроконтроллера типа Atmega8u.
На нано-плате использован преобразователь на базе ft232, однако более дешевые китайские версии используют другой способ связи с ПК Arduino Nano CH341. По сути, эти микросхемы являются основой для USB-UART конвертера.
Конструктор Arduino создан для любителей электроники и робототехники начального уровня, чтобы помочь им обойти сложности низкоуровнего программирования микроконтроллеров, где требуются знания инженера-профи и опыт. Да и монтажника высокого разряда тоже, особенно для новой версии платы.
Паковать крупные платы в большие корпуса в последние десятилетия стало моветоном. Микроконтроллеры слегка улучшили ситуацию тем, что схемы с их использованием стали значительно компактнее, к тому же повысилась простота повторения результата или конструкции.
Вместе с тем активное распространение Ардуино-плат для освоения разработки и проектирования устройств на микроконтроллерных системах породило новый виток в вопросе качества и эргономики.
Всего выпущено несколько платформ Arduino, Nano является одной из них, в миниатюрном исполнении
В то же время сохраняется легкость подключения при помощи разъемов с шагом выводов 2,54 мм, что важно для любительских экспериментов. Для программирования используется Arduino IDE (среда разработки) и язык высокого уровня, похожий на Си, а фактически это и есть C/C++, просто структура программы немного изменена
Вместо функции main() используются две другие: setup() и loop(). Компилятор сам создает из них остальное)
Достоинства. Функциональная маленькая плата Arduino Nano, ничуть не уступающая по функциям большой UNО, – дешевле, удобнее для монтажа и сборки миниатюрных устройств.
Конечно, нельзя забывать, что это все та же 8-битная Атмега, которая имеет свой потенциал, и нельзя возлагать на неё невозможное – используйте её там, где ей место, а именно в малой автоматизации без особых прецизионных задач.
Разработчику программы для Arduino приходится также иметь дело со схемотехникой подключаемых устройств. Он должен знать уровни допустимых токов и напряжений, обеспечивать защиту электроники при использовании деталей с большой индуктивностью (моторов, катушек реле). Ардуино объединяет две области знаний: электронику и программирование, основу для построения роботов (здесь немного не хватает еще механики).
Раз уж тут объединены программирование и электроника, то ключевой вещью в использовании модуля становится спецификация его выводов, или распиновка, как еще принято говорить. Выводы модуля можно классифицировать разными способами, поскольку их функции зависят от программной конфигурации контроллера. Кроме того, поскольку есть две версии модулей, один из них использует чип ATmega168, а другой ATmega328, то появляется вопрос, есть ли у них различия в подключении.
В каждом конкретном проекте назначение каждого пина конфигурируется программой пользователя. При запуске контроллера сначала выполняется инициализация регистров конфигурации. Поэтому беспокойства по поводу функций выводов в отлаженном устройстве быть не должно.
Конечно, наборы Ардуино (Arduino) не предназначены для разработки встраиваемых приложений, работающих с большой скоростью в ответственных случаях, поэтому при их использовании возможны косяки, тем более что пользователи еще только учатся.
Но как часть конструктора для изучения автоматизации и робототехники он играет важную роль в образовательных целях и способен привлечь в отрасль много будущих специалистов.