Знакомство с Arduino Pro mini на примере китайского аналога

( 10 Голосов )

Arduino Pro mini – компактная версия платформы Arduino, предназначенная для построения всевозможных проектов, имеющих не большие размеры. Платформа на 100% совместима с другими платформами Arduino, например такой как Arduino UNO, но намного компактнее её. В данной статье я сделаю обзор на китайский аналог Arduino Pro mini, расскажу чем она отличается от оригинала, чем данная плата отличается от других плат платформы Arduino, а так же расскажу как подключить её к компьютеру для заливки в неё скетч. В завершении убедимся в работоспособности платы, на примере скетча «blink».

Arduino Pro mini

Вот этот аналог Arduino Pro mini я купил на Aliexpress за $1.30, в то время как оригинальная плата на сайте производителя стоит €13. Разница в цене — это первое главное отличие китайского аналога от оригинала.

Arduino Pro mini

Плата пришла в антистатическом пакете. В комплекте так же находились контактные площадки.

Arduino Pro mini

Для сравнения, верхняя плата - оригинальная Arduino Pro mini, ниже, мой китайский аналог. По количеству и расположению контактов, плата идентична оригиналу, кроме контактов А4, А5, А6 и А7. На оригинальной плате эти контакты расположены в центре, на аналоге они находятся слева.

Arduino Pro mini

Для того что бы иметь визуальное представление о размерах платы, приведу её рядом со своим китайским аналогом  Arduino UNO. Pro mini удалось уменьшить в размерах за счёт удаления USB разъёма, схемы согласования платы с USB портом, также был удалён разъём питания. Китайский аналог на 100% совместим со всеми модулями, драйверами, датчиками, которые работают с оригинальной версией.

Оригинальная современная плата Arduino Pro mini построена на базе микроконтроллера ATmega328, на том же самом что и Arduino UNO. Более ранние модели этой платы строились на микроконтроллере ATmega168.

Arduino Pro mini

Китайские же аналоги  Arduino Pro mini на данный момент строятся как на  ATmega328, так и на ATmega168. В этом второе отличие оригинала от аналога. Плата на ATmega168 будет стоить дешевле, чем на ATmega328. Главное же отличие этих контроллеров в том, что  ATmega328 содержит на борту в два раза больше памяти, чем  ATmega168.

Отличия микроконтроллеров

ATmega168

ATmega328

Flash Memory

16 Kбайт

32 Kбайт

SRAM

1 Кбайт

2 Кбайт

EEPROM

512 байт

1024 байт

Но это не значит, что на ATmega168 не получится построить проект, который разрабатывался на плате с  ATmega328, ведь 16 Кбайт будет вполне достаточно для многих скетчей. Всё же, если вам необходим двойной объём памяти, изучайте описание платы перед покупкой. При покупке своего китайского аналога, я выбрал плату за $1.30 с ATmega168, вместо платы с ATmega328 за $1.93. Как видно, здесь тоже можем сэкономить на покупке.

Оригинальная плата Pro mini производится с двумя вариантами питания: на 5 и 3,3 вольта. У версии, работающей от 3,3 вольта, микроконтроллер работает на частоте 8 МГц, у 5-ти вольтовой версии - на частоте 16 МГц. Китайские аналоги так же производятся в 2-х вариантах. Моя плата работает от 5 вольт.
Визуально частоту работы контроллера можно определить по установленному на плате кварцу, если он в большом корпусе, на нём отчётливо можно увидеть частоту, на которой он работает: 8 или 16 МГц.

Arduino Pro mini

Фрагменты плат с кварцами, работающими на разной частоте.

Про питание  Arduino Pro mini.

Arduino Pro mini

Для питания платы предназначены выводы GND, VCC и RAW.
GND -  это минус питания (земля).
VCC – используется для подачи питания 3,3 или 5 вольт, в зависимости от версии платы. На этот разъём подаётся строго то напряжение, на которое рассчитана плата. Напряжение с этого контакта идёт напрямую на микроконтроллер, если оно будет выше необходимого, последний может выйти со строя.
Если питать плату собираетесь большим напряжением, тогда «+» питания следует подключать к разъёму  RAW. На этот разъём можно подавать до 12 в, не зависимо, на какое напряжения рассчитана плата. Напряжение с этого контакта подаётся на стабилизатор напряжения, который преобразует его до необходимого значения, а уже затем подаётся на контролер.

Если так получилось что вы купили плату и не знаете на какое напряжение она рассчитана, подайте на разъём  RAW 5 вольт и измерьте напряжение на разъёме VCC. Если плата рассчитана на 3,3 вольта, то соответствующее напряжение будет и на VCC, если будет на VCC 5 вольт, значит плата 5-ти вольтовая.

Цифровые и аналоговые выходы  Pro mini соответствуют количеству выходов как и у платы UNO: 14 цифровых и 6 аналоговых. Контакты А4 (SDA) и А5 (SCL) используются для подключения различных устройств по шине I2C.

Про прошивку Arduino Pro mini.

Став одной из самых маленьких плат платформы Arduino, плата Pro mini обрела недостаток — нельзя прошить плату без сторонней помощи. Расскажу про все возможные способы заливки скетчей в  Pro mini.

