В данной статье рассмотрим детально установку, настройку и подключение платы Ардуино Uno к персональному компьютеру на операционную систему Windows.
В нынешнем году Ардуино используется в качестве бюджетного, однако многофункционального проекта для тестирования и создания электронных устройств и систем.
Существуют различные проекты, от многофункционального автоматического управления внутридомовыми системами, наподобие умного дома, до робота-бармена, взломщика кодовых замков или горшка для цветов с автополивом.
Программирование на Ардуино осуществляет на C++, с фреймворком Qt5, используемого для взаимодействия с платой и устройствами на ее базе.
Подключение платы к персональному компьютеру
Данный тип микроконтроллера устанавливает соединение с компьютером через разъем USB. Требуется установить драйвера для платы, дабы компьютер обнаружил ваш контроллер.
Подробное руководство по соединению платы к ПК
- Соедините плату и компьютер по USB- порту.
После подключения платы к ПК замигает красный индикатор
- Скачайте и установите среду разработки Arduino IDE (советуем предварительно настроить).
Перейдите на вкладку Software на официальном сайте Arduino.
Затем выберите в блоке “Download Options” вашу операционную систему и предварительно установите программное обеспечение.
- Скачать и установить драйвер Arduino UNO(CH340) для WINDOWS.
- Откройте окно запуска(Win+R), введите devmgmt.msc. Откроется диспетчер устройств, раскройте вкладку «Порты(COM И LPT)». Если USB-SERIAL CH340(COMх) отображается-то установка драйверов прошла успешно, можете спокойно прошивать плату. Если порт не отображается, то переходите к следующему шагу.
Найдите во вкладке «Другие устройства» USB2.0-Serial. Нажмите “Обновить драйвер”.
- Выполните поиск драйверов на этом компьютере. Укажите папку хранения драйверов и нажмите установить.
- При получении сообщения «Не удалось проверить издателя драйверов», нажмите «Все равно установить этот драйвер». При успешной установке должно выйти сообщение об успешном обновлении драйверов.
- Если после проделанных манипуляций во вкладке «Порты» отображается устройство USB-SERIAL CH340(COMx)-можете прошивать плату.
Настройка порта и платы
Выберите тип вашей платы(зайти в Инструменты в Windows-Плата должна определиться автоматически как “Arduino Uno”, в случае отсутствия отображения платы-выберите ее из выпадающего списка)
Выберите порт последовательной передачи информации на плату Ардуино в меню «Инструменты|ПОРТ». Скорее всего, это COM3 или выше(COM1 и COM2 являются аппаратными COM-портами, зарезервированы системой). Для нахождения нужного порта вы можете отсоединить плату и открыть меню заново: исчезнувший порт и будет основным. Подсоедините плату заново и выберите порт.
Запустите первое приложение:
Нажмите «Открыть»-выберите любой пример приложение(уже написанный код, который будет работать на плате).
Например, выберите мигание.
Проверьте плату на работоспособность(протестируйте открытый код). Нажмите «Загрузить». После компиляции кода часть индикаторов, расположенные рядом с TX/RX на плате начнут мигать. В таком случае плата принимает и передает данные. После завершения процесса, код запустится, а диод L начнет загораться раз в 3-4 секунды.
Также, проверить доступность Ардуино можно с помощью пункта Инструменты-Получить информацию о плате
Как правило, это стандартное окно, большая часть плат обозначается, как неизвестная плата.
Попробуем написать простейшую программу для мигания лампочкой. Его можно вывести способом выше, однако в данной ситуации советую вам скопировать наш код, поскольку он очищен от того, что не требуется для выполнения программы и занимается меньше памяти на плате.
void setup() {
pinMode(LED_BUILTIN, OUTPUT);
}
void loop() {
digitalWrite(LED_BUILTIN, HIGH);
delay(3000);
digitalWrite(LED_BUILTIN, LOW);
delay(3000);
}
Кнопка 1 отвечает за компиляцию кода, а кнопка 2-непосредственная загрузка программы на устройство(после компиляции). На плате начнут мигать TX/RX светодиод, что означает загрузку кода на устройство, после чего раз в несколько секунд будет загораться светодиод L.
Плата UNO создан на основе ATmega328. Эта плата имеет 14 цифровых входов/выходов, 6 из которых используются как вызоды ШИМ, 6 аналоговых входов, кварцевый генератор 16 МГц, разъем USB, силовой разъем, разъем ICSP и кнопка перезагрузки платы. После загрузки программы плату можно запитать при помощи адаптера AC/DC или батареи.
Питание вне USB можно подать преобразователем напряжения AC/DC(блоком питания) или аккумуляторной батареей. Преобразователь напряжения подключается посредством разъема 2.1мм с центральным положительным полюсом. К выводам Gnd и Vin разъема питания подключается провод от батареи. Микроконтроллер работает при питании в диапазоне от 6 до 20 В. При напряжении менее 5 В плата выдает менее стабильные показания и работает нестабильно. Напряжение выше 12 В может повредит или перегреть контроллер, поэтому рекомендуется устанавливать регулятор напряжения на диапазон от 7 до 12 В.
Программная перезагрузка
Перед записью новой программы перезагрузка осуществляется передачей автоматического сигнала непосредственно программой Ардуино, а не нажатием кнопки на контроллере. Одна из линий DTR управляет потоком данных и подключена к выводу перезагрузки через конденсатор в 100 нФ. Подача сигнала низкого уровня перезагружает плату. Таким образом, программа загружается на контроллер одним нажатием кнопки Upload. Передача сигнала по DTR начинается в момент начала записи кода.
Возможно и отключить линию автоматического рестарта системы разрывом соответствующей линии. Контакты микросхем с маркировкой «Reset-en» должны быть соединены с целью восстановления. Вторым способом отключения является подключение резистора на 110 Ом между источником питания и этой линией.
Элементы платы
Микроконтроллер ATmega328P
Основой платы Uno является 8-битный контроллер Microchip-ATmega328P, имеющий архитектуру AVR с частотой 16 МГц. Обладает тремя видами памяти:
32 КБ Флеш памяти, 0.5 КБ использует загрузчик, которым можно прошить через USB с обычного ПК. Флеш память предназначена для хранения программного обеспечения(кода) и ресурсов, требуемых для проекта.
2 КБ ОЗУ памяти, предназначена для хранения временных данных, например, переменных кода. Суть работы аналогична оперативной памяти. Является энергозависимой, данные, находящиеся в ней, будут удалены при выключении.
1 КБ EEPROM-памяти для длительного хранения информации, не стирается при выключении платы. Аналог жесткого диска для Uno.
328P не содержит USB интерфейса, поэтому для прошивки и взаимодействия с ПК плата обладает дополнительным контроллером ATmega16U2 с прошивкой USB-UART преобразователя. На ПК определяется виртуальным COM-портом.
RX и TX сигналы обладают контактами 0 и 1 платы. По сути, 16U2 является сопроцессором микроконтроллера. Во время прошивки и отладки не рекомендуется использовать данные пины в коде.
Советуем протестировать различные специальные функции библиотеки qt5, которые влияют на работу цифровых пинов( контактов). Ниже приведены программы, предлагаем проверить работу платы на этих программах.
Например, функция pinMode() задает режим работы пина, ее синтаксис выглядит так:
pinMode(pin, mode), где pin-номер входа или выхода пина, который вы хотите установить, mode-переключение режима, одно из двух значений: INPUT или OUTPUT, устанавливает на вход или выход соответственно.
Аналоговые пины могут использоваться как цифровые.
Функция digitalRead() считывается значение с HIGH или LOW входа(задается).
digitalRead(pin)
digitalWrite() передает значение на HIGH или LOW вход
digitalWrite(pin)