Arduino представляет собой платформу разработки с открытым исходным кодом, предназначенную для инженеров и начинающих любителей электроники и позволяющую достаточно просто разрабатывать различные электронные проекты. Она состоит из физически программируемой платы (основанной на микроконтроллерах семейства AVR) и специализированного программного обеспечения или интегрированной среды разработки, которую можно запускать на вашем персональном компьютере, чтобы разрабатывать программы и загружать их в микроконтроллер.
Arduino использует системный загрузчик (boot loader), который позволяет новому программному коду записываться внутрь его. В данной статье мы рассмотрим вопрос записи системного загрузчика в микроконтроллер ATmega328 (семейство AVR) и сконструируем на его основе домашнюю систему Arduino на печатной плате. Выбор микроконтроллера ATmega328 IC обусловлен тем, что он используется в платформе Arduino UNO.
Необходимые компоненты
- Плата Arduino UNO с интегральной схемой (IC) и кабелем (купить на AliExpress);
- Микроконтроллер Atmega328 IC (купить на AliExpress);
- ЖК дисплей 16х2 (купить на AliExpress);
- Макетная плата;
- Соединительные провода;
- Кварц 16 МГц;
- Резистор 10 кОм (купить на AliExpress).
Реклама: ООО "АЛИБАБА.КОМ (РУ)" ИНН: 7703380158
Последовательность действий при сборке платформы Arduino
Чтобы загрузить системный загрузчик (boot loader) в "чистый" Atmega328 IC нам будет необходима какая-нибудь плата Arduino (подойдет любая). Последовательность действий по сборке платформы Arduino будет показана в виде следующей последовательности шагов. Также в конце статьи вы можете посмотреть видео, на котором наглядно представлены все продемонстрированные на рисунках процессы.
Шаг 1. Соберите вместе и аккуратно разложите все необходимые для сборки компоненты.
Шаг 2. Удалите “Arduino Original IC” с платы Arduino с помощью отвертки и вставьте “New Atmega328 IC” на плату Arduino.
Шаг 3. Откройте интегрированную среду разработки Arduino, выберите в ней пункт меню File -> example -> ArduinoISP.
После открытия ArduinoISP выберите Arduino UNO board из пункта меню Tools -> Board -> Arduino Uno.
Затем выберите COM PORT (последовательный порт) из пункта меню Tools -> Serial Port -> COM10.
Затем загрузите ArduinoISP Sketch (кусок программного кода).
Шаг 4. Теперь удалите New IC (ваш микроконтроллер) с платы Arduino и вставьте в нее оригинальный Arduino IC (тот, который был на ней изначально). Загрузите в нее тот же самый ArduinoISP sketch который мы загружали на шаге 3.
Шаг 5. Соберите приведенную ниже схему на макетной плате с New IC (вашим микроконтроллером Atmega328) и с оригинальным микроконтроллером на оригинальной плате Arduino.
Шаг 6. Теперь в интегрированной среде разработки Arduino выберите пункт Tool (инструменты) и выберите в нем пункт Burn Bootloader.
В это время вы увидите как светодиоды Rx и Tx на плате Arduino будут случайно мигать некоторое время. Это значит что Bootloader загружается в новый ATmega 328 IC. После этого интегрированная среда разработки Arduino (Arduino IDE) выдаст сообщение “Done burning bootloader” (то есть загрузка завершена). И теперь вы сможете использовать свой микроконтроллер Atmega328 (‘New IC’) на своей плате Arduino.
Шаг 7. Теперь соберите свою собственную плату Arduino на чистой макетной плате с использованием пайки и компонентов, перечисленных выше в данной статье, следуя схеме, представленной на ниже приведенном рисунке.
Вставьте ‘New IC’ (ваш микроконтроллер) в эту плату. Также вы сможете собрать всю эту систему сразу на печатной плате. Для подключения жидкокристаллического дисплея соедините вашу собранную плату Arduino с оригинальной платой Arduino, используя контакты Rx, Tx, RST and GND оригинальной платой Arduino, как показано ниже на мнемонической схеме или выше на схеме соединений. И загрузите приведенный ниже код.
Удалите оригинальный микроконтроллер с платы когда вы будете загружать код в ваш новый микроконтроллер на макетной плате. Вашу плату Arduino можно запитать с помощью контакта 5v с оригинальной платы Arduino как показано на выше приведенной мнемонической схеме.
Исходный код программы
1 2 3 4 5 6 7 8 9 10 11 12 13 |
#include <LiquidCrystal.h> LiquidCrystal lcd(12, 11, 5, 4, 3, 2); void setup() { lcd.begin(16, 2); lcd.print("HomeMade Arduino"); lcd.setCursor(0,1); lcd.print("Circuit Digest"); } void loop() { } |