Наверняка, многие из читателей данного сайта хотели бы самостоятельно разработать и собрать какое-нибудь устройство на МК AVR. Но причин, по которым это затруднительно сделать в железе, может быть масса. Например, проживание в сельской местности, где нет радиомагазинов с большим выбором радиодеталей. Хотя в таком случае, как всегда, нам приходит на помощь сайт Али экспресс . Либо ограниченность бюджета. Особенно это актуально для школьников и студентов, еще не имеющих постоянного источника дохода.

Так как же быть в таком случае? Здесь на помощь нам приходят специальные программы-симуляторы, специально созданные для отладки схем.

Одну из них, Proteus версию 7.7, мы и разберем в этой статье применительно к нашему проекту.

Что же нам дает эта программа? Начинающие подумают, что она слишком сложная для освоения. Нет, это не так. Просто всеми функциями программы при эмуляции наших первых проектов мы пользоваться не будем. Освоить её основы реально за один-два вечера. Что она дает нам в плане изучения работы с микроконтроллера ми? Там, например, есть визуальное представление работы светодиодов, дисплеев в реальном времени. Можно выбрать для эмуляции работы множество типов МК AVR, в том числе и те, на которых будут основаны наши уроки: Tiny2313 и Mega8. Что это означает и как это осуществляется? Мы пишем код нашей прошивки, компилируем его, получаем нужный нам HEX-файл и виртуально прошиваем наш МК в программе Proteus. Причем мы также можем изменить и фьюз биты нашего виртуального МК.

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

Вот такое окно у нас открывается сразу после запуска программы (кликните для увеличения):


Затем нам нужно выбрать из библиотеки те радиодетали, которые нам нужны для проекта и поместить их в список деталей. Их мы затем сможем выбрать и установить на рабочее поле. В нашем проекте мы будем использовать МК Attiny2313, желтый светодиод LED-YELLOW (он хорошо “светится” в Протеусе) и резистор RES для ограничения тока, протекающего через светодиод. Иначе мы, как бы это смешно не звучало, “спалим” виртуальный светодиод:-).

Для того, чтобы выбрать эти радиоэлементы, мы должны кликнуть по буковке “Р”:

После того, как кликнули, выйдет вот такое окошко:


В поле “Маска” вбиваем то, что хотим найти, а именно, наш МК, светодиод и резистор


Набираем в поле Маска “Tiny2313” и кликаем по найденному нами МК в графе “Результаты(1)”:


Затем повторяем то же самое с резистором. Вбиваем “res”:


и точно также ищем светодиод:


Ну вот, теперь все эти три элемента у вас должны отобразиться в графе “Устройства”:

Теперь кликаем по черной стрелочке, и потом уже в списке выбираем нужный нам радиоэлемент:

Слева в вертикальной колонке мы видим значок “Терминал”. Нас там интересуют две строчки: Power и Ground. Это соответственно в нашей схеме +5 вольт питания и земля. На МК питание подавать не надо, оно подается автоматически. Для схемы мы берем только значок “земля”.

Вытаскиваем все радиоэлементы на рабочее поле


Затем нам нужно соединить их линией-связью, после этого они у нас будут все равно, что соединены проводником, например дорожкой на плате или проводком


Сразу скажу, не пытайтесь установить один вывод детали впритык к другому или даже внахлест, без использования линий-связей. Программа не поймет это как соединение и схема работать не будет.

Нам также нужно изменить номинал резистора. По умолчанию он не подходит для нашей схемы. Как это сделать?

Нажимаем правой кнопкой мыши на резисторе, выбираем Правка свойств


А потом меняем значение на 200 Ом. Вполне хватит, что наш виртуальный светодиод не помер)


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

Кстати, хочу сразу сказать, если мы совершили какое-то ошибочное действие, нам достаточно нажать кнопку “Отменить” и последнее действие будет отменено. Думаю, многие это знают из сторонних программ, но мало ли).

