Модуль ARDUINO UNO R3, CH340, на ЖЕЛТОЙ плате

Модуль UNO R3, Arduino-совместимый, на ЖЕЛТОЙ плате

  • Микроконтроллер: ATmega328
  • Тактовая частота: 16 МГц
  • Флеш-память: 32 Кб, из которых 0.5 Кб используются для загрузчика
  • ОЗУ-память: 2 Кб
  • EEPROM-память: 1 Кб
  • Рабочее напряжение: 5 В
  • Входное напряжение (рекомендуемое): 7-12 В
  • Входное напряжение (предельное): 6-20 В
  • Цифровые входы/выходы: 20
  • ШИМ выходы: 6
  • Аналоговые входы: 8, 10-бит
  • Максимальный постоянный ток через вход/выход: 40 мА, рекомендуемый: 20мА
  • Максимальный постоянный ток для вывода 3.3 В: 30 мА
  • Кнопка ручного перезапуска "Reset"
  • USB-разъём: microUSB, тип B
  • Световая индикация событий: обмен данными RX,TX, питание платы, цифровой вывод 13
  • Размеры - 69х54х12.5мм

Arduino-совместимый модуль Uno R3 является сторонней разработкой, созданный на основе открытого источника проекта Arduino. Плата целиком и полностью повторяет все размеры, параметры и возможности оригинального контроллера Uno R3. Тем не менее, присутствуют небольшие отличия от прародителя, расширяющие возможности:

  1. Центральный микроконтроллер ATmega328 выполнен в миниатюрном корпусе MLF-32;
  2. Связь между USB-портом и центральным процессором основана на чипе CH340G, выполняющим роль аппаратного моста и запрограммированным в режим работы преобразователя USB-в-TTL;
  3. Наличие дополнительный выводов интерфейсов UART, TWI/IIC/I2C и контактов питания 5В, 3.3В для удобства пользователя;
  4. Полноразмерный USB-порт типа B заменён на более распространённый и удобный microUSB-порт типа B;
  5. Наличие новых аналоговых выводов А6 и А7, ранее не реализованных в оригинальной модели UNO. Причиной тому послужили конструктивные особенности корпуса PDIP-28 контроллера ATmega328;
  6. Наличие дополнительных дублирующих контактов-отверстий для всех групп аналого-цифровых выводов и выводов питания, расположенных по бокам платы.

Бесспорно, UNO заслужила максимальную популярность: ею часто комплектуются стартовые наборы, выпускаемые сторонними производителями для начинающих с азов разработчиков. Зачастую, её используют в своих проектах как любители, так и профессионалы. На основе UNO разработано и создано просто огромное количество разнообразных полезных проектов, примеры которых распространены на просторах Интернета. Arduino обладает поддержкой в лице дружелюбного сообщества пользователей, активно общающихся между собой на форумах, и охотно помогающих в возникающих трудностях. Доступность, лёгкость в понимании при изучении и надёжность в использовании - это её конёк.

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

  • датчики звука, капель и дождя, расстояния, обнаружения газов, температуры или освещённости;
  • часы реального времени;
  • MP3-проигрыватели, звуковые усилители, FM-приёмники;
  • сервомоторы;
  • модули с кнопками или светодиодами;
  • часы реального времени;
  • Ethernet модули;
  • модули с реле разнообразных конфигураций;
  • картридеры SD и микро-SD карт памяти;
  • беспроводные радиопередатчики GSM/GPRS, RFid, WiFi и Bluetooth;
  • символьные и графические дисплеи;
  • гироскопы, акселерометры, магнитометры и многие другие.

Если говорить обобщённо, Arduino - это полноценный комплекс, состоящий из микроконтроллерной платы и программы-редактора на основе упрощённой версии языка С++ для написания пользовательского исполняемого кода с возможностью последующей прошивки контроллера.

Открытое программное обеспечение ARDUINO IDE, используемое для программирования плат ARDUINO, можно бесплатно загрузить уже сейчас (поддерживаются операционные системы Linux, Mac OS и Windows).

UNO не имеет своей операционной системы - полная доступность ресурсов находится под контролем пользователя. Единственное программное обеспечение, предварительно записанное в микросхему ATmega328, называется "Загрузчик", которое инициализирует систему, управляет доступом к встроенной памяти при загрузке в микроконтроллер нового кода, а также запуском исполняемых программ.

Основные шаги в создании проектов

  1. Разработка проекта "на бумаге" на основе вашей идеи;
  2. Предварительная "черновая" сборка электрической схемы;
  3. Написание программного кода и его прошивка в микроконтроллер;
  4. Анализ полученного результата, при необходимости - отладка отдельных частей проекта;
  5. Сборка законченного варианта конструкции.

Обзор платы

