Объявление

Внимание!
Данный форум предназначен только для радиолюбителей!
Никакие прочие объявления, реклама товаров либо услуг невозможны!


Любой спам на нашем форуме запрещён!
Разрешаются только ссылки по темам! 3а нарушения БАН.


Arduino Pro Mini, как с ней работать

Правила форума
Внимание! Любой спам на нашем форуме запрещён!
Коммерческая реклама сайтов, ссылки, спам запрещены. Так же запрещены ссылки на сайты в профилях новичков.
Бан без предупреждений.

Arduino Pro Mini, как с ней работать

Сообщение admin » 03 янв 2017, 21:20

Если мы все купили правильно, то перед собой мы увидим две платки

Изображение

Верхняя плата — это собственно и есть Arduino Pro Mini, нижняя — USB-UART / USB-TTL конвертер
Последний может выглядеть не так, как на фото, а иметь вид готового кабеля.

Изображение

Теперь о плате/платформе Arduino Pro Mini: Конструктивно она представляет собой плату с распаянным на ней микроконтролером, кнопкой RESET, микросхемой питания и прочей, не существенной для нас на данном этапе, периферией.
Существует две версии Pro Mini: одна работает от 3.3В при частоте 8 МГц, другая — от 5В при 16 МГц. В основе платы лежит микроконтроллер Atmega 168 или Atmega 328 — отличие между ними заключается в объеме внутрисистемно программируемой Flash памяти — 16 или 32 кБайта. Это так называемая "память программ", т.е. память в которую будет записана программа и содержимое ее не будет изменятся в процессе работы. Напомню, что Atmega построен по так называемой Гарвардской архитектуре (www.drive2.ru/b/2506495/) в которой "память программ" и "память данных" реализованы отдельно, для большего быстродействия и надежности. "Память данных" делится на 2 части: оперативную SRAM, которая что у 168, что у 328 составляет 1 Кб, и постоянную EEPROM (Electrically Erasable Programmable Read-Only Memory) объемом 512 байт, данные из которой не "теряются" при отключении питания.
В зависимости от исполнения на плате может быть 30, 32 или 34 вывода (PIN). На картинке ниже показана"максимальный" 34 пиновый вариант

Изображение

GND — это у нас выводы куда подключается "земляные" провода, т.е. приходит/выводится "-" питания
VCC — плюсовые выводы для питания платы напряжением 5В (иногда 3,3В). Таке этот вывод моно использовать для подачу "наружу" опорного напряжение для цифровых входов.
RAW — вывод используется, если у нас нет стабилизированного напряжения 5В, но есть постоянное в диапазоне от 7 до 12В.

TXD и RXD — выводы UART/USART
RST — он же RESET — в мануале написано насчет него написано следующее "низкий уровень сигнала на выводе перезагружает микроконтроллер. Обычно применяется для подключения кнопки перезагрузки на плате расширения, закрывающей доступ к кнопке на самой плате Arduino". На деле это означает что когда этот вывод подключается к земле, происходит перезапуск (сброс) Arduino Pro Mini.
Выводы обозначенные на плате цифрами с 2 до 13 — цифровые выводы, могут настраиваться как вход или выход. Выводы работают при напряжении 3,3 В. Каждый вывод имеет нагрузочный резистор (стандартно отключен) 20-50 кОм и может пропускать до 40 мА. Они могут выводить значения только высокого (3,3В или 5В в зависимости от версии) или низкого (0В) уровня. Некоторое из них обозначенные на схеме выше как PWM могут выводить ШИМ сигнал с разрешением 8 бит (от 0 до 255)
Выводы А0-А7 — аналоговые входы с 10 битным АЦП. В зависимости от исполнения платы их может быть от 4 до 8. Эти выводы могут также работать как цифровые.
DTR (Data Terminal Ready) — Готовность приемника данных.

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

Подключаемся

Схема подключения достаточно простая и ошибиться достаточно сложно