Итак, мы собрали схему. Теперь надо залить прошивку в наш микроконтроллер и посмотреть, как же это выглядит в действии. Для этого нам нужно кликнуть правой кнопкой мыши по МК и нажать иконку с изображением желтой папки в графе Program Files. Кстати, здесь же можно при необходимости выставить фьюз биты (кликните для увеличения картинки):


Затем нужно выбрать файл прошивки с расширением *.HEX и нажать “Открыть”. Все готово, можно эмулировать проект.

(для увеличения кликните по картинке)


Для начала эмуляции нужно нажать кнопочку “треугольник” в нижнем левом углу программы “Протеус”:


У нас начнется эмуляция. Мы увидим, как мигает светодиод. В какой-то момент времени наш светодиод будет светиться. Смотрите как ярко горит желтым цветом:-)


А потом он снова будет тухнуть:


Теперь мы можем при желании сохранить наш проект под любым названием, выбрав “Cохранить проект как”, а также если требуется открыть готовый файл другого проекта, выбрав “Открыть проект”

Так выглядит иконка сохраненного проекта на рабочем столе:

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

Ну вот и все! Ниже видео работы схемы, а также всех этапов эмуляции:

Поговорим о такой замечательной программе для симуляции электронных схем как Proteus 7, (а конкретнее версия 7.10). Для начала что такое симулятор, и зачем он нужен. Симулятор электронных схем Proteus 7, предназначен для моделирования составленных вами электронных схем. То есть вы рисуете схему (добавляете нужные компоненты и соединяете в нужной последовательности), а затем добавляете измерительные приборы, которые вам нужны для контроля работоспособности. Вся прелесть в том что в железе ничего собирать не нужно. Накидал схему и смотришь как она работает, измеряешь ее параметры. Иногда, конечно, случается что в железе все работает по другому. Вообще для Proteus 7 нужен компьютер по мощнее. Теперь познакомимся с самой программой. Запускаем программу и после загрузки видим: рабочее поле, панели инструментов (расположены вверху и слева), и панель свойств.

Создадим простой проект. Добавим светодиод, резистор, кнопку, питание и соединим все это, чтобы при нажатии на кнопку светодиод горел. Нажимаем «Компоненты», на панели свойств нажимаем «P».

Можно искать через категории нужный нам компонент, ну а можно и просто по названию. В строке поиска пишем «LED» и выбираем светодиод, например синий. Щелкаем по нему 2 раза и он добавляется в наши компоненты. Также добавим кнопку и резистор.

Теперь в нашей панели есть светодиод, кнопка и резистор. Выделяем первый компонент и делаем один клик на рабочем поле. Компонент добавлен. Размещаем компоненты как удобно. Для резистора нужно задать номинал. Для этого щелкаем по нему 2 раза и в окне свойств вводим нужный нам номинал.

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


Теперь нужно добавить питание. Жмем на кнопку «Terminal» и добавляем элементы Power (+) и Ground (-).

Напряжение по умолчанию здесь 5В. (добавляются на рабочее поле они точно так же как и компоненты). И соединяем их с нужными точками схемы. В итоге получается такая схема.

Теперь смотрим в нижнем левом углу панель запуска симуляции. Все, как и в проигрывателе, треугольник — старт, квадрат — стоп ну и т.д. Запускаем, наводим курсор на кнопку и нажимаем ее.

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

Главным преимуществом и отличием Протеус от других подобных программ для симуляции работы электрических цепей, — это возможность выполнять симуляцию работы микропроцессоров и микроконтроллеров (МК). Библиотека Proteus содержит такие основные типы МК: AVR, ARM, PIC, Cortex.

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

Также в Протеусе встроены инструменты для автоматизированной разработки печатных плат и для создания их 3D моделей.

Для симуляции нашей первой программы, из библиотеки нам понадобится только микроконтроллер ATmega8, резистор и светодиод.

Настройка Proteus 8.4

Любая настройка начинается с запуска. В появившемся окне кликаем по значку диода с конденсатором Schematic Capture (Схемотехника).

После этого откроется окно с пустым полем.

Теперь добавим микроконтроллер ATmega8, резистор и светодиод.

