Содержание
Самый простой проект для начинающих
Рассмотрим несколько простых и интересных проектов Ардуино uno, которые под силу сделать даже новичкам в этом деле — система сигнализации.
Мы уже делали урок по этому проекту — Датчик движения с Arduino, HC-SR04 и светодиодом (LED). Вкратце о то, что делается и как.
В этом проекте используется датчик движения для обнаружения движений и излучений высокого тона, а также визуальный дисплей, состоящий из мигающих светодиодных индикаторов. Сам проект познакомит вас с несколькими дополнениями, которые входят в комплект для начинающих Arduino, а также нюансами использования NewPing.
Он является библиотекой Arduino, которая помогает вам контролировать и тестировать ваш датчик расстояния сонара. Хотя это не совсем целая защита дома, она предлагает идеальное решение для защиты небольших помещений, таких как спальни и ванные комнаты.
Для этого проекта вам понадобятся:
- Ультразвуковой датчик «пинг» – HC-SR04.
- Пьезо-зуммер.
- Светодиодная лента.
- Автомобильное освещение посредством ленты RGB. В этом руководстве по проекту Arduino вы узнаете, как сделать внутреннее освещение автомобиля RGB, используя плату Arduino uno.
Многим автолюбителям нравится добавлять дополнительные огни или модернизировать внутренние лампочки до светодиодов, однако на платформе Arduino вы можете наслаждаться большим контролем и детализацией, управляя мощными светодиодами и световыми полосками.
Вы можете изменить цвет освещения с помощью устройства Android (телефон или планшет) с помощью приложения «Bluetooth RGB Controller» (Dev Next Prototypes), которое вы можете бесплатно загрузить с Android Play Store. Также вы можете найти схему электронной EasyEDA или заказать свою собственную схему на основе Arduino на печатной плате.
ШИМ Arduino
Широтно-импульсная модуляция (ШИМ) — это процесс управления напряжением за счет скважности сигнала. То есть используя ШИМ мы можем плавно управлять нагрузкой
Например можно плавно изменять яркость светодиода, но это изменение яркости получается не за счет уменьшения напряжения, а за счет увеличения интервалов низкого сигнала. Принцип действия ШИМ показан на этой схеме:
ШИМ ардуино
Когда мы подаем ШИМ на светодиод, то он начинает быстро зажигаться и гаснуть. Человеческий глаз не способен увидеть это, так как частота слишком высока. Но при съемке на видео вы скорее всего увидите моменты когда светодиод не горит. Это случится при условии что частота кадров камеры не будет кратна частоте ШИМ.
В Arduino есть встроенный широтно-импульсный модулятор. Использовать ШИМ можно только на тех пинах, которые поддерживаются микроконтроллером. Например Arduino Uno и Nano имеют по 6 ШИМ выводов: это пины D3, D5, D6, D9, D10 и D11. В других платах пины могут отличаться. Вы можете найти описание интересующей вас платы в этом разделе.
Для использования ШИМ в Arduino есть функция analogWrite(). Она принимает в качестве аргументов номер пина и значение ШИМ от 0 до 255. 0 — это 0% заполнения высоким сигналом, а 255 это 100%. Давайте для примера напишем простой скетч. Сделаем так, что бы светодиод плавно загорался, ждал одну секунду и так же плавно угасал и так до бесконечности. Вот пример использования этой функции:
Arduino Uno R3
Так же на выводе D13 имеется встроенный в плату светодиод.
GND — земля Ground Pin. Чтобы не возникало сомнений по порядку нумерации выводов коннектора, ниже приводится фрагмент принципиальной схемы платы Ардуино: Этот разъем подключается к программатору с интерфейсом SPI интерфейс последовательного программирования контроллеров Atmel.
Вместе с тем активное распространение Ардуино-плат для освоения разработки и проектирования устройств на микроконтроллерных системах породило новый виток в вопросе качества и эргономики. Раз уж тут объединены программирование и электроника, то ключевой вещью в использовании модуля становится спецификация его выводов, или распиновка, как еще принято говорить. Источник питания выбирается автоматически.
В то же время сохраняется легкость подключения при помощи разъемов с шагом выводов 2,54 мм, что важно для любительских экспериментов. При использовании напряжения выше 12 В регулятор напряжения может перегреться и повредить плату
Статья по теме: Гост прокладка кабелей в земле
Когда контроллер прошивается скетчем через USB, он записывается именно во Flash — память. Напряжение менее 7 В может привести к нестабильной работе, так как на входном каскаде может запросто теряться В. Максимальное потребление тока 50 мА. A5 — аналоговые входы могут использоваться и в качестве цифровых.
Возможно, вам также будет интересна инструкция по созданию сигнализатора поклевки своими руками Этот проект можно улучшить и поднять на более высокий уровень для, например, автоматизация дома через управление смартфоном, управляемый робот и многое другое. В этом окне вам необходимо выбрать, какая плата была подключена к вашему компьютеру. Разъем USB и силовой разъем выходят за границы данных размеров. Программирование для платы Uno Для написания программ скетчей для контроллер Ардуино вам нужно установить среду программирования. Ключевым отличием является размер платы и тип контактных площадок.
Видеообзор платформы Arduino
Память эта энерго-зависимая, при выключении питания все данные, разумеется, сотрутся. Габариты Arduino Uno: 6,8 см x 5,3 см.
Выводы модуля можно классифицировать разными способами, поскольку их функции зависят от программной конфигурации контроллера. Вы можете скачать приложение на GitHub. Подсоедините плату и выберите этот последовательный порт.
Ардуино: рисуем схемы в программе sPlan 7.0
Простейшая схема программирования (и проверки работы)
Ниже приведен список комплектующих, необходимых для преобразования схемы прошивки загрузчика в простейшую схему программирования и проверки работоспособности.
Обозначение | Описание |
---|---|
R2 | Резистор 470 Ом, 0,25 Вт |
C4 | Конденсатор, керамический, 0,1 мкФ, 50 В |
LED1 | Светодиод, T1 3/4, желтый |
нет | Конвертер USB–TTL с выводом DTR |
Преобразовать схему прошивки загрузчика AT328P-PU в простейшую схему программирования и проверки работоспособности довольно просто. Ниже приведены принципиальная схема и фотография макета.
- Удалите все шесть перемычек между Arduino Uno и схемой прошивки программатора.
- Подключите R2 и LED1 между землей и выводом 19 микроконтроллера AT328P-PU.
- Подключите выводы 1, 3, 4 и 5 от USB-TTL конвертера к AT328P-PU, как показано ниже. Вывод 2 не используется.
- Подключите вывод 6 через конденсатор C4 (0,1 мкФ) к выводу 1 AT328P-PU. (C4 обеспечивает, чтобы сигнал DTR от преобразователя USB-TTL выдавал кратковременный сигнал сброса, а не тот сигнал, который остается на низком логическом уровне в течение длительного периода времени.)
Простейшая схема программирования AT328P-PU Макет простейшей схемы программирования AT328P-PU
Arduino Uno
При напряжении питания ниже 7 В, вывод 5V может выдавать менее 5 В, при этом платформа может работать нестабильно.
Arduino мигает светодиодом В этом примере мы соединим схему со светодиодом к одному из цифровых выводов Arduino и будем включать и выключать его с помощью программы, а так же вы узнаете несколько полезных функций.
Чтобы зажечь светодиод мы должны подать сигнал ИЗ Arduino. Отличие от других плат Сегодня на рынке можно встретить множество вариантов плат ардуино. Mode-задает, как пин будет работать.
Принципиальная схема. INT в первой строке указывает на тип переменной. Ток больше этого может вывести их из строя, а ток меньшей силы снизит их яркость, не причинив никакого вреда.
См. также: Укладка кабеля в траншее пуэ
Можно использовать, батарейки, аккумуляторы и разнообразные блоки питания. После этого Windows завершит установку драйвера. В данной функции задается номер контакта, которым мы в дальнейшем собираемся управлять. Правда прошивать их нужно через такую штуку: Ну перепрошивать-то часто их не нужно Преимущества Arduino UNO r3 Универсальный форм-фактор.
А вот как вы будете соединять резистор, разницы совсем нет. Для тех кто не знает или забыл, закон ома говорит, что существует линейная зависимость тока от напряжения. Сюда можно записывать данные, которые при выключении питания не исчезнут.
Самым простым вариантом будет установка бесплатной Arduino IDE, скачать ее можно с официального сайта. Вы не сможете считать или записать данные с пина, пока не установите его соответственно в pinMode.
Mode-задает, как пин будет работать. Шим применяется довольно часто, так как с ее помощью можно управлять «аналоговым» компонентом с помощью цифрового кода. Этот пин является не только выводом, но и вводом. Включая разные светодиоды с различной яркостью можно комбинировать и получать разные цвета. Здесь хранятся переменные и объекты, создаваемые в скетче.
РАЗБОР ПРОСТОЙ СХЕМЫ — Читаем электрические схемы 2 ЧАСТЬ
Исходный код программы
Принцип работы схемы достаточно прост – нам просто нужно подать на контакт A0 платы Arduino напряжение высокого уровня (логическую «1») когда мы хотим включить реле и напряжение низкого уровня (логический «0») когда мы хотим выключить реле. Соответственно, реле при этом будет замыкать и размыкать цепь электрической лампочки.
В программе мы будем переключать состояние контакта A0 платы Arduino с задержкой в 1 секунду:
Arduino
void loop()
{
digitalWrite(relay, HIGH);
delay(interval);
digitalWrite(relay, LOW);
delay(interval);
}
1 |
voidloop() { digitalWrite(relay,HIGH); delay(interval); digitalWrite(relay,LOW); delay(interval); } |
Далее приведен полный текст программы – он тоже достаточно прост.
Arduino
#define relay A0
#define interval 1000
void setup() {
pinMode(relay, OUTPUT);
}
void loop()
{
digitalWrite(relay, HIGH);
delay(interval);
digitalWrite(relay, LOW);
delay(interval);
}
1 |
#define relay A0 voidsetup(){ pinMode(relay,OUTPUT); } voidloop() { digitalWrite(relay,HIGH); delay(interval); digitalWrite(relay,LOW); delay(interval); } |
Проверка работы схемы
После того как мы загрузили программу на нашу плату Arduino самое время проверить корректность ее работы. Схема соединений представлена выше. Чтобы проверить корректность работы программы необходимо нажать кнопку и проверить загорится ли при этом светодиод. Затем, когда мы отпустим кнопку (прекратим ее нажимать), светодиод должен погаснуть.
Полный текст программы выглядит следующим образом:
Arduino
void setup()
{
pinMode(2,INPUT_PULLUP);
pinMode (3,OUTPUT);
}
void loop() {
if (digitalRead(2) == LOW)
{
digitalWrite(3,HIGH);
}
else
{
digitalWrite(3,LOW);
}
}
1 |
voidsetup() { pinMode(2,INPUT_PULLUP); pinMode(3,OUTPUT); } voidloop(){ if(digitalRead(2)==LOW) { digitalWrite(3,HIGH); } else { digitalWrite(3,LOW); } } |
Как преодолеть аппаратные ограничения
Большинство распространённых плат имеют аналогичные характеристики, среди них:
- Uno;
- Nano;
- Pro mini;
- и подобные.
Но с развитием ваших навыков разработки в этой среде появляется проблема нехватки мощности и быстродействия этой платформы. Первым шагом для преодоления ограничений является использование языка C AVR.
С его помощью вы ускорите на порядок скорость обращения к портам, частоту ШИМ и размер кода. Если вам и этого недостаточно, то вы можете воспользоваться мощными моделями с аналогичным подходом к разработке. Для этого подойдёт плата Arduino Mega2560. Еще более мощная – модель Due. В противном случае вам стоит ознакомиться с разновидностями одноплатных компьютеров и STM микроконтроллеров.
Ардуино Uno R3 – отличная плата для большинства проектов, которая служит для изучения устройств цифровой электроники.
Датчик движения с Ардуино — проект для начинающих
Необходимые детали
Чтобы создать датчик движения с Arduino, HC-SR04 и светодиодом (LED) нам понадобятся следующие комплектующие:
- Плата Arduino (мы использовали Arduino Uno).
- Светодиод (LED, цвет не имеет значения).
- Резистор/сопротивление 220 Ом.
- Макетная плата.
- USB-кабель Arduino.
- Батарейка 9В с зажимом (опционально).
- 6 проводов.
Подключение частей
Теперь нужно подключить несколько проводов на задней панели датчика. Есть четыре контакта — VCC, TRIG, ECHO и GND. После вставки проводов необходимо выполнить следующие подключения:
- Датчик — Arduino.
- VCC — 5V (питание).
- TRIG — 5 с пометкой.
- ECHO — 4 с пометкой.
- GND — GND (земля).
- Конец резистора на цифровой вывод по вашему выбору, просто не забудьте изменить его позже в коде.
Загрузка кода
const int ledPin = 6; // Цифровой выход светодиодаconst int trigPin = 5; // Цифровой выход для подключения TRIGconst int echoPin = 4; // Цифровой выход для подключения ECHOconst int ledOnTime = 1000; // Время, в течение которого светодиод остается включенным, после обнаружения движения (в миллисекундах, 1000 мс = 1 с)const int trigDistance = 20; // Расстояние (и меньшее значение) при котором срабатывает датчик (в сантиметрах)int duration;int distance;void setup() { pinMode(ledPin, OUTPUT); pinMode(trigPin, OUTPUT); pinMode(echoPin, INPUT);}void loop() { digitalWrite(trigPin, LOW); digitalWrite(trigPin, HIGH); delay(1); digitalWrite(trigPin, LOW); duration = pulseIn(echoPin, HIGH); distance = duration * 0.034 / 2; if (distance <= trigDistance) { digitalWrite(ledPin, HIGH); delay(ledOnTime); digitalWrite(ledPin, LOW); } delay(100);}
Видео работы датчика движения на Ардуино:
Проекты Arduino для начинающих
Если посмотреть на все проекты ардуино, информация о которых доступна в интернете, то можно их разделить на несколько основных групп:
Начальные учебные проекты, не претендующие на какое-то важное практическое использование, но помогающие разобраться в разных аспектах платформы.
Мигающие светодиоды – маячок, мигалка, светофор и другие.
Проекты с датчиками: от простейших аналоговых до цифровых, использующих разнообразные протоколы для обмена данными.
Устройства регистрации и отображения информации.
Машины и устройства с сервоприводами и шаговыми двигателями.
Устройства с использованием различных беспроводных видов связи и GPS.
Проекты для автоматизации жилья – умные дома на Arduino, а также отдельные элементы управления домашней инфраструктурой.
Разнообразные автономные машины и роботы.
Проекты для исследования природы и автоматизации сельского хозяйства
Необычные и креативные – как правило, развлекательные проекты.
По каждой из этих групп можно найти множество самых разнообразных материалов в книгах и на сайтах. В этой статье мы начнем знакомство с описанием наиболее простых проектов, с которых рекомендуется стартовать начинающим.
Как создавать проект на ардуино
Проект Ардуино – это всегда сочетание электронной схемы, некоторых связанных друг с другом аппаратных и механических устройств, системы питания и программного обеспечения, управляющего всем этим хаосом. Поэтому приступая к работе, вы должны твердо понимать, что создавая устройство в одиночестве, вы должны будете стать и программистом, и электронщиком, и конструктором.
Если речь идет не об учебном проекте, то вы обязательно столкнетесь со следующими этапами реализации с такими вот задачами:
- Придумать что-то, что будет полезно и (или) интересно для окружающих. Даже самый простой проект несет какую-то пользу – как минимум, он помогает изучать новые технологии.
- Собрать схему, подключить модули друг к другу и к контроллеру.
- Написать скетч (программу) в специальной среде и загрузить ее в контроллер.
- Проверить, как все работает вместе, и исправить ошибки.
- После тестирования – готовиться к созданию готового устройства. Это означает, нужно собрать устройство в каком-то пригодном для эксплуатации корпусе, предусмотреть систему питания, связи с окружающей средой.
- Если вы собираетесь распространять созданные вами устройства, то придется также заняться дизайном, системой транспортировки, задуматься о безопасности использования необученными пользователями и обучением этих самых пользователей.
- Если ваше устройство работает, оно протестировано и обладает какими-то преимуществами перед другими решениями, то можно попытаться сделать из вашего инженерного уже бизнес-проект, попробовать привлечь инвестиции.
Каждый из этих этапов создания проекта достоин отдельной статьи
Но мы уделим главное внимание этапам сборки электронных схем (основы электроники) и программирования контроллера
Электронные схемы
Электронные схемы обычно собираются с применением макетных плат, скрепляющих элементы друг с другом без пайки и скрутки. О том, как работают модули и схемы подключения можно узнать на нашем сайте. Обычно в описании проекта указаны способы монтажа деталей. Но для большинства популярных модулей есть уже десятки готовых схем и примеров в интернете.
Программирование
Создание и прошивка скетчей производится в специальной программе – среде программирования. Наиболее популярной версией такой среды является Arduino IDE. На нашем сайте вы сможете найти информацию о том, как скачать, установить и настроить эту программу.
Пример работы
В качестве примера повторим первый эксперимент «Маячок» из набора Матрёшка. На плате уже есть встроенный пользовательский светодиод , подключенный к пину микроконтроллера.
- 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 Uno Rev3
Платы Arduino Uno R3 может получать питание через подключение USB или от внешнего источника питания. Источник питания выбирается автоматически.
Питать плату можно следующими способами:
- от внешнего адаптера – рекомендуемое напряжение от 7 до 12 В. При использовании напряжения выше 12 В регулятор напряжения может перегреться и повредить плату. При напряжении питания ниже 7 В, вывод 5V может выдавать менее 5 В, что приведёт к нестабильной работе платы;
- от USB-порта компьютера;
- подача 5 В напрямую на пин 5V. В этом случае обходится стороной входной стабилизатор и даже малейшее превышение напряжения может привести к поломке устройства.
Выводы питания:
- 5V – на этот пин ардуино подаёт 5 В, его можно использовать для питания внешних устройств;
- 3.3V – на этот пин от внутреннего стабилизатора подается напряжение 3.3 В;
- GND – вывод земли;
- VIN – пин для подачи внешнего напряжения;
- IREF – пин для информирования внешних устройств о рабочем напряжении платы.
Особенности
Когда кто-нибудь говорит об Ардуино, он, скорее всего, имеет ввиду электронную монтажную плату, которая называется Arduino Uno. Это плата с микроконтроллером. С помощью нее можно создавать и управлять абсолютно разными проектами: датчик движения, датчик температуры, можно создать робота, который принесет вам тапочки. Все ограничивается только фантазией человека, и финансовыми средствами. Например, если создавать систему «умный» дом с помощью Ардуино, надо будет потратиться.
Подключение arduino uno.
Ардуино можно сравнить с материнской платой компьютера, которая также имеет процессор, находящийся под кулером. Материнская плата с процессором выполняет те же функции, что и Arduino Uno. К ней подключаются другие устройства: дисплей, дисководы, жесткие диски, и вся остальная периферия. Также можно подключить много различных устройств. Конечно, плодотворная работа требует некоторых знаний: схемотехники, электроники, и даже основ программирования на языке С++. Однако, поверьте, это несложно, если все подробно рассмотреть и изучить.
Показанная выше плата не является единственной платой в этом семействе. Имеется множество плат с другими микроконтроллерами, другими характеристиками для различных целей. Однако Ардуино UNO является наиболее популярной, и лучше всех подходит для первых проектов. Это не оригинальная плата. Оригинальные стоят очень дорого. Их присылают из Италии в картонных коробках, а не в полиэтиленовых пакетах. Но китайские клоны также вполне работоспособны, и смогут заменить оригинальные платы за вполне адекватную цену.
Конструктивные особенности
На рисунке показаны те элементы, без которых невозможно понять устройство. USB порт необходим для подключения платы к компьютеру, для создания и закачки в нее программы работы. Также, при применении этого подключения по USB порту подается входное питание. Штекер подключения источника питания не особо необходим для работы, так как для питания используется порт USB. При одновременном подключении питания от внешнего источника и от USB, питание от порта USB автоматически отключается. Работу устройства в этом случае обеспечивает внешний источник питания.
RESET (сброс) – эта кнопка применяется для выполнения сброса микропроцессора до первоначальных настроек, которые были запрограммированы в нем до момента подключения.
Индикаторный светодиод показывает включение в работу Arduino, и является элементом схемы. Устройство имеет выходы и входы, к которым подключаются управляемые внешние устройства. Эти устройства в свою очередь также оказывают управляющее воздействие на плату. Входы и выходы имеют свою нумерацию. Выход №13 соответствует встроенному светодиоду.
Конструктивные особенности arduino Uno.
Удивительные проекты на Ардуино Уно
Большинство профессионалов в сфере разработки электронных проектов на Аrduino uno любят экспериментировать. Вследствие этого появляются интересные и удивительные устройства, которые рассмотрены ниже:
- Добавление ИК-пульта в акустическую систему. В бытовой электронике пульт дистанционного управления является компонентом электронного устройства, такого как телевизор, DVD-плеер или другой бытовой прибор, используемый для беспроводного управления устройством с короткого расстояния. Пульт дистанционного управления, в первую очередь, удобен для человека и позволяет работать с устройствами, которые не подходят для непосредственной работы элементов управления.
- Будильник. Часы реального времени используются для получения точного времени. Здесь эта система отображает дату и время на ЖК-дисплее, и мы можем установить будильник с помощью кнопок управления. Как только время сигнала тревоги наступит, система подает звуковой сигнал.
-
Шаговый двигатель. Шаговый двигатель означает точный двигатель, который можно поворачивать на один шаг за раз. Такое устройство делают с помощью робототехники, 3D-принтеров и станков с ЧПУ.- Для этого проекта возьмите самый дешевый шаговый двигатель, который вы можете найти. Двигатели доступны в режиме онлайн. В этом проекте используется шагомер 28byj-48, который подходит для большинства других подобных проектов. Его легко подключить к плате Arduino.
— Вам понадобятся 6 кабелей с разъемами типа «женщина-мужчина». Вам просто нужно подключить двигатель к плате, и все! Вы также можете добавить небольшую часть ленты на вращающуюся головку, чтобы увидеть, что она производит вращательные движения. - Ультразвуковой датчик расстояния. В этом проекте используется популярный ультразвуковой датчик HC-SR04, чтобы устройство могло избежать препятствий и двигаться в разных направлениях.
Когда вы закончите работу, на экране появится результат ваших действий. Чтобы все было просто и понятно, рекомендуется использовать ЖК-дисплей с конвертером I2C, поэтому вам нужно всего лишь 4 кабеля для подключения к плате Arduino.
Работа в комплексе с другими системами
Самое первое, с чем вы можете познакомиться, даже без приобретения дополнительных устройств для разработки – это связь по последовательному порту. Он активируется по команде Serial.begin (скорость, например 9600). Подробно о каждой команде вы можете прочитать в обучающем разделе на официальном сайте проекта Arduino.ru. Вы можете обмениваться с компьютером информацией. Плата, в зависимости от программного кода, может вам присылать данные, а вы их, через монитор портов в Arduino IDE, можете читать.
Кроме последовательного порта, в ардуино UNO реализована поддержка таких интерфейсов:
- I2C;
- SPI.
Через них можно осуществлять «общение» между несколькими платами, а также подключать разную периферию: датчики и дисплеи.
Прошивка кода загрузчика
Теперь подключите шесть проводов от схемы прошивки загрузчика к Arduino Uno точно так, как показано на схеме и фотографии, приведенной выше в разделе «Сборка схемы прошивки загрузчика». После двойной проверки всех соединений вы готовы записать следующий код загрузчика в AT328P-PU в схеме прошивки загрузчика.
- Выберите » Burn Bootloader » (прошить загрузчик) как действие для Arduino Uno; процесс должен начаться сразу после того, как вы кликните » Burn Bootloader «. Прошивка загрузчика в AT328P-PU
- Когда вы увидите сообщение » Done burning bootloader » (прошивка загрузчика завершена), процесс будет выполнен, и AT328P-PU сможет понимать и отвечать на инструкции от Arduino IDE. Загрузчик загружен в AT328P-PU
Описание аппаратной части Arduino
Физически Arduino представляет собой небольшую печатную плату. Самой распространенной на данный момент версией является Arduino UNO с габаритами 75×55 мм.
На плате располагается микроконтроллер ATMega328, этот микроконтроллер имеет 2 кб оперативной памяти и 32 кб памяти флэш-памяти для программ. Пользователю доступно несколько меньшая часть памяти программ, потому что часть памяти программ отведено под программу-загрузчик, которая управляет работой платы при загрузке в нее пользовательской программы. Платы заводского изготовления обычно поставляются уже с записанной в память программой-загрузчиком. Если отдельный микроконтроллер, программируемый на Ассемблере, достаточно легко довести до неработоспособного состояния неверными командами, то с Arduino это сделать несколько сложнее, т.к. программное обеспечение Arduino играет роль «защиты от дурака», защищая микроконтоллер от неверных действий начинающего пользователя. Кварцевый резонатор задает тактовую частоту работы микроконтроллера 16 МГц. Так же в микроконтоллере имеется внутренний кварцевый резонатор на частоту 8 МГц, но его обычно не используют.
Для связи с компьютером на плате имеется разъем USB-BF. На платах разных производителей в этой части возможны существенные различия, кроме USB-BF автору встречались платы с micro-USB, на старых и самодельных платах, скорее всего, будет 9-контактный разъем COM-порта. На плате Arduino UNO установлен специальный преобразователь, поэтому подключенная к компьютеру плата, определяется как новый COM-порт. Одно из преимуществ Arduino состоит в том, что благодаря наличию программы загрузчика и возможности подключения Arduino к персональному компьютеру для ее программирования не нужен отдельный программатор.
Подключенная к компьютеру плата Arduino питается через USB-порт. Если плата используется отдельно, то необходимо подключить к плате блок питания с выходным постоянным напряжением 7-12 В, разъем питания, вероятно, типа DS-210. На плате имеется стабилизатор напряжения, поэтому к качеству питающего напряжения устройство нетребовательно. Подойдет почти любой малогабаритный блок питания. В автономных условиях подходит 9 В батарея типа «Крона», или две последовательно соединенные батареи типа 3R12 (3336).
На плате располагается 14 цифровых портов ввода-вывода, 6 из которых поддерживают широтно-импульсную модуляцию (помечены на плате знаком «~»).
Кроме цифровых на плате есть 6 аналоговых портов. Аналоговые порты подключены в 10 битному аналогово-цифровому преобразователю, при необходимости их также можно использовать в качестве цифровых портов.
На плате имеются четыре светодиода – индикатор питания (обозначен, как ON), светодиод, подключенный к 13 порту (L), два светодиода индикации обмена данными через последовательный порт (TX и RX). Также на плате имеется кнопка для перезагрузки микроконтроллера.
Одним из достоинств Arduino является то, что кроме основной платы производится дополнительные платы, расширяющие возможности основного устройства. Такие платы расширения называют Shield, что дословно можно перевести как «щит» или «экран», обычно в русскоязычной литературе используется англицизм «шилд». Шилды позволяют подключать к Arduino электродвигатели, обеспечивают выход в компьютерные сети по протоколу Ethernet или WiFi, передачу информации по сети сотовой связи GSM, и выполняют многие другие функции. Для работы с такими платами существуют готовые программные библиотеки.
Шаг 1. Изменения в оригинальной версии
Прежде всего давайте поговорим об изменениях, которые собираемся внести в оригинальную схему Arduino Uno, которую вы можете увидеть выше или скачать ниже.
Изменения будут следующими:
- Мы не будем использовать какие-либо компоненты SMD. Все элементы будут в формате сквозных отверстий.
- Мы не нашли ни одного чипа FTDI в формате сквозного отверстия, поэтому преобразование USB в TTL не будет выполняться. Для программирования нового Arduino будет использоваться отдельная отладочная плата FTDI.
- Оригинальный Arduino использует компаратор Mosfet, чтобы определить, подключаем ли мы плату с помощью источника питания USB или постоянного тока. Но в нашей версии мы будем вручную переключать это с помощью перемычки.
- Традиционно используется микросхема LP2985 от Texas Instruments, чтобы получить источник питания 3,3 В на борту. Но из-за недоступности платы в формате TH мы будем использовать простой линейный регулятор. Таким образом, LM1117 должен быть очевидным выбором, но чтобы сохранить стоимость изготовления еще ниже, мы будем использовать LM317 с R1 и R2 как 240E и 390E соответственно.
- Последнее, что нужно на плате, — это достаточное количество линий питания и два разъема для каждого порта IO ввода-вывода. Поэтому мы будем размещать ряд разъемов папа и мама вокруг платы, что поможет подключить большее количество устройств непосредственно к Arduino.
Учитывая все изменения, мы можем записать окончательный список компонентов.
Размеры Уно
Arduino Uno R3 – самая популярная плата, построенная на базе процессора ATmega328. В зависимости от конкретной модели платы этой линейки используются различные микроконтроллеры, на момент написания статьи самой распространённой является версия именно R3.
Плату используют для обучения, разработки, создания рабочих макетов устройств. Ардуино, по своей сути, – это AVR микроконтроллер с возможностью упрощенного программирования и разработки. Это достигнуто с помощью специально подготовленного загрузчика, прошитого в память МК, и фирменной среды разработки.
Плата Ардуино Уно
Размеры платы представлены на схеме ниже. Общие размеры Уно составляют 53,4 мм на 68,6 мм.
Характеристики
В основе платы лежит процессор ATmega 328. Кроме него на плате находится модуль USB для связи с компьютером и прошивки. Этот модуль называется «USB-TTL преобразователь». На фирменных платах Arduino Uno для этой целей используется дополнительный микроконтроллер ATmega16U2.
Характеристики | Arduino Uno R3 |
Микроконтроллер | ATmega328 |
Рабочее напряжение | 5В |
Напряжение питания (рекомендуемое) | 7-12В |
Напряжение питания (предельное) | 6-20В |
Цифровые входы/выходы | 14 (из них 6 могут использоваться в качестве ШИМ-выходов) |
Аналоговые входы | 6 |
Максимальный ток одного вывода | 40 мА |
Максимальный выходной ток вывода 3.3V | 50 мА |
Flash-память | 32 КБ (ATmega328) из которых 0.5 КБ используются загрузчиком |
SRAM | 2 КБ (ATmega328) |
EEPROM | 1 КБ (ATmega328) |
Тактовая частота | 16 МГц |
Особенность этого чипа заключается в аппаратной поддержке USB, что позволяет организовывать связь без дополнительных преобразователей. В то время как ATmega328 не поддерживает такой функции, поэтому 16u2 выступает в роли преобразователя данных из USB в последовательный порт для МК AVR. В него залита программа для выполнения этой задачи.
Однако так происходит не всегда: в более мелких платах, таких как Arduino Nano, используют преобразователи уровней на базе различных микросхем, например FT232, CP21XX, Ch340g и подобных. Это решение является более дешевым и не требует прошивки дополнительного связывающего контроллера, как описано выше.
Внимание! Не всё так однозначно с DCcduino UNO r3 на ch340g. В ней как раз и использован более дешевый, чем в оригинале, вариант преобразователя USB-TTL
На плате есть выход 3.3 В, он нужен для подключения периферии и некоторых датчиков, его пропускная способность по току равна 50 мА.
ATmega328 работает на частоте 16 МГц. Она фиксирована кварцевым резонатором, который вы можете, по желанию, заменить, тем самым ускорив работу Uno r3.
Важно! После замены кварцевого резонатора функции, связанные со временем, такие как Delay, не будут соответствовать введенным значениям. Это функция задержки времени, по умолчанию её аргументом является требуемое время задержки в мс
Функция прописана в библиотеках Ардуино, с учетом стандартной тактовой частоты в 16 МГц. Поэтому после замены кварца заданное время не будет соответствовать написанному. Для этого нужно либо подбирать опытным путем и устанавливать зависимости, либо править файлы библиотек.
Возможности ввода-вывода
Благодаря аналоговым входам можно измерить напряжение подаваемого сигнала. С их помощью реально смастерить даже осциллограф, который, правда, будет ограничен возможностями процессора. Цифровые выводы способны как генерировать сигнал, так и принимать его. Могут они работать и с ШИМ-сигналами, поэтому их используют для управления двигателем или устройством генерирования звука. Также их используют для «общения» с другими устройствами вроде однопроводной шины, асинхронного последовательного порта, SPI, I2C. Благодаря конструктивным особенностям подключение I2C и SPI возможно даже на одну шину.