Содержание
Распиновка
Пины питания
- VIN: Входной пин для подключения внешнего источника питания с напряжением в диапазоне от 7 до 12 вольт. Через контакт можно потреблять напряжение, когда устройство запитано через внешний разъём питания.
- 5V: Выходной пин от регулятора напряжения на плате с выходом 5 вольт и максимальных током 800 мА. Питать устройство через вывод не рекомендуется — вы рискуете спалить плату.
- 3.3V: Выходной пин от регулятора напряжения с выходом 3,3 вольта и максимальных током 150 мА. Питать устройство через вывод не рекомендуется — вы рискуете спалить плату.
- GND: Выводы земли.
- IOREF: Контакт предоставляет платам расширения информацию о рабочем напряжении микроконтроллера. В зависимости от напряжения, плата расширения может переключиться на соответствующий источник питания либо задействовать преобразователи уровней.
Порты ввода/вывода
-
Цифровые входы/выходы: пины –
Логический уровень единицы — 5 В, нуля — 0 В. Максимальный ток выхода — 40 мА. К контактам подключены подтягивающие резисторы, которые по умолчанию выключены, но могут быть включены программно. -
ШИМ: пины – и –
Позволяет выводить аналоговые значения в виде ШИМ-сигнала. Разрядность ШИМ не меняется и установлена в 8 бит. -
АЦП: пины –
Позволяет представить аналоговое напряжение в цифровом виде. Разрядность АЦП не меняется и установлена в 10 бит. Диапазон входного напряжения от 0 до 5 В. При подаче большего напряжения — вы убьёте микроконтроллер.
Arduino Mega 2560 R3
Ардуино Мега 2560 снабжена микроконтроллером ATmega2560 с тактовой частотой 16 мГц.
Характеристики Ардуино Мега 2560
- Микроконтроллер: ATmega2560
- Тактовая частота: 16 мГц
- Рабочее напряжение: 5 В
- Предельные напряжения питания: 5-20 В
- Рекомендуемое напряжение питания: 7-12 В
- Максимальная сила тока с одного вывода: 40 мА
- Цифровые входы/выходы: 54
- Цифровые входы/выходы с поддержкой ШИМ: 15
- Аналоговые входы: 16
- Flash-память: 256 КБ (8 из них используются загрузчиком)
- SRAM: 8 КБ
- EEPROM: 4 КБ
Подключение Arduino Mega 2560 к питанию
Эту плату можно питать четырьмя разными способами:
Через порт USB. Можно питать ардуино от компьютера, powerbank, смартфона (если он поддерживает режим OTG) или от адаптера, вставленного в розетку.
Через пин +5V. Этот пин является не только выводом, но и вводом. Будьте внимательны! На этот пин нужно подавать ровно 5 вольт. В противном случае можно спалить сам микроконтроллер.
Через штекер питания, расположенный на плате. Можно использовать, батарейки, аккумуляторы и разнообразные блоки питания. Этот штекер подключен к пину VIN
О напряжении и мерах предосторожности написано в следующем пункте.
Через пин VIN. Ток от этого пина проходит через встроенный стабилизатор напряжения
По заявлениям производителя можно подавать от 5 до 20 вольт. Но это не совсем так. Так как стабилизатор имеет не 100% КПД, то при подаче 5 вольт на пин VIN напряжения может не хватить на питание микроконтроллера, да и на цифровых пинах будет не 5 вольт, а меньше. Также не стоит работать на максимальном напряжении. При 20 вольтах на пине VIN будет сильно греться стабилизатор напряжения, вплоть до выхода из строя. Поэтому рекомендуется использовать напряжение от 7 до 12 вольт.
Что такое Arduino?
Ардуино (Arduino) — специальный инструмент, позволяющий проектировать электронные устройства, имеющие более тесное взаимодействие с физической средой в сравнении с теми же ПК, фактически не выходящими за пределы виртуальной реальности.
В основе платформы лежит открытый код, а само устройство построено на печатной плате с «вшитым» в ней программным обеспечением.
Другими словами, Ардуино — небольшое устройство, обеспечивающее управление различными датчиками, системами освещения, принятия и передачи данных.
В состав Arduino входит микроконтроллер, представляющий собой собранный на одной схеме микропроцессор. Его особенность — способность выполнять простые задачи. В зависимости от модели устройство Ардуино может комплектоваться микроконтроллерами различных типов.
Существует несколько моделей плат, самые распространённые из них – UNO, Mega 2560 R3.
Не менее важная особенность печатной платы заключается в наличии 22 выводов, которые расположены по периметру изделия. Они бывают аналоговыми и цифровыми.
Особенность последних заключается в управлении с помощью только двух параметров — логической единицы или нуля. Что касается аналогового вывода, между 1 и 0 имеется много мелких участков.
Сегодня Arduino используется при создании электронных систем, способных принимать информацию с различных датчиков (цифровых и аналоговых).
Устройства на Ардуино могут работать в комплексе с ПО на компьютере или самостоятельно.
Что касается плат, их можно собрать своими руками или же приобрести готовое изделие. Программирование Arduino производится на языке Wiring.
ЧИТАЙТЕ ПО ТЕМЕ: Умный дом Xiaomi Smart Home, обзор, комплектация, подключение и настройка своими руками, сценарии.
С чего начать работу с Ардуино
Если вы делаете первые шаги в мире Ардуино, то советуем вам заранее приготовиться к двойному потоку знаний. Во-первых, вам придется разобраться с тем, что такое контроллер Arduino, какие устройства можно к нему подключить и как это сделать. Потребуется разобраться с основами электроники. Во-вторых, придется научиться навыкам программирования в Arduino. Для профессиональной работы нужны знания C++, для начинающих доступны многочисленные графические среды с блочным программированием. Например, mBlock или ArduBlock. При отсутствии реальной платы можно воспользоваться одним из эмуляторов ардуино.
Все это потребует и времени, и знаний, но результатом станет удивительное ощущение восторга от сделанных своими руками умных устройств
Счастья от того, что вы стали почти волшебником, приближаясь шаг за шагом к вершинам технического мастерства. Крайне важно, чтобы теория сочеталась с практикой и вы как можно быстрее переходили от чтения статей к созданию реальных устройств
Программирование для платы Uno
Для написания программ (скетчей) для контроллер Ардуино вам нужно установить среду программирования. Самым простым вариантом будет установка бесплатной Arduino IDE, скачать ее можно с официального сайта.
После установки IDE вам нужно убедиться, что выбрана нужная плата. Для этого у Arduino IDE в меню “Инструменты” и подпункте “Плата” следует выбрать нашу плату (Arduino/Genuino Uno). После выбора платы автоматически изменятся параметры сборки проекта и итоговый скетч будет скомпилирован в формат, который поддерживает плата. Подключив контроллер к компьютеру через USB, вы сможете в одно касание заливать на него вашу программу,используя команду “Загрузить”.
Сам скетч чаще всего представляет собой бесконечный цикл, в котором регулярно опрашиваются пины с присоединенными датчиками и с помощью специальных команд формируется управляющее воздействие на внешние устройства (они включаются или выключаются). У программиста Ардуино есть возможность подключить готовые библиотеки, как встроенные в IDE, так и доступные на многочисленных сайтах и форумах.
Написанная и скомпилированная программа загружается через USB-соединение (UART- Serial). Со стороны контролера за этот процесс отвечает bootloader.
Более подробную информацию о том, как устроены программы для платы Ардуино можно найти в нашем разделе, посвященном программированию.
Размеры Уно
Arduino Uno R3 – самая популярная плата, построенная на базе процессора ATmega328. В зависимости от конкретной модели платы этой линейки используются различные микроконтроллеры, на момент написания статьи самой распространённой является версия именно R3.
Плату используют для обучения, разработки, создания рабочих макетов устройств. Ардуино, по своей сути, – это AVR микроконтроллер с возможностью упрощенного программирования и разработки. Это достигнуто с помощью специально подготовленного загрузчика, прошитого в память МК, и фирменной среды разработки.
Плата Ардуино Уно
Размеры платы представлены на схеме ниже. Общие размеры Уно составляют 53,4 мм на 68,6 мм.
Автоматическая (программная перезагрузка)
Вместо того, чтобы физически нажимать клавишу сброса перед загрузкой, Arduino Mega 2560 разработан таким образом, что позволяет программный сброс с подключенного компьютера. Одна из линий, управляющая потоком данных ATmega8U2 — линия DTR, подключена к линии сброса ATmega2560 через конденсатор емкостью 100 нФ. Активация этой линии, используя низкий уровень напряжения позволяет сбросить микросхему. Программное обеспечение Arduino использует эту возможность, позволяя загружать код простым нажатием на кнопку загрузки в среде Arduino. Подача сигнала низкого уровня синхронизировано с началом записи кода, что сокращает таймаут загрузчика.
Это имеет еще одно применение. Когда Mega 2560 подключается к компьютеру под управлением Mac OS X или Linux, каждый раз происходит программная перезагрузка (через USB). Программа загрузчика на Mega 2560 выполняется примерно полсекунды. В процессе программирования происходит задержка нескольких первых байтов кода, чтобы избежать получение некорректных данных (всех, кроме кода новой программы). Если производится разовая отладка скетча, записанного в платформу, или ввод каких-либо других данных при первом запуске, необходимо убедиться, что программа на компьютере перед передачей данных ожидает в течение секунды.
Питание
Arduino Mega может получать питание как через подключение по USB, так и от внешнего источника питания. Источник питания выбирается автоматически.
Внешнее питание (не USB) может подаваться через преобразователь напряжения AC/DC (блок питания) или аккумуляторной батареей. Преобразователь напряжения подключается посредством разъема 2.1 мм с положительным полюсом на центральном контакте. Провода от батареи подключаются к выводам Gnd и Vin разъема питания (POWER).
Платформа может работать при внешнем питании от 6 В до 20 В. При напряжении питания ниже 7 В, вывод 5V может выдавать менее 5 В, при этом платформа может работать нестабильно. При использовании напряжения выше 12 В регулятор напряжения может перегреться и повредить плату. Рекомендуемый диапазон от 7 В до 12 В.
Плата Mega2560, в отличие от предыдущих версий плат, не использует FTDI USB микроконтроллер. Для обмена данными по USB используется микроконтроллер Atmega8U2, запрограммированный как конвертер USB-to-serial.
Выводы питания:
- VIN. Вход используется для подачи питания от внешнего источника (в отсутствие 5 В от разъема USB или другого регулируемого источника питания). Подача напряжения питания происходит через данный вывод. Если питание подается на разьем 2.1mm, то на этот вход можно запитаться.
- 5V. Регулируемый источник напряжения, используемый для питания микроконтроллера и компонентов на плате. Питание может подаваться от вывода VIN через регулятор напряжения, или от разъема USB, или другого регулируемого источника напряжения 5 В.
- 3V3. Напряжение на выводе 3.3 В генерируемое микросхемой FTDI на платформе. Максимальное потребление тока 50 мА.
- GND. Выводы заземления.
Как преодолеть аппаратные ограничения
Большинство распространённых плат имеют аналогичные характеристики, среди них:
- Uno;
- Nano;
- Pro mini;
- и подобные.
Но с развитием ваших навыков разработки в этой среде появляется проблема нехватки мощности и быстродействия этой платформы. Первым шагом для преодоления ограничений является использование языка C AVR.
С его помощью вы ускорите на порядок скорость обращения к портам, частоту ШИМ и размер кода. Если вам и этого недостаточно, то вы можете воспользоваться мощными моделями с аналогичным подходом к разработке. Для этого подойдёт плата Arduino Mega2560. Еще более мощная – модель Due. В противном случае вам стоит ознакомиться с разновидностями одноплатных компьютеров и STM микроконтроллеров.
Ардуино Uno R3 – отличная плата для большинства проектов, которая служит для изучения устройств цифровой электроники.
Входные и выходные контакты
Каждый из 54 контактов Mega 2560 можно использовать и в качестве входного, и в качестве выходного контакта – при помощи функций pinMode(), digitalWrite() и digitalRead(). Они работают на 5 вольтах.
Рекомендуемой силой тока (принимаемого и отдаваемого) для каждого контакта является 20 миллиампер. Кроме того, каждый контакт оснащен подтягивающим резистором на 20-50 кОм (по умолчанию он отключен).
Максимально допустимая сила тока – 40 миллиампер, и если ее превысить, это может привести к повреждению микроконтроллера.
Кроме того, некоторые контакты Mega 2560 имеют специальные функции:
Последовательная передача данных. Класс Serial: 0-ой (RX) и 1-ый (TX) контакты; класс Serial1: 19-ый (RX) и 18-ый (TX) контакты; класс Serial2: 15-ый (RX) и 14-ый (TX) контакты. Используются для приема (RX) и передачи (TX) последовательных TTL-данных. Кроме того, 0-ой и 1-ый контакты подключены к соответствующим контактам на чипе ATmega16U2, конвертирующем USB в TTL.
Внешние прерывания: 2-ой (прерывание 0), 3-ий (прерывание 1), 18-ый (прерывание 5), 19-ый (прерывание 4), 20-ый (прерывание 3) и 21-ый (прерывание 2) контакты. Эти контакты настроены таким образом, что запускают прерывание при переключении в состояние LOW, при нарастающем/убывающем фронте импульса и при изменении вольтовой логики. Более подробно читайте в статье о функции attachInterrupt().
ШИМ: со 2-го по 13-ый, с 44-ого по 46-ой. На этих контактах возможна 8-битная ШИМ при помощи функции analogWrite().
Интерфейс SPI: 50-ый (MISO), 51-ый (MOSI), 52-ой (SCK) и 53-ий (SS) контакты. На них поддерживается SPI-коммуникация при помощи библиотеки SPI. Контакты для SPI также имеются на ICSP-гребешке, который физическим совместим с Arduino/Genuino Uno и старыми Duemilanove и Diecimila.
Встроенный светодиод: 13-ый цифровой контакт. Если он находится в состоянии HIGH, то светодиод включается, а если в LOW, то выключается.
Интерфейс TWI: 20-ый (SDA) и 21-ый (SCL) контакты. На них поддерживается TWI-коммуникация при помощи библиотеки Wire
Обратите внимание, что эти контакты находятся не там, где находятся контакты для TWI у плат Duemilanove и Diecimila.
Плата Mega 2560, помимо прочего, оснащена 16 входными аналоговыми контактами, каждый из которых поддерживает 10-битное разрешение (т.е. значения в диапазоне от 1 до 1024). По молчанию вольтовый диапазон в них составляет от «земли» до 5 вольт, однако вы можете поменять верхнюю границу этого диапазона при помощи контакта AREF и функции analogReference().
На плате есть еще несколько специальных контактов:
- AREF – эталонное напряжение для входных аналоговых контактов. Используется с analogReference().
- Reset – если подать на эту линию LOW, это сбросит микроконтроллер. Обычно используется, если к плате подключен «шилд», т.к. он блокирует кнопку сброса, расположенную на самой плате.
Связь
На платформе Arduino Mega2560 установлено несколько устройств для осуществления связи с компьютером, другими устройствами Arduino или микроконтроллерами. ATmega2560 поддерживает 4 порта последовательной передачи данных UART для TTL. Установленная на плате микросхема ATmega8U2 направляет один из интерфейсов через USB, предоставляя виртуальный COM порт программам на компьютере (машинам под упровлением Windows для корректной работы с виртуальным COM портом необоходим .inf файл, системы на базе OSX и Линукс, автоматически распознаю COM порт). Утилита мониторинга последовательной шины (Serial Monitor) среды разработки Arduino позволяет посылать и получать текстовые данные при подключении к платформе. Светодиоды RX и TX на платформе будут мигать при передаче данных через микросхему ATmega8U2 и USB подключение (но не при использовании последовательной передачи через выводы 0 и 1).
ATmega2560 поддерживает интерфейсы I2C (TWI) и SPI.
Описание пинов платы
Микроконтроллер имеет 14 цифровых пинов, они могут быть использованы, как вход или выход. Из них 6 могут выдавать ШИМ-сигнал. Они нужны для регулировки мощности в нагрузке и других функций.
Пин ардуино | Адресация в скетче | Специальное назначение | ШИМ |
---|---|---|---|
Цифровой пин 0 | RX | ||
Цифровой пин 1 | 1 | TX | |
Цифровой пин 2 | 2 | Вход для прерываний | |
Цифровой пин 3 | 3 | Вход для прерываний | ШИМ |
Цифровой пин 4 | 4 | ||
Цифровой пин 5 | 5 | ШИМ | |
Цифровой пин 6 | 6 | ШИМ | |
Цифровой пин 7 | 7 | ||
Цифровой пин 8 | 8 | ||
Цифровой пин 9 | 9 | ШИМ | |
Цифровой пин 10 | 10 | SPI (SS) | ШИМ |
Цифровой пин 11 | 11 | SPI (MOSI) | ШИМ |
Цифровой пин 12 | 12 | SPI (MISO) | |
Цифровой пин 13 | 13 | SPI (SCK) К выходу дополнительно подсоединен встроенный светодиод |
Вызов ШИМ-сигнала осуществляется через команду AnalogWrite (номер ножки, значение от 0 до 255). Для работы с аналоговыми датчиками присутствует 6 аналоговых входов/выходов.
Пин | Адресация в скетче | Специальное назначение |
---|---|---|
Аналоговый пин A0 | A0 или 14 | |
Аналоговый пин A1 | A1 или 15 | |
Аналоговый пин A2 | A2 или 16 | |
Аналоговый пин A3 | A3 или 17 | |
Аналоговый пин A4 | A4 или 18 | I2C (SCA) |
Аналоговый пин A5 | A5 или 19 | I2C (SCL) |
Их тоже можно использовать, как цифровые.
Аналоговый сигнал обрабатывается 10 битным аналогово-цифровым преобразователем (АЦП), а при чтении микроконтроллер выдаёт численное значение от 0 до 1024. Это равно максимальному значению, которое можно записать в 10 битах. Каждый из выводов способен выдать постоянный ток до 40 мА.
Принципиальная схема платы выглядит так (нажмите для увеличения):
Элементы платы
Микроконтроллер ATmega2560
Сердцем платформы Arduino Mega является 8-битный микроконтроллер семейства AVR — ATmega2560 с тактовой частотой 16 МГц. Контроллер предоставляет 256 КБ Flash-памяти для хранения прошивки, 8 КБ оперативной памяти SRAM и 4 КБ энергонезависимой памяти EEPROM для хранения данных.
Микроконтроллер ATmega16U2
Микроконтроллер ATmega16U2 обеспечивает связь микроконтроллера ATmega2560 с USB-портом компьютера. При подключении к ПК Arduino Mega 2560 определяется как виртуальный COM-порт.
Светодиодная индикация
Имя светодиода | Назначение |
---|---|
RX и TX | Мигают при обмене данными между Arduino Mega 2560 и ПК. |
L | Пользовательский светодиод подключённый к 13 пину микроконтроллера. При высоком уровне светодиод включается, при низком – выключается. |
ON | Наличие питания на Arduino Mega. |
Регулятор напряжения 5 В
Линейный понижающий регулятор напряжения LD1117S50CTR с выходом 5 вольт обеспечивает питание микроконтроллеров ATmega2560, ATmega16U2 и другой логики платформы. Максимальный выходной ток составляет 800 мА.
Регулятор напряжения 3,3 В
Линейный понижающий регулятор напряжения LP2985-33DBVR с выходом 3,3 вольта. Линия выведена только на пин . Максимальный выходной ток составляет 150 мА.
Разъём ICSP
ICSP-разъём предназначен для внутрисхемного программирования микроконтроллера ATmega2560.
Также с применением библиотеки данные выводы могут осуществлять связь с платами расширения по интерфейсу SPI. Линии SPI выведены на 6-контактный разъём, а также продублированы на цифровых пинах , , и .
Проблема нехватки ресурсов
Разрабатывая проекты на Ардуино, вы рано или поздно столкнетесь с двумя проблемами: необходимость минимизации места и нехватка функциональных портов ввода-вывода.
Первая проблема решается элементарно – с помощью миниатюрных плат:
- Nano,
- Mini,
- Pro Mini,
- Micro,
- Digispark ATtiny 85.
Если плата nano и другие мини-платы повторяют функционал обычной Arduino UNO, имея на борту atmega328 или atmega168, то платы с Attiny85 и ей подобные подходят для простейших проектов с минимальным функционалом.
Arduino Mega 2560
Второй же вопрос решается двумя методами:
- Расширение числа выводов с помощью сдвиговых регистров, типа 74HC595. К сожалению, этот метод не позволяет использовать ШИМ для расширенных выводов, да и работает этот способ только для выходных сигналов.
- Объединение нескольких плат в одну систему и их связь с помощью различных интерфейсов обмена данными; однако этот метод довольно сложен, и не всегда оправдан.
Можно решить этот вопрос иначе – здесь на помощь придет большая плата Arduino mega 2560 или её аналог с поддержкой USB хоста – ADK Arduino, но обо всём по порядку.
Простые проекты Ардуино
Давайте начнем наш обзор с традиционно самых простых, но очень важных проектов, включающих в себя минимальное количество элементов: светодиоды, резисторы и, конечно же, плату ардуино. Все примеры рассчитаны на использование Arduino Uno, но с минимальными изменениями будут работать на любой плате: от Nano и Mega до Pro, Leonardo и даже LilyPad.
Проект с мигающим светодиодом – маячок
Все без исключения учебники и пособия для начинающих по ардуино стартуют с примера мигания светодиодом. Этому есть две причины: такие проекты требуют минимального программирования и их можно запустить даже без сборки электронной схемы – уж что-что, а светодиод есть на любой плате ардуино. Поэтому и мы не станем исключением – давайте начнем с маячка.
Нам понадобится:
- Плата Ардуино Uno, Nano или Mega со встроенным светодиодом, подключенным к 13 пину.
- И все.
Что должно получиться в итоге:
Светодиод мигает – включается и выключается через равные промежутки времени (по умолчанию – 1 сек). Скорость включения и выключения можно настраивать.
Схема проекта
Схема проекта довольно проста: нам нужен только контроллер ардуино со встроенным светодиодом, подсоединенным к пину 13. Именно этим светодиодом мы и будем мигать. Подойдут любые популярные платы: Uno, Nano, Mega и другие.
Подсоединяем Arduino к компьютеру, убеждаемся, что плата ожила и замигала загрузочными огоньками. Во многих платах «мигающий» скетч уже записан в микроконтроллер, поэтому светодиод может начать мигать сразу после включения.
С помощью такого простого проекта маячка вы можете быстро проверить работоспособность платы: подключите ее к компьютеру, залейте скетч и по миганию светодиода сразу станет понятно – работает плата или нет.
Программирование в проекте Ардуино
Если в вашей плате нет загруженного скетча маячка – не беда. Можно легко загрузить уже готовый пример, доступный в среде программирования Ардуино.
Открываем программу Arduino IDE, убеждаемся, что выбран нужный порт.
Проверка порта Ардуино – выбираем порт с максимальным номером
Затем открываем уже готовый скетч Blink – он находится в списке встроенных примеров. Откройте меню Файл, найдите подпункт с примерами, затем Basics и выберите файл Blink.
Открываем пример Blink в Ардуино IDE
В открытом окне отобразится исходный код программы (скетча), который вам нужно будет загрузить в контроллер. Для этого просто нажимаем на кнопку со стрелочкой.
Кнопки компиляции и загрузки скетча
Информация в Arduino IDE – Загрузка завершена
Ждем немного (внизу можно отследить процесс загрузки) – и все. Плата опять подмигнет несколькими светодиодами, а затем один из светодиодов начнет свой размеренный цикл включений и выключений. Можно вас поздравить с первым загруженным проектом!
Проект маячка со светодиодом и макетной платой
В этом проекте мы создадим мигающий светодиод – подключим его с помощью проводов, резистора и макетной платы к ардуино. Сам скетч и логика работы останутся таким же – светодиод включается и выключается.
Графическое изображение схемы подключения доступно на следующем рисунке:
Другие идеи проектов со светодиодами:
- Мигалка (мигаем двумя свтодиодами разных цветов)
- Светофор
- Светомузыка
- Сонный маячок
- Маячок – сигнализация
- Азбука Морзе
Подробное описание схемы подключения и логики работы программы можно найти в отдельной статье, посвященной проектам со светодиодами.
Плата Arduino Uno R3
Устройство построено на микроконтроллере АTmega16U2 и имеет повышенный уровень помехоустойчивости по цепи сброса.
Устройство отличается от предыдущей версии лишь тем, что в этом случае не используется интерфейс USB-UART FTDI при подключении к компьютеру. Эту задачу выполняет выполняет сам микроконтроллер ATmega 16U2.
Изменения распиновки платы выглядят следующим образом:
- Возле вывода AREF добавлены два пина: SDA, SCL.
- Возле пина RESET также добавлены два вывода: IOREF, позволяющий подключать платы расширения с подстройкой под необходимое напряжение; второй вывод не используется и находится в резерве.
Дополнительные платы
Итак, чтобы работать с дифференциальным входом сигма-дельта АЦП, нужен исключительно дифференциальный источник сигнала, это может быть как специальный генератор сигналов, так и буферный дифференциальный ОУ, который может преобразовывать однополярный или двухполярный сигнал в дифференциальный.
Простейшую схему можно увидеть в даташите на LT1994 или любом аналогичном дифференциальном ОУ:
Здесь отображен открытый вход (т. е
без развязки по постоянному напряжению) и согласовано сопротивление обоих входов ОУ (на положительном входе ОУ 402 Ом на общий и на отрицательном входе 374 Ом + (50 * 54,9/(50 + 54,9)) ~ 400,17 Ом), что очень важно для минимизации искажений и сдвига Vocm
Я собрал аналогичную схему (с этим ОУ), только с другими номиналами, в отсутствие сигнала на входе и выходах, а также Vocm вход подключён к выходу Vref 1986ВЕ4 для согласования уровней смещения, можно видеть следующее:
- CH1 (жёлтый) — это вход, как видно, есть небольшое смещение относительно нуля.
- CH2 (голубой) — это положительный выход ОУ.
- CH3 (фиолетовый) — это отрицательный выход ОУ.
Как можно видеть, выходы ОУ равны по постоянному напряжению и также равны напряжению смещения, подаваемому на вход Vocm (+1,2 В).
При подаче синусоиды 200 Гц на вход выходы работают в противофазе:
Выглядит плата для проверки так:
Это слайд-шоу требует JavaScript.
Также есть дисплей с IPS матрицей 240*240 на контроллере ST7789, у меня версия, что управляется только по SPI, — этого вполне хватит для теста. Подключение у него крайне простое (часть схемы с отладочной платы от Waveshare):
Подсветку я подключил просто напрямую к питанию — всегда включена, что самое приятное — здесь не требуется никаких повышающих DC-DC для подсветки и всё можно питать от +3.3 В. Выглядит это так:
Ну что же, двух дополнительных плат вполне хватит для теста (подключение USB-UART переходника не считается):
Переходим к написанию прошивки!
Отличие от других плат
Сегодня на рынке можно встретить множество вариантов плат ардуино. Самыми популярными конкурентами Уно являются платы Nano и Mega. Первая пойдет для проектов, в которых важен размер. Вторая – для проектов, где у схема довольно сложна и требуется множество выходов.
Отличия Arduino Uno от Arduino Nano
Современные платы Arduino Uno и Arduino Nano версии R3 имеют, как правило, на борту общий микроконтроллер: ATmega328. Ключевым отличием является размер платы и тип контактных площадок. Габариты Arduino Uno: 6,8 см x 5,3 см. Габариты Arduino Nano: 4,2 см x 1,85 см. В Arduino UNO используются коннекторы типа «мама», в Nano – «гребень» из ножек, причем у некоторых моделей контактные площадки вообще не припаяны. Естественно, больший размер UNO по сравнению с Nano в некоторых случаях является преимуществом, а в некоторых – недостатком. С платой большого размера гораздо удобнее производить монтаж, но она неудобна в реальных проектах, т.к. сильно увеличивает габариты конечного устройства.
На платах Arduino Uno традиционно используется разъем TYPE-B (широко применяется также для подключения принтеров и МФУ). В некоторых случаях можно встретить вариант с разъемом Micro USB. В платах Arduino Nano стандартом является Mini или Micro USB.
Естественно, различия есть и в разъеме питания. В плате Uno есть встроенный разъем DC, в Nano ему просто не нашлось места.
Кроме аппаратных, существуют еще небольшие отличия в процессе загрузки скетча в плату. Перед загрузкой следует убедиться, что вы выбрали верную плату в меню «Инструменты-Плата».
Отличия от Arduino Mega
Плата Mega в полном соответствии со своим названием является на сегодняшний день самым большим по размеру и количеству пинов контроллеров Arduino. По сравнению с ней в Uno гораздо меньше пинов и памяти. Вот список основных отличий:
- Плата Mega использует иной микроконтроллер: ATMega 2560. Но тактовая частота его равна 16МГц, так же как и в Уно.
- В плате Mega большее количество цифровых пинов – 54 вместо 14 у платы Uno. И аналоговых – 16 / 6.
- У платы Mega больше контактов, поддерживающих аппаратные прерывания: 6 против 2. Больше Serial портов – 4 против 1.
- По объему памяти Uno тоже существенно уступает Megа. Flash -память 32/256, SRAM – 2/8, EEPROM – 4/1.
Исходя из всего этого можно сделать вывод, что для больших сложных проектов с программами большого размера и активным использованием различных коммуникационных портов лучше выбирать Mega. Но эти платы дороже Uno и занимают больше места, поэтому для небольших проектов, не использующих все дополнительные возможности Mega, вполне сойдет Uno – существенного прироста скорости при переходе на “старшего” брата вы не получите.
Arduino mega 2560 описание выводов
Как уже говорилось ранее, мозгом Arduino Mega является ATmega2560. Благодаря ATmega2560 и связанному с ним кварцевому генератору, Мега обладает тактовой частотой 16 МГц, а также 256 КБ флэш-памяти, 8 КБ SRAM и 4 КБ EEPROM. Mega имеет 54 цифровых вывода, 15 из которых возможно использовать в качестве широтно-импульсной модуляции (ШИМ). Также 16 аналоговых выводов, что практически в четыре раза больше, чем у его младшего брата, Uno.
Элементы платы
Микроконтроллер ATmega2560.
Это основной контроллер, используемый для программирования и запуска задачи системы. ATmega2560 — мозг Меги, необходимый для управления всеми другими устройствами на борту.
Микроконтроллер ATmega16U2.
Этот контроллер используется для связи между главным контроллером ATmega2560 и USB-портом.
Световая индикация.
Светодиоды RX и TX. Эти светодиоды визуально отображают процесс обмена данными между платой и компьютером.L — встроенный светодиод, подключённый к 13 выводу микроконтроллера. При выходе с этого вывода 5 вольт (HIGH-высоки уровень сигнала) светодиод горит, если же сигнал низкого уровня 0 вольт (LOW) светодиод гаснет.
ON Индикатор питания.
Загорается при подаче питания на плату.
USB.
USB Type-B используется для питания и подключения платы Mega 2560 к ПК. Подключение к ПК используется для прошивки микроконтроллера.
Разъём Power jack.
Разъём для подключения блока питания постоянного тока с напряжением от 7 В до 12 В.
Кнопка сброса (Reset)
Аналог кнопки RESET ПК. Служит для перезапуска микроконтроллера.
Разъёмы ICSP, ICSP1.
Разъёмы имеют функцию программирования с использованием последовательной шины с помощью программатора AVR. ATmega2560 запрограммирован для запуска системы через ICSP, а ATmega16U2 через ICSP1 — для последовательной связи и программирования. Это значит, что в случае повреждения прошивок этих микроконтроллеров мы не сможем через usb залить программный код. В то же время эти два разъёма позволяют восстановить прошивки.
Arduino Mega, SPI интерфейс.
Через разъём ICSP с помощью библиотеки SPI можно осуществить подключение периферийных устройств через интерфейс SPI. Также контакты SPI продублированы на цифровых пинах платы: 50(MISO), 51(MOSI), 52(SCK) и 53(SS).
У Ардуино Мега 2560 распиновка выполнена как на картинке ниже.
Распиновка Arduino Mega 2560
Пины питания
VIN: Пин для подключения источника питания 7–12 вольт, например, аккумулятор. Так же контакты VIN можно использовать как источник питания, когда плата запитана через Power jack
Напряжение на VIN будет равно напряжению на Power jack.5V: Пин с выходом 5 В и максимальным током 800 мА.3.3V: Пин с выходом 3,3 В и максимальным током 150 мА.
Использовать пины 5V и 3.3V в качестве питания нужно осторожно. Подключение более мощной нагрузки, чем выдают пины неизбежно приведёт к повреждению микроконтроллера.GND: Выводы заземления.IOREF: Контакт информирует платы расширения о номинале рабочего напряжения микроконтроллера
В зависимости от напряжения, плата расширения переключается на необходимый источник питания, либо включает в работу преобразователи напряжения.AREF: Входной пин используется для подключения опорного напряжения аналого-цифрового преобразователя (АЦП).
Цифровые входы/выходы: пины 0–53
Максимальное входное/выходное напряжение 5 вольт. Максимальный ток выхода — 40 мА. У каждого контакта есть подтягивающий резистор. По умолчанию он выключен, при необходимости включается программно.ШИМ: контакты 2–13 и 44–46
Используется для плавного регулирования мощности. Например, для диммирования источника света или управления скоростью вращения двигателя.