Логотип

Программирование AVR микроконтроллеров для начинающих

материалы в категории

Простые проекты самостоятельно. Программируем светофор

часть1

Эта статья предназначена для начинающих, и тех, которые немного имеют представление о том, что такое микроконтроллер, и понимают что такое алгоритм. Вы узнаете насколько легко и быстро можно создавать цифровые устройства на основе микроконтроллеров AVR и, "вдыхать" в них жизнь, подчиняющуюся Вашим законам (алгоритму).

В качестве простого устройства автоматики был выбран светофор, поскольку алгоритм его работы известен всем и каждому.

Для проектирования и симуляции работы схемы светофора, (в дальнейшем устройства) я выбрал всеми известную программу ISIS Proteus Professional, с которой вы уже немного знакомы из статьи «обучающий видео курс для начинающих по микроконтроллерам» и возможно не только из неё. Для создания прошивки, (программы для работы устройства) я выбрал графическую среду программирования Flowcode AVR, которая, по моему мнению,  (особенно для начинающих) будет очень интересна. И не только тем, что написание программы происходит фактически построением алгоритма из кубиков, ромбиков и т.д., а ещё вдобавок, начинающий сам начинает понимать как всё-таки работает микроконтроллер, и что ему нужно для того что бы он делал то что от него требуют. Сам я могу писать на СИ , но если нужно создать что то несложное и очень быстро, да ещё и нет ограничений в быстродействии, ресурсах памяти и т.д., всегда запускаю Flowcode и алгоритм быстро,  как бы сам собой, превращается в готовую прошивку.

Версии используемых в статье программ: ISIS Proteus Professional 7, и Flowcode AVR v4.3.6.61. Установите указанные программы на Ваш компьютер, и начнём работать.

1. Создадим схему нашего устройства, используя ISIS Proteus Professional.

Для начала создайте папку для выходных файлов проектов в корневом каталоге любого из дисков С или D или другого (например с именем “myprojects”), причём имя папки должно быть латинским (это для того что бы не ругался Flowcode, и не было потом проблем с компиляцией программы). Да и Вам будет удобно, будете знать, где лежат файлы Ваших проектов.

Открываем или запускаем (кому как нравиться называть) ISIS Proteus Professional. Далее в выпадающем меню файл выбираем «сохранить проект как», или на английском «save as …», указываем путь сохранения файлов проекта (наша папка в корневом каталоге диска “myprojects”). Ну и вводим имя файла “svetofor” например, жмём кнопку сохранить. (см. рис.1,2)

программирование avr для начинающих

программирование avr для начинающих

Далее нужно выбрать из многочисленной библиотеки компонентов необходимые нам. Так что же нам нужно из компонентов для реализации нашего проекта? Поскольку наше устройство не сложное, выберем недорогой микроконтроллер Attiny13A. Для этого в выпадающем меню «Библиотека» выбираем «выбор устройства» (рис.3), можно просто нажать кнопку «Р», в появившемся окне в поле «маска» набираем “attiny”(рис.4), и два раза кликнем по “attiny13”. Микроконтроллер теперь добавлен в список наших устройств. (рис.5)

программирование avr для начинающих

программирование avr для начинающих

программирование avr для начинающих

Далее выберем чем управлять микроконтроллеру, (в светофоре красный, желтый, зелёный) свет. Выбираем светодиоды, в поле «маска» набираем “led” , в категории “optoelectronics” выбираем (два раза кликаем на каждом) “led-red”, “led-green”, “led-yellow” .(рис.6)

программирование avr для начинающих

Теперь поскольку падение напряжения на светодиодах 2.2в, а питание у нас 5в., то нужно ставить ограничительные резисторы, для того, чтобы не вывести из строя порты (выходы) микроконтроллера. В поле маска “resistor”, в  категории “modeling primitives” находим наш резистор “analog resistor primitive” и тоже два раза кликаем. (рис.7)

 

программирование avr для начинающих

программирование avr для начинающих

Всё! Для построения модели нашего устройства у нас почти все есть (рис.8). Почему почти спросите Вы? Казалось бы, всё есть – «мозг» и «исполнительное устройство», но это не совсем так, поскольку нужен еще источник питания устройства, а точнее его модель. Ну об этом ниже. Начинаем собирать схему. Правой кнопкой мыши кликаем на чистом листе и в появившемся меню выбираем «разместить», «компонент», “attiny13”(рис.9,10). Затем наши три светодиода и три резистора (рис.11). Далее выбираем «разместить», «терминал», “ground” . Это как раз и есть один из выводов питания нашей модели устройства (для наглядности схемы договоримся включить светодиоды с общим катодом), как раз этим катодам и нужен минус питания (земля). Обратите внимание на то, что у микроконтроллера отсутствуют выводы питания. Дело в том что программа работает с моделями компонентов, и соответственно выводы питания присущие любой из моделей считает скрытыми.

программирование avr для начинающих

Теперь выбираем выводы микроконтроллера, которые нам нужно будет запрограммировать на вывод данных (выход). Но нужно учесть, что вывод 1 (порт В5) нужен ещё и в качестве “RESET” для программатора, поэтому если мы его задействуем, то запрограммировать микроконтроллер сможем один только раз. Поэтому его трогать не будем, по крайней мере пока. И так обозначим себе следующее:
А.  порт В0 будет управлять красным светодиодом(вывод 5);
Б.  порт В1 – желтым(вывод 6);
В.  порт В2 – зелёным(вывод 7).

Устанавливаем карандашик на нужный вывод, кликаем левой кнопкой мыши и соединяем порты микроконтроллера с ограничительными резисторами(рис.12,13).


 Аналогично соединим светодиоды по схеме с общим катодом, и подключим каждый анод на нужный резистор: красный на R1; желтый на R2; зелёный на R3 (рис.14).


Любуемся созданной схемой, и замечаем что номиналы резисторов сильно велики для зажигания светодиодов, нужно где то порядка 300 Ом, а у нас 10кОм. Кликаем правой кнопкой на резисторе, выбираем в выпадающем меню «правка свойств», и устанавливаем нужный номинал резисторов (рис.15,16,17).


Вот теперь уже схема модели устройства под названием «светофор» готова. Можно на всякий случай нажать на дискетку и сохранить файл нашего проекта.

Ниже- все тоже самое, только уже видео

программирование avr для начинающих видео

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

Почта сайта