Прошивка Arduino Pro mini с помощью платы Arduino UNO.

Это не самый простой способ, поскольку не у каждого имеется плата UNO и покупать её специально для прошивки плат Pro mini не целесообразно. Но поскольку у меня имеется китайский аналог UNO, я начну с этого способа. Для реализации этого способа, должен быть установлен драйвер на плату UNO и определён номер COM - порта, к которому эта плата подключена. Как это сделать, описано в статье про китайский аналог Arduino UNO.

Arduino Pro mini

Соединяем платы как на картинке. Выводы GND, TX и RX соединяем с аналогичными. Вывод «VCC» на плате Pro mini соединяем с выводом «5V» или «3V3» на плате UNO. Если у вас 5 вольтовая версия Pro mini, то соединяете с выводом «5V», как в моём варианте. Если версия 3-х вольтовая, подключаете к «3V3» на  плате UNO. Вывод RESET на плате UNO подключаем к выводу DTR на плате Pro mini. На оригинальной плате вывод DTR обозначен как  GRN, в общем это одно и то же.

Контакты UNO

Контакты Pro mini

GND

GND

TX

TX

RX

RX

5V (если 5 вольтовая версия Pro mini)

VCC

3V3 (если 3,3 вольтовая версия Pro mini)

RESET

DTR (GRN)

 

Arduino Pro mini

Когда всё подключено, запускаем Arduino IDE.

Arduino Pro mini

Выбираем плату в которую нужно зашить скетч: «Инструменты» - «Плата:» и выбираем свою плату, в данном случае это «Arduino Pro or Pro Mini».

Arduino Pro mini

Поскольку платы Pro Mini могут использовать различные микроконтроллеры (ATmega168 или ATmega328 ), а так же различное напряжение питания (3,3v или 5v), выбираем свою конфигурацию: «Инструменты» - «Процессор:» в данном примере выбираю «ATmega168 (5V, 16 MHz)».

Arduino Pro mini

Выбираем порт, к которому подключена плата UNO:  «Инструменты» - «Порт:» в моём случае это «COM7».

Arduino Pro mini

Попробуем залить первый скетч и убедится в работоспособности платы. Выбираем скетч «Blink», смысл которого - мигать встроенным в плату светодиодом: «Файл» - «Образцы» - «01.Basics» - «Blink».

Arduino Pro mini

С помощью кнопок «Проверить» и «Вгрузить» проверяется скетч на ошибки и загружается в плату. Если нет ошибок, синий светодиод начнём мигать на плате Pro Mini.

Arduino Pro mini

Можно поиграться значениями в скетче и изменить время горения светодиода и время погашенного светодиода, вновь залить скетч и увидеть, что светодиод будет мигать по-другому.

 

Прошивка Arduino Pro mini с помощью переходника USB to TTL.

Об одном из таких переходников на чипе PL2303 я как то уже рассказывал, теперь пришло время его испытать на практике. Существует две версии этого переходника, один без контакта  GRN (DTR), как у меня, второй с данным контактом. Те что с контактом, стоят как минимум в два раза дороже тех, что без контакта.

PL2303

Переходник USB to TTL на чипе PL2303


Если будете использовать переходник без контакта GRN (DTR), подключаете его к Pro mini как на картинке.

Arduino Pro mini

Pro mini

USB to TTL PL2303

GND

GND

VCC

+5V (для 5 вольтовой Pro mini)

3V3 (3,3 вольтовой версии Pro mini)

RX

TX

TX

RX

Если у вас будет 3-х вольтовый вариант Pro mini, то контакт VCC платы, нужно соединить с контактом 3V3 USB переходника.

Когда всё подключено, запускаем Arduino IDE. Выбираем версию платы, процессор и порт, выбираем  скетч «Blink», всё так же, как в приведённом выше примере с UNO.

 

Arduino Pro mini

Для заливки скетча необходимо:
1. Нажать на кнопку «Вгрузить».
2. Начнётся процесс компиляции скетча, о чём можно понять по надписи «Компиляция скетча...».
3. Как только данная надпись сменится на «Вгружаем...».
4. Кратковременно нажимаем на плате Pro mini кнопку RESET.
5. Скетч зальётся в плату, об успешном окончании можно будем наблюдать за надписью «Взрузили» и по мигающему светодиоду на плате.

Если у вас в руках окажется  переходника USB to TTL, с контактом  DTR (он же  GRN, RESET) соедините его с соответствующим контактом  RESET на плате Pro mini. В таком случае, при заливки скетча, кнопку  RESET нажимать не придётся, плата сама сделает сброс.

Переходник USB to TTL на чипе CH340G

CH340G

Данный переходник так же как и на PL2303 позволяет прошивать плату Arduino. Схема подключения следующая:

Pro mini USB to TTL CH340G
GND GND
VCC 5V (джампером замкнуть контакты "3V3" и "VCC", если Arduino питается от 5 вольт)
3V3 (джампером замкнуть контакты "5V" и "VCC", если Arduino питается от 3,3 вольт)
RX TXD
TX RXD