Расположение элементов на UNO R3

В отличии от предыдущих версий UNO, в которых за связь между USB-портом и главным контроллером ATmega328 отвечал микроконтроллер ATmega8U2, данная содержит в себе бюджетный чип CH340.

В обновлённой UNO Rev3, рядом с контактом AREF, были добавлены выводы SDA и SCL интерфейса TWI/IIC/I2C. Появился новый контакт 5V, несущий в себе функцию IOREF. Для более удобного использования кнопка "Reset" из центра перемещена на угол платы.

Питание

Подать питание плате UNO R3 можно проводным соединением через USB-порт или используя внешний источник питания. Определение и переключение на активный источник питания происходит в автоматическом режиме.

К внешним (не USB) источникам относятся стационарные блоки питания, преобразующие переменное напряжение в постоянное, или батареи. Адаптеры питания могут подключаться к разъёму внешнего источника питания, имеющего размеры: внешний "минусовой" контакт 5,5мм, центральный штырьевой "плюсовой" контакт 2,1мм. Батареи можно соединять с выводами Vin (+) и GND (-).

Напряжение внешнего источника питания рекомендуется в интервале от 7 до 12 вольт. Питание платы напряжением менее 7 вольт может привести к нестабильной работы системы в целом. Питание с напряжением более 12 вольт приведёт к перегреву компонентов и выходу из строя всего модуля.

Назначение выводов 8-контактной группы "Питание":

  • VIN - входящее напряжение внешнего источника питания;
  • 5V - исходящее напряжение, отрегулированное встроенным понижающим регулятором до 5 вольт. Основное рабочее напряжение всей цепи модуля. Используется для питания подключаемых внешних модулей;
  • 3V3 - исходящее напряжение, отрегулированное встроенным понижающим регулятором до 3.3 вольт. Используется для питания подключаемых внешних модулей;
  • GND - общий вывод, заземление;
  • RES - служит для управляемого аппаратного сброса микроконтроллера. Физическая кнопка "Reset" позволяет выполнить сброс вручную;
  • 5V(IOREF) - вывод соединён с контактом 5V. Полноразмерные модули, установленные на плату и имеющие аналогичный ответный контакт, смогут определить рабочее напряжение контроллера, и, при необходимости, самостоятельно выбрать нужный им источник питания: 5 вольт, 3.3 вольта или дополнительный внешний.
  • Крайний 8-й вывод не задействован. Возможно, ему определят назначение в новых версиях платы.

Примечание! Не запускайте ваш проект (Arduino) при недостаточном питании. Модуль Uno способен самостоятельно перезапуститься, если совмещаются модули с высоким энергопотреблением: серво, моторы, большие экранные модули. Лучшим решением будет подключение таких модулей к внешним источникам напряжения. Простого USB-питания может оказаться не достаточно, особенно, когда сервопривод работает с нагрузкой.

Защита USB

Arduino UNO R3 имеет встроенный самовосстанавливающийся предохранитель, ограничивающий нагрузку на USB-порт вашего компьютера, защищает от короткого замыкания. Максимальный возможный ток всей схемы через USB-подключение составляет 500 миллиампер. Превышение порогового значение приведёт к временному разрыву питающей цепи, которое восстановиться при устранении сверхнагрузки или короткого замыкания.

Вводы и выводы

Плата UNO обладает цифровыми выводами (контакты 0-13), работающими с логикой напряжений "1" и "0". Под единицей подразумевается входящее/исходящее напряжение +5 вольт, называемое высоким сигналом. Под нулём - входящее/исходящее напряжение 0 вольт, называемое низким сигналом. Каждый вывод имеет нагрузочный резистор (20-50 кОм), отключенный по умолчанию. Рекомендуемый ток отдельного вывода составляет 20 миллиампер, предельный ток - 40 миллиампер. Обращение к выводам в программном коде осуществляется операторами pinMode(), digitalWrite() и digitalRead().

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

Некоторые выводы наделены аналоговым функционалом (А0-А5), позволяющим определять входящее напряжение в диапазоне от 0 до 5 вольт (по умолчанию), делящееся в цифровом соотношении на 1024 возможных значения (0..1023). В программном коде обращение к выводам осуществляется оператором analogRead(). Оператор analogReference() позволяет установить границы измеряемого напряжения, возможные варианты:

  • DEFAULT: стандартное опорное напряжение 5 вольт;
  • INTERNAL: встроенное опорное напряжение 1.1 вольта;
  • EXTERNAL: напряжение внешнего источника, подключенного к контакту AREF.

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

В качестве примера: опорное напряжение - 5 вольт, на входе аналогового контакта - 2.5 вольта. Результат сравнения = 512.

