Аннотация и ключевые слова
Аннотация (русский):
Данная статья посвящена моделированию работы микроконтроллера Atmega8535 в программе Proteus. Автор представляет подробную инструкцию по настройке и использованию данной программы для эмуляции работы микроконтроллера. В статье также представлены результаты моделирования и анализ их соответствия реальным показателям работы микроконтроллера.

Ключевые слова:
микроконтроллер, Atmega8535, моделирование, Proteus, эмуляция, программирование, электроника, схемотехника
Текст
Текст произведения (PDF): Читать Скачать

Программа Proteus была разработана компанией Labcenter Electronics Ltd в 1996 году и стала одним из наиболее популярных инструментов который применялся при проектировании и моделировании электронных схем и микроконтроллерных систем.

Рассматривая программу Proteus можно выделить следующие характеристики:

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

Положительными сторонами программы Proteus можно отметить:

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

Среди отрицательных сторон можно отметить:

  • нет возможности интеграции с другими программами и пакетами, используемыми для проектирования и моделирования электроники;
  • слабая поддержка ряда типов микроконтроллеров и иных компонентов.

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

  • имеет более ограниченную функциональность и возможности для работы с большими проектами, чем у Altium Designer и Eagle;
  • обладает большим количеством элементов и инструментов для моделирования и оптимизации проектов, чем у Multisim и LTSpice;
  • имеет более простой и легко усваиваемый интерфейс, и делает его более доступным для начинающих разработчиков, чем у TINA и OrCAD.

Опираясь на выше сказанное можно сделать следующие выводы – программа Proteus является мощным и функциональным инструментом для проектирования и моделирования электронных схем и микроконтроллерных систем. Наиболее значимыми плюсами являются – широкий функционал, многообразие инструментов и возможность создания трехмерных моделей проектируемых устройств. Практически отсутствуют интеграционные казусы, но имеются определенные ограничения в поддержке некоторых типов микроконтроллеров и элементов. Также отличительной чертой Proteus является его «простой» и понятный интерфейс в сравнении с другими программами.

Для построения схемы сигнализации основанной на использовании микроконтроллера ATmega8535, потребуются следующие компоненты:

  • микроконтроллер ATmega8535;
  • внешние датчики, например, датчик движения PIR и датчик звука;
  • резисторы;
  • транзисторы;
  • LCD-дисплей;
  • пьезодинамик;
  • резисторы для подключения дисплея и пьезодинамика.

Разработка схемы сигнализации состоит из следующих шагов (рис. 1):

  • подключение внешних датчиков к микроконтроллеру ATmega8535 через разъемы ввода-вывода;
  • настройка программы для микроконтроллера ATmega8535 и проверка состояния внешних датчиков, выдача сигнала на LCD-дисплей и пьезодинамик при обнаружении движения или звука;
  • подключение LCD-дисплея к микроконтроллеру ATmega8535 для вывода информации о состоянии датчиков и сигналах;
  • подключение пьезодинамика к микроконтроллеру ATmega8535 для выдачи звукового сигнала при обнаружении движения или звука;
  • выполнение моделирования работы сигнализации, проверка работы на наличие ошибок и исправление их при необходимости.

Демонстрационная схема с использованием микроконтроллера ATmega16 и светодиодов

Рисунок 1 – Схема реализации сигнализации в программе Proteus на базе микроконтроллера ATmega8535

 