Существуют так же другие USB переходники для прошивки Arduino Pro mini, например на микросхеме FT232, но ввиду того что этот переходник стоит дороже, я его не беру во внимание.

 

Прошивка Arduino Pro mini с помощью программатора на CH341A.

Программатор на микросхеме CH341A может работать в режиме UART, а значит им можно прошить Arduino Pro mini.

ch341a_uart

Программатор может быть представлен в разном визуальном оформлении, основное отличие это цена и наличие дополнительных контактов. Среди этих контактов например, дополнительно может быть разведён контакт на +5В. На том который купил я не было этого контакта, пришлось подпаиваться на плате, что бы получить это напряжение. Детальный обзор этого программатора можно прочитать здесь.

Что бы использовать данный программатор как UART переходник, нужно разомкнуть контакты P/S.

Для подключения к Pro mini понадобятся контакты на программаторе: Tx, Rx, GND и +5В. Ещё одна особенность этого программатора в том, что на его борту имеется контакт DTR, соединив который с платой Pro mini, отпадёт необходимость нажимать кнопку Reset, при заливки скетча. Для задействования этого контакта, нужно использовать контакт MOSI, в режиме UART он работает как DTR.

ch341a_uart

В моём варианте программатора, контакт +5В не был выведен, пришлось это напряжения взять с ножки стабилизатора. В конечном варианте подключение следующее:

Pro mini CH341A
Tx Rx
Rx Tx
DTR MOSI
GND GND
VCC +5В

Скачать драйвер: Яndex-диск MEGA Облако mail@ru

После установки драйвера, в "Диспетчере устройств" появится виртуальный COM-порт. Заливка скетчей происходит так же, как и через переходники PL2303 / CH340G, с той лишь разницей, что не нужно нажимать кнопку Reset.

Микросхема CH341A через стабилизатор питается от 3,3В, . Соответственно, логические уровни на Rx и Tx так же будут 3,3В. Но это не помешало прошить мне 5-вольтовую плату Pro Mini.

Комментарии

0 #23 Радиолис 25.06.2021 11:43
Цитирую ANATOLY LFZAREV:
Цитирую Радиолис:
Цитирую ANATOLY LFZAREV:


Да, RAW - это вход на стабилизатор, который установлен на плате Ардуино. Если версия платы на 3,3В, то на выходе этого стабилизатора будет 3,3В. Подав на RAW 5 В, плата будет питаться от 3,3В.


Хотелось бы думать, что логической единицы, близкой к 3В хватит для управления TTL (например лазером)


Для 5-амперных лазеров, для регулирования мощности, требуется TTL от 0 до 5 В. Для модуля KY-008 хватит.
0 #22 ANATOLY LFZAREV 25.06.2021 10:01
Цитирую Радиолис:
Цитирую ANATOLY LFZAREV:


Да, RAW - это вход на стабилизатор, который установлен на плате Ардуино. Если версия платы на 3,3В, то на выходе этого стабилизатора будет 3,3В. Подав на RAW 5 В, плата будет питаться от 3,3В.


Хотелось бы думать, что логической единицы, близкой к 3В хватит для управления TTL (например лазером)
+1 #21 Радиолис 24.06.2021 20:15
Цитирую ANATOLY LFZAREV:
Спасибо за статью!
Я правильно понял, что если я подам 5 В на контакт RAW, тогда не нужно сооружать отдельный стабилизатор на 3,3В?


Да, RAW - это вход на стабилизатор, который установлен на плате Ардуино. Если версия платы на 3,3В, то на выходе этого стабилизатора будет 3,3В. Подав на RAW 5 В, плата будет питаться от 3,3В.
0 #20 ANATOLY LFZAREV 24.06.2021 18:26
Спасибо за статью!
Я правильно понял, что если я подам 5 В на контакт RAW, тогда не нужно сооружать отдельный стабилизатор на 3,3В?
0 #19 Хазов Николай 17.01.2021 18:23
Спасибо все очень подробно описано
Очень помогло
0 #18 Паша 04.09.2020 13:19
Всем привет! Хочу рассказать вам о своём опыте подключения и программировани я Arduino Pro mini 5v 16 MHz через внешний программатор CH340G. Цитата:
"Если у вас в руках окажется переходника USB to TTL, с контактом DTR (он же GRN, RESET) соедините его с соответствующим контактом RESET на плате Pro mini. В таком случае, при заливки скетча, кнопку RESET нажимать не придётся, плата сама сделает сброс."
- здесь всё правильно описано, единственное так это, что у меня всё заработало после того, как я подключил RX и TX программатора к RX и TX контроллера соответственно (RXpromini>RXch 340; TXpromini>TXch3 40), ибо наоборот не шилось.
0 #17 Корольков 14.08.2020 16:40
Спасибо тебе добрый человек.
0 #16 Андрей 29.12.2019 16:44
круто
0 #15 Zuka 05.04.2019 10:34
Через переходник на МАХ232 не прошьётся т.к. она инвертирует сигналы порта
+1 #14 Ihor 11.06.2018 08:44
Прошивка Arduino Pro mini с помощью платы Arduino UNO.

Спасибо!

Добавить комментарий