В добавок, UNO оснащена шестью специализированными выводами (значок тильда "~"), позволяющие пользователю регулировать исходящее напряжение в диапазоне от 0 до 5 вольт на основе широтно-импульсной модуляции (ШИМ) с градацией цифровых значений в интервале от 0 до 255. Обращение к выводам в программном коде осуществляется оператором analogWrite().

Специальные функции:

  • Асинхронный последовательный интерфейс UART: выводы RX0 (приём) и TX1 (передача). Подключение к ним других устройств осуществляется по схеме RX->TX, TX->RX;
  • Двунаправленный последовательный интерфейс TWI/I2C: выводы А4 или SDA, A5 или SCL. Связь с другими устройствами поддерживается библиотекой TWI;
  • Последовательный периферийный интерфейс SPI: выводы 10 (SS), 11(MOSI), 12 (MISO), 13 (SCK) и на разъёме ICSP, расположенного рядом с микроконтроллером ATmega328. Связь с другими устройствами поддерживается библиотекой SPI;
  • ШИМ: выводы 3, 5, 6, 9, 10 и 11 с разрядностью 8-бит;
  • Внешние прерывания: 2 (INT0) и 3 (INT1). Каждый контакт можно настроить на генерацию прерывания по низкому уровню, по восходящему или спадающему фронту (задержка программы для предотвращения ложного прерывания в момент подачи питания), или на любое изменение уровня на входе вывода прерывания. Оперирует прерываниями программная функция attachInterrupt();
  • Светодиод L: отображает наличие сигнала высоко уровня (значение HIGH) для цифрового вывода 13. Гаснет при сигнале низкого уровня (значение LOW);
  • AREF - опорное напряжение, устанавливаемое оператором analogReference();
  • Reset - передача сигнала низкого уровня (LOW) приведёт к перезапуску микроконтроллера.

Группа из 6-ти контактов - ICSP

Разъём ICSP (внутрисистемное последовательное программирование) разработан для непосредственного программирования центрального микроконтроллера ATmega328P с помощью внешних программаторов (USB ASP, AVRISP STK500 или другой с поддержкой интерфейса SPI) без использования внутреннего загрузчика. Данный способ применяется в тех случаях, когда требуется полный объём доступной флэш-памяти, или же использование USB-соединения нецелесообразно или неудобно.

Распиновка (цоколёвка) контактов UNO R3

Распиновка (цоколевка) Arduino UNO R3, UNO pinout

Память

  1. Энергонезависимая флеш-память объёмом 32 КБ, из которых 0.5 кБ выделено под загрузчик. Основная область для хранения исполняемого программного кода, записываемого в микроконтроллер при его прошивке;
  2. ОЗУ-память (SRAM) размером 2 КБ, предназначена для хранения переменных, создаваемых в процессе выполнения исполняемого пользовательского кода. ОЗУ-память зависит от питающего напряжения, при его отсутствии все данные удаляются;
  3. EEPROM-память объёмом 1 КБ. Относиться к разряду энергонезависимой памяти, доступной пользователю для хранения данных, независящих от основного кода.

Связь и коммуникация

Модуль UNO R3 обладает рядом возможностей для коммуникации с компьютером, другой Arduino-платой, или другими микроконтроллерами. С этой задачей справляется встроенный чип СР340, преобразующий входящие сигналы от USB-порта в TTL-уровни интерфейса UART, и создающий обычный виртуальный COM-порт, по которому и происходит общение с платой. Микропрограмма CH340 использует собственные USB-драйверы, которые необходимо предварительно установить в операционную систему вашего компьютера.

Драйвер CH340 можно загрузить сейчас. Поддерживаются ОС Windows: XP, Vista, 7, 8, 8.1, 10.

Для связи с аналогичными устройствами служат UART TTL (5В) выводы 0 (RX) и 1 (TX). Светодиоды RX и TX будут мигать, когда данные передаются через микросхему USB-в-TTL при соединении с компьютером через USB-порт (но не для последовательной связи на контактах 0 и 1).

Первое подключение

Установите драйвер CH340, используя установщик в соответствии с разрядностью вашей системы. Модуль UNO R3 имеет все необходимые компоненты для подключения, просто соедините его USB-кабелем с компьютером. На плате загорится светодиод "ON", информирующий вас о том, что UNO R3 подключена к питанию. На экране появиться сообщение, подтверждающее назначение виртуального COM-порта. Заглянув в Диспетчер устройств, в разделе "Порты (COM и LPT)" вы увидите

Драйвер CH340 установлен

Программирование

Если вы ранее не программировали контроллеры ARDUINO, то вам необходимо загрузить бесплатный редактор ARDUINO IDE с сайта разработчика и установить его на ваш компьютер. Загрузить сейчас.
Теперь вы можете приступать к программированию UNO.