Для разработки прошивки микроконтроллера используем программу Atmel Studio 7 где в качестве языка программирования возьмем язык С и дополним его следующими библиотеками языка C: avr/io.h (ввода-вывода микроконтроллера), avr/interrupt.h (прерываний микроконтроллера), avr/delay.h (задержки микроконтроллера), stdio.h (общего назначения для ввода-вывода), lcd.h (для работы с LCD-дисплеями). В программном коде подключение библиотек осуществляется указанием служебного слова, заголовков (#include) в начале программы, а также следует настроить порты микроконтроллера для работы с внешними устройствами. Затем выполняется проектирование работы микроконтроллера с проверкой контактов портов ввода-вывода с системой взаимодействия с внешними датчиками и вывода информации как на LCD дисплей, так и звукового сигнала на пьезодинамик:

 

#include <avr/io.h>

#include "lcd.h"

#define PZ1 PB0  // Пин пьезодинамика

#define SENSOR1 PC0 // Пин первого внешнего датчика

#define SENSOR2 PC1 // Пин второго внешнего датчика

 

int main(){

    // Инициализация дисплея

    lcd_init();

    // Конфигурирование портов

    DDRB = _BV(PZ1);   // PZ1 на выход

    DDRC = 0x00;       // Все порты PCx на вход

    // Подтяжка портов PC0 и PC1 к VCC

    PORTC = _BV(SENSOR1) | _BV(SENSOR2);

    int sensor1_val = 0;

    int sensor2_val = 0;

    while(1)

    {

        // Считывание значений с датчиков

        sensor1_val = PINC & _BV(SENSOR1);

        sensor2_val = PINC & _BV(SENSOR2);

        // Формирование сообщения для вывода на дисплей

        char msg[16];

        sprintf(msg, "Sensor1:%d,2:%d", sensor1_val, sensor2_val);

        // Вывод сообщения на дисплей

        lcd_clrscr();

        lcd_puts(msg);

        // Если значения датчиков выше порога, то вывод сообщения и генерация звукового сигнала

        if(sensor1_val > 0 && sensor2_val > 0){

            lcd_gotoxy(0, 1);

            lcd_puts("ALERT: Obstacle!");

            PORTB |= _BV(PZ1);

            _delay_ms(1000);

            PORTB &= ~_BV(PZ1);

            _delay_ms(1000);

        }

        _delay_ms(100); // Задержка между проверками сигналов

    }

    return 0;

}

 

Следующим шагом в моделировании схемы устройства будет компиляция программного кода и прошивка микроконтроллера в программе Proteus. Затем необходимо провести моделирование работы схемы через имитацию запуска микроконтроллера с последующей проверкой работы дисплея. Выполняя имитацию воздействия на внешние датчики можно получить картину работы указанной схемы в различных условиях ее эксплуатации. Особенность программы Proteus заключается так же в том, что мы можем поэтапно вводить в схему новые компоненты и проводить эксперименты с условием того, что для ввода нового элемента схемы нужно в коде прошивки вводить дополнительные функции и подключать библиотеки. В частности, схему можно расширить, добавив в нее, например, дополнительный функционал реализовав чтение сигналов с внешних датчиков или управление моторами. Добавление новых элементов в Proteus ограничено только воображением разработчика, так как библиотека компонент имеет большой спектр элементов, в частности, датчики освещенности, давления, веса, расстояния и т.д. Следует только помнить, что при проектировании прошивки микроконтроллера ATmega8535 в программе Atmel Studio 7 следует для каждого нового датчика подбирать соответствующую библиотеку, в частности для работы с датчиками - элементы из библиотеки Sensors.

Подводя итог использования программы Proteus для моделирования схемы сигнализации можно сказать, что указанная программа позволяет довольно легко проводить построения схем любой степени сложности, позволяет поэтапно проводить достройку схемы вводя по нескольку элементов в схему и выполнять моделирование работы элементов схемы на каждом шагу моделирования. Создание прошивки микроконтроллера может быть осуществлено как в самой программе Proteus, так и с использование стороннего ПО, в частности программы Atmel Studio 7, что дает возможность использовать различные библиотеки элементов и расширить спектр подключаемого оборудования.

Список литературы

1. Краснов, С. А. Автоматизированное проектирование универсального лабораторного стенда на базе микропроцессоров серии AVR с использованием пакета программ Proteus / С. А. Краснов, В. И. Монахов, Т. И. Плющева // Инновационное развитие легкой и текстильной промышленности (ИНТЕКС-2014) : тезисы докладов всероссийской научной студенческой конференции, Москва, 15–16 апреля 2014 года / Федеральное государственное бюджетное образовательное учреждение высшего профессионального образования «Московский государственный университет дизайна и технологии». – Москва: Федеральное государственное бюджетное образовательное учреждение высшего профессионального образования "Московский государственный университет дизайна и технологии", 2014. – С. 90.

2. Хомяков, А. В. Разработка блока управления для автоматического контроля и регулирования температуры с применение программы Proteus / А. В. Хомяков, М. И. Мехно // Современные электротехнические и информационные комплексы и системы: Материалы V Международной научно-практической конференции преподавателей, аспирантов и научно-технических работников, посвящённой 105- летию со дня образования КубГТУ, Армавир, 10–11 ноября 2023 года. – Армавир: ООО «Редакция газеты «Армавирский собеседник», 2023. – С. 76-80.

3. Альтерман, А. Д. Программа для автоматического проектирования электрических схем Proteus / А. Д. Альтерман, А. С. Парфенова // Современные научные исследования и разработки. – 2018. – № 12(29). – С. 121-122.

4. Фам, Т. Х. Моделирование работы усилительно-преобразующего блока мобильного измерителя концентрации кислорода в программе Proteus / Т. Х. Фам // Техника XXI века глазами молодых ученых и специалистов. – 2022. – № 20. – С. 315-321.

5. Сбоев, В. М. Моделирование электромеханических систем в программе "Proteus VSM" / В. М. Сбоев, В. В. Рычков // Всероссийская ежегодная научно-техническая конференция "Общество, наука, инновации" (НТК-2012) : Сборник материалов: Общеуниверситетская секция, БФ, ГФ, ФЭМ, ФАВТ, ФАМ, ФПМТ, ФСА, ХФ, ЭТФ, Киров, 16–27 апреля 2012 года / Ответственный редактор: Литвинец С.Г.. – Киров: Вятский государственный университет, 2012. – С. 1146-1149.

6. Журавлев, А. А. Разработка цифрового двойника уличного фонаря с помощью программы Proteus / А. А. Журавлев // Modern Science. – 2020. – № 12-5. – С. 364-368.

7. Третьяков, О. В. Особенности программирования микроконтроллеров с помощью универсального программатора ponyprog и пакета программ Proteus / О. В. Третьяков, И. А. Одарченко // Молодежь и научно-технический прогресс: Сборник докладов VII международной научно-практическая конференции студентов, аспирантов и молодых ученых. В 3-х томах, Старый оскол, 10 апреля 2014 года. Том 1. – Старый оскол: Общество с ограниченной ответственностью "Ассистент плюс", 2014. – С. 146-148.

8. Колесникова, Т. Применение программы CodeVisionAVR для управления LCD-дисплеями в Proteus 8.11 / Т. Колесникова // Компоненты и технологии. – 2021. – № 10(243). – С. 86-97.

9. Клочек, М. С. Программа для автоматического проектирования электрических схем Proteus / М. С. Клочек, А. С. Парфенова // Инновационное развитие. – 2018. – № 1(18). – С. 11-12.

10. Лысенков, А. А. Проектирование восьмиразрядного двоичного счетчика на базе процессора STM32 c визуализацией в программе Proteus / А. А. Лысенков, Н. А. Пикулев // Актуальные вопросы науки и практики: Сборник научных трудов по материалам XXXIX Международной научно-практической конференции, Анапа, 06 декабря 2021 года. – Анапа: Общество с ограниченной ответственностью «Научно-исследовательский центр экономических и социальных процессов» в Южном Федеральном округе, 2021. – С. 163-167.

Войти или Создать
* Забыли пароль?