По умолчанию установлен подходящий режим Component Mode поэтому, чтобы попасть в меню выбора электронных и других элементов, достаточно кликнуть по кнопке P, расположенной на панели DEVICE (устройство). После этого откроется окно, в котором необходимо выбрать в меню Category (Категории) Microprocessors ICs (микропроцессоры), в Sub-Category (Подкатегории) – AVR Family . Далее в окне Results находим и выделяем МК ATMEGA8 . Кликаем по кнопке OK .

После этого он появится в меню окна DEVICE и его уже можно перетягивать мышкой в рабочую область.

Аналогичным образом добавляем резистор и светодиод.

Светодиоды находятся в категории Optoelectronics (Оптоэлектроника) и далее в подкатегории LEDs . В данном примере он выбран зеленого цвета LED-GREEN .

Теперь собираем схему, как показано на рисунке ниже. К выводу МК PC0 подсоединяем резистор R1, который соединяем с анодом светодиода D1. Катод светодиода соединяем с «землей». Элемент «земля» находится в меню вкладки Terminals Mode .

Чтобы изменить значение сопротивления резистора R1 нужно дважды кликнуть мышкой по нему. В открывшемся окне устанавливаем 300 Ом в строке Resistance (сопротивление).

Обратите внимание, что выводы микроконтроллера в Proteuse для удобства объединены в отдельные группы по портам. Однако это не соответствует расположению их в реальном МК. Кроме того отсутствуют выводы, к которым подается напряжение для питания МК. Эта функция установлена по умолчанию.

Запись программы в память микроконтроллера

Теперь осталось записать наш код в виртуальный МК. Дважды кликаем по нему мышкой и в появившемся новом указываем путь к файлу с кодом. Место расположения файла находим кликнув по значку в виде открытой папки в строке Program File .

В папке с проектом находим папку Debug и в ней выбираем файл с расширением HEX . После этого нажимаем кнопку Открыть .

Теперь, когда мы выбрали элементы, необходимо перейти к следующему - к их размещению на области расположения рисунка - в окне редактирования. Начнем с самого простого - буфера, показанного в левом верхнем углу схемы руководства. Более подробно он показана ниже:

Законченный вид первого блока схемы,
которую необходимо нарисовать.

Удостоверьтесь, что Вы находитесь в режиме элемента (то есть, что выбран значок элемента ) и начните, кликнув мышью на 741 в переключателе объектов. Вы должны будете увидеть, что окон краткого обзора над переключателем изменилось на окно предварительного просмотра выбранного устройства. Скриншоты ниже показывают состояние переключателя объектов и окна краткого обзора после выделения элемента 741.

· Окно краткого обзора показывает не только предварительный вид устройства, но его текущую ориентацию. Когда Вы вращаете или отражаете элемент (с помощью значков Вращение и Отражение ), устройство повторно прорисовывается, чтобы предварительно просмотреть его новую ориентацию. Предварительный вид устройства остается в окне до тех пор, пока оно не будет размещено или пока не будет выполнена другая команда или действие.

Теперь переместите указатель мыши в середину окна редактирования и нажмите левую кнопку. Контур операционного усилителя появится под указателем мышью и будет следовать за ним, когда Вы перемещаетесь по окну редактирования. Когда Вы снова нажмете левую кнопку, элемент будет помещен на схему и прорисуется полностью. Пробуйте это, поместив операционный усилитель где-нибудь в середине окна редактирования.


Контур элемента двигается всед
за указателем мыши в режиме размещения.

Выберите устройство MINRES1K и разместите один резистор над операционным усилителем, как показано на схеме выше. Нажмите один раз левую кнопку на иконке вращения против часовой стрелки (показано ниже); заметьте, что предварительный вид резистора в окне краткого обзора показывает, что он повернут на 90°. Наконец, разместите второй (вертикальный) резистор R2.


Иконки вращения
(выбрано вращение против часовой стрелки).

Если Вы недостаточно опытны, Вы вряд ли с первой попытки разместите элементы так, как это необходимо, поэтому рассмотрим, как их переместить. Объекты в ISIS для дальнейшего редактирования выбираются ‘выделением’. Есть несколько способов выделить объект в ISIS:


Контейнер выделения, окружающий ОУ.

Точно так же Вы можете снять выделение (или совокупность выделений) или левым кликом на пустом месте, или правым кликом на пустом месте и выбором пункта Очистить Выделение (Clear Selection ) в появившемся контекстном меню.


Снятие выделения со всех объектов
через контекстное меню.

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


Перемещение выделенного ОУ.

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

Всё вышеупомянутое может показаться запутанным при первом прочтении, но окажется чрезвычайно простым на практике. Хотя мы и склоняемся к тому, что безрежимный механизм выделения - самый простой для работы, Вы должны выбирать способ для работы, исходя из собственных предпочтений. Следующие простые эксперименты помогут Вам ознакомиться с различными доступными методами и очистят ваши сомнения:

Этот способ является и простым и интуитивным и его стоит выбрать для того, чтобы в дальнейшем размещать и поворачивать устройства в ISIS. Чтобы закрепить изложенное выше, поэкспериментируйте немного над повторной обработкой схемы так, чтобы объекты были размещены так же, как на скриншоте в начале этого раздела.

Если нужно быстро собрать несложную схему, и проверить её работоспособность, то можно сделать это в симуляторе, например в таком как . В этой небольшой статье я познакомлю вас основными возможностями этой программы.

Достоинства протеуса
Протеус идеальная программа для новичков недавно начавших изучать микроконтроллеры. В программе есть куча разнообразных измерительных приборов: Генераторы сигналов, осциллографы, анализатор шины i2c и еще много чего. Эти приборы позволят быстро отладить программу для МК. В отличии от реального железа, заменить резистор в схеме это дело 4-х секунд! Интерфейс интуитивно понятен и разобраться в нем не составляет труда. обладает почти всеми необходимыми моделями (лично мне не хватило модели дисплея от нокии 3310 но и она потом нашлась). Кстати модели можно создавать самому, но я не вникал в подробности как это делается. Вместе с программой для симуляции электронных схем, в комплект входит программа разводки печатных плат — ARES . Пожалуй самая удобная из всех увиденных мной. Схему нарисованную в протеусе можно легко перенести в ARES. Буквально одним нажатием кнопки. В ARES есть авторазводчик плат, но я им не пользуюсь ибо он так себе. Короче достоинств очень много, но стоит добавить ложку дёгтя.

Недостатки протеуса
Увы ни что не идеально в том числе и . Протеус ужасно симулирует аналоговые схемы! Поэтому если у вас в протеусе не работает мультивибратор, то это вовсе не значит что он не заработает в настоящем железе. Справедливо и обратное утверждение. Если работает в симуляторе, то есть вероятность того что в железе ничего не заработает. Поэтому увлекаться симуляторами не стоит. Если уж хочется посимулировать аналоговые схемы, то к вашим услугам Multisim. У него дела обстоят с точностью до наоборот. Аналоговые схемы симулирует неплохо, а с цифрой непорядок (главным образом из-за того что нет нужных моделей микроконтроллеров). Еще один недостаток протеуса это его платность и цена.

Как собрать схему в Proteus

Для начала нужно добавить в проект необходимые нам элементы. В демонстрационном примере мы попробуем собрать бегущие огни на микроконтроллере Tiny2313. Для данного проекта нам потребуются:

  • Микроконтроллер tiny2313
  • Восемь светодиодов
  • восемь токоограничивающих резисторов на 220 Ом

Для добавления щёлкнем на кнопку на панели инструментов слева. После нажатия жмём на кнопку P слева от надписи DEVICES. Откроется окно, в котором необходимо выбрать нужный нам элемент. Поиск можно осуществить двумя способами: Просто выбрать элемент из нужной категории Microprocessor ICs -> AVR Family -> ATTINY2313 а можно поступить проще, просто написав нужное название в строке поиска сверху. Должно получится что то вроде этого:

После добавления элемента его название появится в списке DEVICES. Аналогичным образом добавим резистор (слово для поиска RES) и светодиод (Led-green). После добавления приступим к объединению элементов в схему. Из списка DEVICES выбираем микроконтроллер и помещаем его в рабочую область. Потом добавляем аналогичным образом 8 светодиодов и 8 резисторов. Резисторы имеют сопротивление по умолчанию 10 кОм, а нам нужно 220. Для изменения сопротивления щёлкнем по резистору двойным щелчком и в открывшемся окне найдем поле «Resistance» и внесем туда число 220. Катоды светодиодов потребуется подключить к земле. Чтобы получить вывод «Земля» нужно щёлкнуть на кнопке и в списке выбрать «GROUND». Аналогичным способом можно получить вывод +5 вольт (POWER). Теперь когда земля добавлена, соединим детали по схеме ниже:

Теперь нужно «прошить» виртуальный микроконтроллер. Для этого щёлкаем дважды на нем и находим поле для ввода текста под названием Program File. В нем нужно указать путь к HEX файлу. Так же в этом окне можно задать частоту работы контроллера, содержимое EEPROM памяти, фьюзы итд. Прошивку для данного демонстрационного примера можно скачать . Теперь когда всего готово можно приступать к самому интересному — запуску симуляции! Жмем кнопочку Play снизу (треугольничек направленный вправо) , после этого светодиоды должны по очереди загораться! Аналогично собираются другие схемы на микроконтроллерах. Все вопросы по протеусу можно задать в комментах.



Эта статья также доступна на следующих языках: Тайский

  • Next

    Огромное Вам СПАСИБО за очень полезную информацию в статье. Очень понятно все изложено. Чувствуется, что проделана большая работа по анализу работы магазина eBay

    • Спасибо вам и другим постоянным читателям моего блога. Без вас у меня не было бы достаточной мотивации, чтобы посвящать много времени ведению этого сайта. У меня мозги так устроены: люблю копнуть вглубь, систематизировать разрозненные данные, пробовать то, что раньше до меня никто не делал, либо не смотрел под таким углом зрения. Жаль, что только нашим соотечественникам из-за кризиса в России отнюдь не до шоппинга на eBay. Покупают на Алиэкспрессе из Китая, так как там в разы дешевле товары (часто в ущерб качеству). Но онлайн-аукционы eBay, Amazon, ETSY легко дадут китайцам фору по ассортименту брендовых вещей, винтажных вещей, ручной работы и разных этнических товаров.

      • Next

        В ваших статьях ценно именно ваше личное отношение и анализ темы. Вы этот блог не бросайте, я сюда часто заглядываю. Нас таких много должно быть. Мне на эл. почту пришло недавно предложение о том, что научат торговать на Амазоне и eBay. И я вспомнила про ваши подробные статьи об этих торг. площ. Перечитала все заново и сделала вывод, что курсы- это лохотрон. Сама на eBay еще ничего не покупала. Я не из России , а из Казахстана (г. Алматы). Но нам тоже лишних трат пока не надо. Желаю вам удачи и берегите себя в азиатских краях.

  • Еще приятно, что попытки eBay по руссификации интерфейса для пользователей из России и стран СНГ, начали приносить плоды. Ведь подавляющая часть граждан стран бывшего СССР не сильна познаниями иностранных языков. Английский язык знают не более 5% населения. Среди молодежи — побольше. Поэтому хотя бы интерфейс на русском языке — это большая помощь для онлайн-шоппинга на этой торговой площадке. Ебей не пошел по пути китайского собрата Алиэкспресс, где совершается машинный (очень корявый и непонятный, местами вызывающий смех) перевод описания товаров. Надеюсь, что на более продвинутом этапе развития искусственного интеллекта станет реальностью качественный машинный перевод с любого языка на любой за считанные доли секунды. Пока имеем вот что (профиль одного из продавцов на ебей с русским интерфейсом, но англоязычным описанием):
    https://uploads.disquscdn.com/images/7a52c9a89108b922159a4fad35de0ab0bee0c8804b9731f56d8a1dc659655d60.png