Любая программа, написанная для ARDUINO, называется "скетч". Прежде, чем вы загрузите скетч, необходимо провести небольшую настройку редактора:
Выберите в меню "Инструменты(Tools)/Плата(Boards)" тип вашего устройства "ARDUINO/Genuine Uno".

Выбор ARDUINO UNO

Следующим шагом необходимо указать порт компьютера, к которому подключен ваш USB кабель. В ОС Windows порты могут быть COM2, COM3 и т.д. На ОС MAC наименование порта может выглядеть как /dev/tty.usbserial-A6006hSc

Выбор порта ARDUINO UNO

Теперь все настроено для загрузки скетча в вашу UNO R3.

Воспользуемся для демонстрации кодом простого скетча, позволяющего "помигать" светодиодом L. Скопируйте текст программы в окно редактора.

int ledPinL = 13; // Указываем номер контакта светодиода L

void setup()
{
pinMode(ledPinL, OUTPUT); // Задаём контакту режим "вывод информации".

}
void loop()
{
digitalWrite(ledPinL, HIGH); // Устанавливаем светодиод L в положение включен
delay(1000); // Ждем 1 секунду
digitalWrite(ledPinL, LOW); // Устанавливаем светодиод L в положение выключен
delay(1000); // Ждем 1 секунду
}

После того, как вы нажмете кнопку "Загрузить" на панели управления ARDUINO IDE, на плате замигают светодиоды, показывающие передачу данных, и на экране компьютера появиться сообщение "Загрузка завершена" (Done Uploading).

Кроме стандартного метода программирования через USB, платой предоставлена возможность программировать контроллер напрямую. Для этого необходимо подключить внешний программатор к ICSP-разъёму. Написание кода можно выполнять в разных программах, одна из таких  - BASCOM-AVR. Тот же пример мигания светодиодом L, написанный для редактора BASCOM-AVR

$regfile = "m328pdef.dat"
$crystal = 16000000
$hwstack = 40
$swstack = 16
$framesize = 32

Config Portb.5 = Output
Portb.5 = 0
Do
Portb.5 = 1
Waitms 500
Portb.5 = 0
Waitms 500
Loop
End

Изучив назначение портов микроконтроллера ATmega328 (на картинке с распиновкой), определяем, что светодиод L подключен к 17 ножке чипа, соответствующей порту B.5. Инициализируем порт B.5 в режим вывода информации. Единичкой и нулем с небольшой задержкой включаем и выключаем светодиод.

Редакторы ARDUINO IDE и BASCOM-AVR имеют немалые ознакомительные библиотеки примеров, предназначенные для изучения основных функций среды разработки.

Техническая помощь

Вопрос: Плата перестала прошиваться, получаю ошибку обращения к порту или ошибку инициализации порта.

Ответ. Попробуйте сделать следующее (каждый шаг может решить проблему):

  1. Отсоедините шнур от USB-разъёма вашего компьютера и соедините снова;
  2. Откройте "Диспетчер устройств", найдите ваше устройство в разделе "Порты (COM и LPT)", щёлкните на нём правой кнопкой и выберите "Свойства". В открывшемся окне, в закладке "Параметры порта" установите другой, неиспользуемый ранее номер порта. Повторите шаг 1;
  3. Откройте "Диспетчер устройств", найдите ваше устройство в разделе "Порты (COM и LPT)", щёлкните на нём правой кнопкой и выберите "Удалить". Повторите шаг 1. Вашему устройству будет определён новый свободный COM-порт;
  4. Возможно, повреждён или утерян загрузчик для ATmega328. Файл дампа памяти для UNO c загрузчиком и примером программы, мигающей светодиодом, можно загрузить по ссылке.
  5. Возможно, неисправен встроенный USB-в-TTL преобразователь уровней. Для программирования контроллера используйте самостоятельные USB-в-TTL адаптеры, подключив их к выводам RX0, TX1, GND, RST(DTR), VCC. Или воспользуйтесь внешними AVR-программаторами.

Похожие позиции

ATTINY85 Micro USB

Модуль Arduino ATTINY85 Micro USB

240 руб. Арт. 0005
Nano V3.0, CH340

Модуль Arduino Nano V3.0, CH340

340 руб. Арт. 0015
MEGA 2560, CH340

Модуль Arduino MEGA 2560, CH340

910 руб. Арт. 3274
Mega ADK R3

Модуль Arduino Mega ADK R3

1880 руб. Арт. 3275
Esplora ATmega32U4

Модуль Arduino Esplora ATmega32U4

1700 руб. Арт. 0033
Информация представленная на данном информационном ресурсе преследует исключительно рекламные цели и не является договором-офертой !
© Все права защищены 2018г https://compacttool.ru
Связаться с нами 8-495-722-71-88 zakaz@compacttool.ru