Изображение

Обычно используется только по 4 провода — это связано с тем, что на обомногих конвертерах нет вывода DTR.

Что такое DTR и что делать если его нет?

Данный вывод предназначен для того, чтобы USB-serial контроллер Arduino перезагружал МК каждый раз, когда терминальная программа (в т.ч. Serial monitor, встроенный в ПО Arduino IDE) устанавливает соединение. Реализовано это следующим образом: у USB-serial контроллера вывод DTR (Data Terminal Ready) связан с выводом RESET. Если программа, работающая с виртуальным последовательным портом, использует DTR, то при установке соединения МК перезагружается.
Само по себе это обеспечивает беспроблемную загрузку скетча из Arduino IDE — МК перезагружается перед загрузкой кода. В этом смысле автоматическая перезагрузка облегчает жизнь. Кроме того, перезагрузка при подключении терминала тоже может оказаться удобной, т.к. довольно много скетчей выводят какую-то полезную информацию через последовательный порт, при этом скетч выполняется сразу после загрузки в МК, когда терминал еще не подключен (т.к. недавно порт был занят), так что увидеть вывод скетча в первые секунды его работы было бы нельзя. Перезагрузка в момент подключения терминала позволяет получить весь вывод, начиная с момента загрузки МК.

В случае, если этот вывод отсутствует, то у нас есть один вариант:
Отправлять Arduino Pro Mini на перезагрузку вручную при помощи кнопки RESET расположенной на плате — об этом ниже.

Подключаем плату к компьютеру

Я не буду рассказывать как устанавливать драйвера конвертера и Arduino IDE — все достаточно стандартно.
Если все сделали правильно, то при подключении конвертера в системе появится виртуальный СОМ — порт. Это легко увидеть:

Изображение

На правой картинке появляется дополнительный порт СОМ10 (у вас номер может быть другим) — его нужно выбрать, клацнув по нему мышкой.
Далее проверяем правильность указания платы, программатора — все должно быть как на картинке выше.
Указываем микроконтроллер 168 или 328, 5В или 3,3В

Изображение\

Попробуем залить простейшую программу.

Для этого воспользуемся библиотекой примеров и тем, что у нас на самой плате на 13 выводе припаян светодиод. Скорее всего программа мигания этим светодиодом будет загружена в качестве тестовой, но мы все равно загрузим свою :). Находится этот пример тут:

Изображение

Листинг программы:

//Процедура инициализации
void setup() {
// инициализируем вывод 13 на вывод.
pinMode(13, OUTPUT);
}

// Основное тело программы
void loop() {
digitalWrite(13, HIGH); // включаем светодиод (Подаем сигнал высокого уровня на вывод 13)
delay(500); // ждем 500 милисекунд (в стандартном примере 1000, что означает одну секунду)
digitalWrite(13, LOW); // выключаем светодиод (Подаем сигнал низкого уровня на вывод 13)
delay(1000); // ждем 500 милисекунд после чего идем опять в начало основной программы
}

Данная программа будет выполняться по кругу пока включен микроконтроллер.

"Заливаем" программу

Тут все просто — нажимаем на кнопочку "3агрузить"

Изображение
Если вывод DTR не подключен, то нажимаем на плате кнопку RESET и не отпускаем пока внизу окна Arduino IDE не появится надпись "3агружаем" — этот момент важно не пропустить, иначе микроконтроллер не будет своевременно перезагружен и заливка программы не состоится. Если DTR подключен, то просто ждем
Изображение

Если все мы сделали правильно, то вскоре мы увидим надпись "3агрузили" и светодиод начнет мигать с частотой 0,5с.
admin
Администратор
 
Сообщений: 63
Зарегистрирован: 27 ноя 2016, 18:21
ТегиArduino Pro Mini, как с ней работать

Вернуться в Для новичков. Азы.

Кто сейчас на форуме

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 1

/