Что можно сделать с помощью Ардуино?
Для начала работы с Ардуино нам достаточно любой платы. Большинство начинающих Ардуинщиков и любителей сделать что-либо своими руками начинают с Arduino Uno:
Arduino Uno R3
Даже если у вас есть есть только плата, то вы уже можете начать работать с ней.
Как я уже написал выше — один из первых и самых популярных уроков для начинающих — моргание встроенным на плату светодиодом.
Если первой платой, которую вы приобрели, стала Arduino Nano, то сразу же переходите к нашему большому руководству — Ардуино Нано для начинающих.
На базе Arduino создание устройств ограничивается только человеческой фантазией. Вы можете запрограммировать систему быстро среагировать на определённое изменение и сможете управлять:
- светом,
- моторами,
- разнообразными приводами,
- и т.п..
Самое интересное, что Ардуино применяется не только для домашнего использования, но и для промышленного.
Если вы только начинаете знакомство с микроконтроллерами, то рекомендуем вам начать с самых простых, которые есть на нашем сайте:
Разработка любых устройств зависит только от вашей фантазии, а Ардуино и множество дополнительных компонентов помогают в создании этих устройств своими руками.
Физические характеристики и совместимость с «шилдами»
Максимальные длина и ширина печатной платы 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-ом контактах.
Особенности проектов
Большинство электронщиков предпочитают создавать свои проекты на основе микроконтроллера Аrduino Uno, о которой и мы писали уже несколько раз.
Для начала стоит познакомиться с функционалом микропроцессора Ардуино уно, на котором строится большинство проектов, а также рассмотреть причины выбора данного приспособления. Ниже описаны факторы, по которым начинающему изобретателю стоит остановиться на Аrduino uno:
- Довольно простой в использовании интерфейс. Понятно, где какой контакт, и к чему прикреплять соединительные провода.
- Чип на плате подключается прямо к USB-порту. Преимущество этой установки заключается в том, что последовательная связь – это очень простой протокол, который проверен временем, а USB делает соединение с современными компьютерами очень удобным.
- Легко найти центральную часть микроконтроллера, которая представляет собой чип ATmega328. Он имеет больше аппаратных функций, таких как таймеры, внешние и внутренние прерывания, пины PWM и несколько режимов ожидания.
- Устройство с открытым исходным кодом, поэтому большое количество радиолюбителей могут исправить баги и неполадки в программном обеспечении. Это облегчает отладку проектов.
- Тактовая частота равна 16 МГц, что достаточно быстро для большинства приложений и не ускоряет работу микроконтроллера.
- Очень удобно управлять мощностью внутри него, и она имеет функцию встроенного регулирования напряжения. Также микроконтроллер можно отключить от USB-порта без внешнего источника питания. Можно подключить внешний источник питания до 12 В. Причем микропроцессор сам определит нужное напряжение.
- Наличие 13 цифровых контактов и 6 аналоговых контактов. Эти пины позволяют подключать оборудование к плате Arduino uno со стороннего носителя. Контакты используются в качестве ключа для расширения вычислительной способности Arduino uno в реальном мире. Просто подключите свои электронные устройства и датчики к разъемам, которые соответствуют каждому из этих контактов.
- Имеется в наличии разъем ICSP для обхода USB-порта и сопряжения с Arduino напрямую в качестве последовательного устройства. Этот порт необходим, чтобы перезагрузить чип, если он поврежден и больше не может использоваться на вашем компьютере.
- Наличие 32 КБ флэш-памяти для хранения кода разработчика.
- Светодиод на плате подключается к цифровому контакту 13 для быстрой отладки кода и упрощения этого процесса.
- Наконец, у него есть кнопка для сброса программы на чипе.
Arduino был создан в 2005 году двумя итальянскими инженерами – Дэвидом Куартиллесом и Массимо Банзи с целью, чтобы ученики научились программировать микроконтроллер Arduino uno и улучшить свои навыки в области электроники и использовать их в реальном мире.
Arduino uno может воспринимать окружающую среду, получая вход от различных датчиков, и способен влиять на окружающую среду, контролируя свет, двигатели и другие исполнительные механизмы. Микроконтроллер запрограммирован с использованием языка программирования Arduino (на основе проводки) и среды разработки Arduino (на основе обработки).
Arduino Due: прошивка, память
Разъем Programming USB предназначен для программирования платы через компьютер. Для использования порта в Arduino IDE следует выбрать в качестве платы «Arduino Due (Programming Port)». При этом новой загрузке производится предварительное стирание предыдущей прошивки. Порт для программирования находится ближе к разъему питания и он более надежен, чем собственный порт.
Разъем Native USB используется для подключения к микроконтроллеру периферийных устройств и для связи Arduino Due с компьютером в роли периферийного устройства. Чтобы использовать порт в среде разработки Arduino IDE следует выбрать в качестве платы «Arduino Due (Native USB Port)». Собственный порт осуществляет связь монитора последовательной шины Arduino IDE с другими приложениям на компьютере.
Плата поддерживает два типа памяти:
Flash память объемом 512 КБ (2 блока по 256 КБ) используется для хранения программ. Загрузчик записывается в специально отведенном для него ПЗУ.
SRAM память — ОЗУ Arduino Due составляет 96 КБ в двух банках по 64 КБ и 32 КБ. По производительности Arduino Due превосходит обычные 8-битные микроконтроллеры.
Программирование для платы Uno
Для написания программ (скетчей) для контроллер Ардуино вам нужно установить среду программирования. Самым простым вариантом будет установка бесплатной Arduino IDE, скачать ее можно с официального сайта.
После установки IDE вам нужно убедиться, что выбрана нужная плата. Для этого у Arduino IDE в меню “Инструменты” и подпункте “Плата” следует выбрать нашу плату (Arduino/Genuino Uno). После выбора платы автоматически изменятся параметры сборки проекта и итоговый скетч будет скомпилирован в формат, который поддерживает плата. Подключив контроллер к компьютеру через USB, вы сможете в одно касание заливать на него вашу программу,используя команду “Загрузить”.
Сам скетч чаще всего представляет собой бесконечный цикл, в котором регулярно опрашиваются пины с присоединенными датчиками и с помощью специальных команд формируется управляющее воздействие на внешние устройства (они включаются или выключаются). У программиста Ардуино есть возможность подключить готовые библиотеки, как встроенные в IDE, так и доступные на многочисленных сайтах и форумах.
Написанная и скомпилированная программа загружается через USB-соединение (UART- Serial). Со стороны контролера за этот процесс отвечает bootloader.
Более подробную информацию о том, как устроены программы для платы Ардуино можно найти в нашем разделе, посвященном программированию.
https://youtube.com/watch?v=e-X9qmvrTwE
Виды плат Ардуино
В то время как на рынке существует много разновидностей плат, есть несколько видов Ардуино, которые чаще всего можно увидеть. Наиболее часто используемые виды Arduino как инженерами, так и любителями включают в себя:
• Ардуино UNO
• Ардуино Nano
• Ардуино Due
• Ардуино Mega
Arduino UNO
UNO, пожалуй, самая популярная Ардуино. Она основана на микроконтроллере ATmega328, работающего на частоте 16 МГц, включает 32 КБ флеш-памяти, 1 КБ EEPROM, 2 КБ ОЗУ, имеет 14 цифровых входов / выходов, 6 аналоговых входов, а также шины питания 5 В и 3,3 В.
Ардуино Уно
Ардуино Уно имеет стандартный форм-фактор совместимый с большинством шилд на рынке. Разъём питания включён в UNO, что позволяет ему питаться от внешнего блока питания. И также имеется VIN для подключения UNO к батарейкам.
Физические размеры UNO (69 мм x 54 мм) делают его небольшой платой для разработки, которая может легко вписаться во многие проекты.
Arduino Nano
Ардуино нано — это, по сути, UNO с очень маленьким профилем, что делает его очень удобным для ограниченного пространства и проектов, которым возможно, потребуется уменьшить вес.
Как и UNO, Nano имеет на борту процессор Atmega328, работающего на частоте 16 МГц, включает 32 КБ флеш-памяти, 1 КБ EEPROM, 2 КБ ОЗУ. Нано имеет 14 цифровых входов / выходов, 6 аналоговых входов, а также шины питания 5 В и 3,3 В.
(Примечание: на платах Ардуино Нано до версии V3.0 использовался ATmega168, который по сути, имеет половину характеристик.)
Ардуино Нано
Nano, в отличие от UNO, не может подключаться к шилдам Arduino методом простой стыковки. Нано имеет разъёмы, которые делают его полезным для использования на макетных платах. Часто платы Arduino Nano являются самым дешёвым из доступных плат Arduino. Это делает их экономически эффективными для крупных проектов.
Arduino Due
Due — одна из самых больших плат, а также первая плата Ардуино, оснащённая процессором ARM.
В то время как UNO и Nano работают при 5 В, Дуэ работает при 3,3 В — это важно отметить, потому что перенапряжение повредит плату. Процессор ATSAM3X8E Cortex-M3, работающий на частоте 84 МГц, Due имеет 512 КБ ПЗУ и 96 КБ ОЗУ, 54 пина цифрового ввода-вывода, 12 каналов ШИМ, 12 аналоговых входов и 2 аналоговых выхода
Ардуино дуе
Due не имеет встроенной EEPROM и является одной из самых дорогих плат семейства Arduino. Due имеет большое количество выводов для подключения к множеству цифровых входов / выходов. Дуэ также совместимо по выводам со стандартными шилдами Ардуино.
Arduino Mega 2560
Arduino Mega чем-то похожа на Due в том, что она также имеет 54 ввода / вывода. Однако вместо ядра ARM, Мега использует ATmega2560.
Процессор работает на частоте 16 МГц. Мега имеет 256 КБ ПЗУ, 8 КБ ОЗУ и 4 КБ EEPROM. Питается Mega от 5 вольт, что делает его простым в использовании с большинством электронных компонентов.
Ардуино Мега2560
Ардуино Мега имеет 16 аналоговых входов, 15 каналов ШИМ, распиновку похожую на Due, и аппаратно совместима с шилдами Arduino.
3. Подключение платы Arduino к компьютеру
- Соедините Arduino с компьютером по USB-кабелю. На плате загорится светодиод «ON» и начнёт мигать светодиод «L». Это значит, что на плату подано питание и микроконтроллер начал выполнять прошитую на заводе программу «Blink».
- Для настройки Arduino IDE под конкретную модель узнайте, какой номер COM-порта присвоил компьютер вашей плате. Зайдите в «Диспетчер устройств» Windows и раскройте вкладку «Порты (COM и LPT)».
Операционная система распознала плату Arduino как COM-порт и назначила номер . Если вы подключите к компьютеру другую плату, операционная система назначит ей другой номер
Если у вас несколько платформ, очень важно не запутаться в номерах COM-портов.
Что-то пошло не так?
После подключения Arduino к компьютеру, в диспетчере устройств не появляются новые устройства? Это может быть следствием следующих причин:
- Неисправный USB-кабель или порт
- Блокировка со стороны операционной системы
- Неисправная плата
Мотивация
Есть, по крайней
мере, две причины
для измерения
напряжения, питающего
наш
Arduino
(Vcc). Одним из них является наш проект, питающийся от батареи, если мы хотим следить за уровнем напряжения батареи. Кроме того, когда питание от батареи (Vcc) не может быть 5,0 вольт(например питание от 3-х элементов 1.5 В), а мы хотим сделать аналоговые измерения более точными — мы должны использовать либо внутренний источник опорного напряжения 1,1 В либо внешний источник опорного напряжения. Почему?
Обычно предполагают при использовании analogRead () то, что аналоговое напряжение питания контроллера составляет 5.0 вольт, когда в действительности это может быть совсем не так(например питание от 3-х элементов 1.5 В). Официальная документация Arduino даже может привести нас к этому неправильному предположению. Дело в том, что питание не обязательно 5,0 вольт, независимо от текущего уровня это питание подано на Vcc чипа. Если наше питание не стабилизировано или если мы работаем от аккумулятора, это напряжение может меняться совсем немного. Вот пример кода, иллюстрирующий эту проблему:
Double Vcc = 5.0; // не обязательно правда
int value = analogRead(0); / читаем показания с А0
double volt = (value / 1023.0) * Vcc; // верно только если Vcc = 5.0 вольт
Для того чтобы измерить напряжение точно, необходимо точное опорное напряжение. Большинство чипов AVR обеспечивает три источника опорного напряжения:
1,1 в от внутреннего источника, в документации он проходит как bandgap reference (некоторые из них 2,56 В, например ATMega 2560). Выбор осуществляется функцией analogReference() с параметром INTERNAL : analogReference(INTERNAL) ;
внешний источник опорного наптяжения, на ардуинке подписан AREF. Выбор: analogReference(EXTERNAL);
Vcc — источник питания самого контроллера. Выбор: analogReference(DEFAULT).
В Arduino нельзя просто взять и подключить Vcc к аналоговому пину напрямую — по умолчанию AREF связан с Vcc и вы всегда будете получать максимальное значение 1023, от какого бы напряжения вы не питались. Спасает подключение к AREF источника напряжения с заранее известным, стабильным напряжением, но это — лишний элемент в схеме.
Еще можно соединить Vcc с AREF через диод
: падение напряжение на диоде заранее известно, поэтому вычислить Vcc не составит труда. Однако, при такой схеме через диод постоянно протекает ток
, сокращая жизнь батареи, что тоже не очень удачно.
Источник внешнего опорного напряжения является наиболее точным, но требует дополнительных аппаратных средств. Внутренний ИОН стабильным, но не точен + / — 10% отклонение. Vcc является абсолютно ненадежен в большинстве случаев. Выбор внутреннего источника опорного напряжения является недорогим и стабильным, но большую часть времени, мы хотели бы измеряет большее напряжение чем 1.1 В, так что использование Vcc является наиболее практичным, но потенциально наименее точным. В некоторых случаях оно может быть очень ненадежным!
Питание
Плату 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-вольтовую.
Переносные электронные устройства
Ниже сравнительные таблицы, так называемых, переносных электронных устройств.
Платы
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 |
Пример работы
В качестве примера повторим первый эксперимент «Маячок» из набора Матрёшка. На плате уже есть встроенный пользовательский светодиод , подключенный к пину микроконтроллера.
- blink.ino
-
void setup() { // Устанавливаем пин светодиода в режим выхода. // Используем определение LED_BUILTIN, // которое содержит в себе пин светодиода pinMode(LED_BUILTIN, OUTPUT); } void loop() { // Включаем светодиод digitalWrite(LED_BUILTIN, HIGH); // Ждём пол секунды delay(500); // Выключаем светодиод digitalWrite(LED_BUILTIN, LOW); // Ждём пол секунды delay(1000); }
После загрузки программы встроенный светодиод начнёт мигать раз в секунду.
Это значит, всё получилось, и можно смело переходить к другим экспериментам на Ардуино.
Сводная таблица
Эта сводная таблица показывает сравнение характеристик всех плат 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 |
Технические характеристики
- Микроконтроллер – 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 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 Uno Rev 3 | Arduino Leonardo | Arduino 101 | |
---|---|---|---|
Микроконтроллер | ATmega328P | ATmega32u4 | Intel Curie |
Рабочее напряжение | 5 V | 5 V | 3.3 V (5 V tolerant I/O) |
Входное напряжение (Рекомендуемое) | 7-12 V | 7-12 V | 7-12 V |
Входное напряжение (Ограничение) | 6-20 V | 6-20 V | 7-17 V |
Цифровые (I/O) Пины | 14 (4 for PWM Output) | 20 | 14 (4 for PWM Output) |
PWM Цифровые (I/O) Пины | 6 | 7 | 4 |
Аналоговый вход Пины | 6 | 12 | 6 |
Аналоговый вход Каналы | 4 из Цифровые I/O Пины | ||
Аналоговый вход Каналы | 8 | ||
Постоянный ток на I/O Пин | 20 mA | 40 mA | 20 mA |
Постоянный ток для 3.3 V Пин | 50 mA | 50 mA | |
Флэш-память | 32 KB (.5 KB для загрузчика) | 32 KB (4 KB для загрузчика) | 196 KB |
SRAM | 2 KB | 2.5 KB | 24 KB |
EEPROM | 1 KB | 1 KB | |
Тактовая частота | 16 MHz | 16 MHz | 32 MHz |
LED встроенные | 13 | 13 | |
Bluetooth | Bluetooth LE | ||
Дополнительно | 6 осевой акселерометр / гироскоп | ||
Длина | 68.6 mm | 68.6 mm | 68.6 mm |
Ширина | 53.4 mm | 53.3 mm | 53.4 mm |
Вес | 25 g | 20 g | 34 g |
Платы (продолжение)
Arduino Robot | Arduino Esplora | |
---|---|---|
Микроконтроллер | ATmega32u4 | ATmega32u4 |
Рабочее напряжение | 5 V | 5 V |
Входное напряжение (Рекомендуемое) | 5 V through flat cable | |
Постоянный ток на I/O Пин | 40 mA | |
Флэш-память | 32 KB (4 KB для загрузчика) | 32 KB (4 KB для загрузчика) |
SRAM | 2.5 KB | |
EEPROM | 1 KB internal, 312 Kbit(12 C) external | |
Тактовая частота | 16 MHz | 16 MHz |
Дополнительно | * Keypad — 5 Keys * Knob — potentiometer attached to analog Пин * Full Color LCD — over SPI connection * SD Reader — for FAT16 formatted cards * Speaker — 8 Ohm * Цифровой Компас — отклонение от севера в градусах * I2C Soldering Ports — 2 * Prototypings Areas — 4 |
|
Длина | 164.04 mm | |
Ширина | 60 mm | |
Радиус | 185 mm | |
Height | 85 mm | |
Вес | 53 g |
Модули
Arduino Micro | Arduino Nano | Arduino Mini | |
---|---|---|---|
Микроконтроллер | ATmega32u4 | ATmega32u | ATmega32u |
Рабочее напряжение | 5 V | 5 V | 5 V |
Входное напряжение (Рекомендуемое) | 7-12 V | 7-12 V | 7-9 V |
Входное напряжение (Ограничение) | 6-20 V | 7-12 V | 7-9 V |
Цифровые (I/O) Пины | 20 | 22 | 14 (6 for PWM Output) |
PWM Цифровые (I/O) Пины | 6 | ||
PWM Каналы | 7 | ||
Аналоговый вход Пины | 8 (4 broken out onto Пины) | ||
Аналоговый вход Каналы | 12 | ||
Постоянный ток на I/O Пин | 20 mA | 40 mA | 40 mA |
Постоянный ток для 3.3 V Пин | 50 mA | ||
Флэш-память | 32 KB (4 KB для загрузчика) | 32 KB (2 KB для загрузчика) | 32 KB (2 KB для загрузчика) |
SRAM | 2.5 KB | 2 KB | 2 KB |
EEPROM | 1 KB | 1 KB | 1 KB |
Тактовая частота | 16 MHz | 16 MHz | 16 MHz |
LED встроенные | 13 | ||
Дополнительно | * AVR Architecture * Power Consumption — 19 mA |
||
Длина | 48 mm | 30 mm | |
Ширина | 18 mm | 18 mm | |
Вес | 13 g | 7 g |
Платформы STM32 Boards
Настройка
- Откройте среду программирование Arduino IDE.
-
Зайдите в настройки Arduino IDE:
Файл
Настройки -
В окне
Дополнительные ссылки для менеджера плат введите адрес:https://github.com/stm32duino/BoardManagerFiles/raw/master/package_stmicroelectronics_index.json
-
Зайдите в менеджер плат:
Инструменты
Плата
Менеджер плат -
Вбейте в фильтр строку
STM32 MCU based boards. Найдите в списке соответствующую платформу и нажмите на кнопку
Установить. -
Начнётся установка дополнений. Надпись
INSTALLED сообщает, что дополнения успешно установлены. - Теперь вам доступны к программированию платформы STM32.
Принцип работы широтно-импульсной модуляции
Принцип ШИМ модуляции показан на следующем рисунке.
Если выключатель на этой схеме будет постоянно замкнут, то светодиод в схеме будет постоянно гореть. Если выключатель будет замкнут первые полсекунды, а вторые полсекунды будет разомкнут, то светодиод будет гореть только первые полсекунды. Пропорция между временем когда светодиод горит и общим временем называется коэффициентом занятости (коэффициентом заполнения) ШИМ. Он может быть рассчитан по следующей формуле:
Duty Cycle =Turn ON time/ (Turn ON time + Turn OFF time)
Duty Cycle = (0.5/ (0.5+0.5)) = 50%
То есть при коэффициенте заполнения ШИМ 50% выходное напряжение ШИМ будет составлять 50% от напряжения батареи.
Если мы будем включать/выключать выключатель каждые полсекунды, то мы будем видеть как светодиод горит каждые первые полсекунды, а потом выключается на вторые полсекунды. Если мы увеличим частоту мигания (переключения) светодиода, то человеческий глаз уже не будет замечать моменты включения/выключения светодиода – он будет выглядеть для него постоянно горящим. То есть в данном случае при коэффициенте заполнения ШИМ 50% человеческому глазу будет казаться что светодиод горит на 50% яркости. При дальнейшем уменьшении коэффициента заполнения ШИМ яркость свечения светодиода будет снижаться.
В этом проекте мы будем программировать плату Arduino Due на формирование сигнала ШИМ, с помощью которого будет происходить управление яркостью свечения светодиода.
Плата Arduino Due имеет 12 контактов (с Pin 2 по Pin 13), на которых возможно формирование сигнала ШИМ, показанных на рисунке. Мы можем использовать любой из этих контактов – в этом проекте мы используем контакт PIN2.