arduino и proteus Симуляция ардуино без подключения

Arduino и Proteus. Симуляция ардуино без подключения

Arduino и Proteus Симуляция ардуино без подключения. Виртуальная Ардуино. proteus 8 professional. Установка, начало работы с Ардуино на примерах. Как добавить электронные компоненты и нарисовать свою схему и протестировать (с эмулировать) без подключения к Ардуино.

Сегодня рассмотрим пример проверки кода без сборки устройства и прошивки платы АРДУИНО, а поможет нам в этом удивительная программа Proteus.
Приветствую всех моих подписчиков и гостей канала. Сегодня мы изучим новую программу, которая в сотни раз облегчит наш труд.

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

Есть возможность подключаться к USB и COM порту компьютера и получать оттуда данные или посылать их из программы.

Посмотрим что мы сегодня будем разбирать.
Для примера я подключил 8 светодиодов и буду мигать ими по очереди. Пример, конечно совсем простой, но мы сегодня разбираем на скетчи, а как работать с Proteus.
Я параллельно работе симуляции запустил собранную плату, а что бы было понятно что светодиоды мигают с частотой 1 секунда, я вывел на экран ещё и таймер. Вы можете видеть, что светодиоды переключаются через 1 секунду по таймеру. Но это никак не соответствует реальному времени. Что бы понять в чём же дело надо прочитать сообщения об ошибках. А здесь в предупреждениях написано, что «Моделирование не работает в режиме реального времени из-за чрезмерной загрузки процессора.»

Теперь изменим время мигания светодиодами, а заодно я покажу как обновить бинарный файл, который нам понадобится для симуляции в Proteus.
Меняем время пауза на пол секунды и так как мы не подключали Ардуино к компьютеру, то нажимаем кнопку Проверить код. После завершении компиляции, заходим во вкладку Скетч   и нажимаем Экспорт бинарного файла. Если вы сейчас ничего не понимаете – это не страшно я потом всё объясню.   Снова переходим в Proteus и нажимаем включить симуляцию. теперь время между включениями светодиодов сократилось в два раза, и теперь вместо 8 секунд весь цикл отработал за 4 секунды, то есть в два раза быстрее.  Я думаю вы поняли что это за программа и для чего она нужна, так что идём дальше.   

Пару слов про установку программы PROTEUS. На сегодняшний момент самая новая версия – это версия 8.13. Вот ссылка на скачивание с официального сайта, но там версия с ограничениями. Ограничения не связаны с разработкой и вы можете делать практически всё что и в платной версии, за исключение сохранения и распечатки   готового результата. У меня ушло не больше минуты что бы найти сами знаете какую версию. Что вы будете устанавливать решайте сами. Советую вам для начала скачать тестовую версию, а потом уже решайте сами. В моих дальнейших видео я буду часто обращаться к этой программе, так как собирать сложные устройства только для видеоурока сложно и долго, а в программе я всё это сделаю за 5-10 минут.
Когда -то давно я делал видео про протеус. Но возможно кому-то захочется посмотреть . Вот ссылка на это видео.

Я буду предполагать, что вы скачали установили Proteus. Там ничего сложного, и устанавливается как и любая другая программа.
Запускаем программу и видим вот такое окно. Сразу скажу, что я не буду сегодня рассказывать про все возможности программы, так как если вы видите её в первый раз, то всё равно много не поймёте, а если уже знакомы, то и так всё знаете. Мы будем изучать всё по мере надобности. Нажимаем на Новый проект и вам будет предложено ввести имя проекта и путь по которому он будет находиться.  Имя оставим без изменений, а вот путь я бы поменял. Желательно создать на каком-нибудь диске папку Proteus и лучше всего это сделать в корне папки, что бы было проще туда переходить.

Нажимаем продолжить и теперь вам будет предложено загрузить шаблон с которым вы будете работать выбирайте default, я потом расскажу почему.
Здесь спросят будете ли вы делать печатную плату. Мне это сейчас без надобности, поэтому отказываемся. Дальше везде жмём ok.
Перед вами открылось окно с новым проектом. Пока вам надо просто знать, что в окне справа мы будем собирать свою схему и смотреть как она будет работать.
Но что бы собрать схему, вам надо выбрать набор элементов из которых и будет состоять схема.
Для этого в окне слева нажимаем кнопку P и в поле keywords начинаем набирать то что мы ищем. Сначала добавим микроконтроллер. Набираем AVR и находим контроллер ATMEGA328P именно на нём собраны платы Ардуино НАНО и АРДУИНО УНО.

Здесь мы видим как микроконтроллер будет выглядеть на схеме, а здесь посадочные места для печатной платы.
Щёлкаем 2 раза мышью и контроллер отображается в окне DEVICES. Теперь для нашего примера нам нужны светодиоды. Набираем LED и в подкатегории выбираем LEDs, теперь в этом окне выбираем нужные нам светодиоды. Я выберу несколько штук разного цвета. Так же щёлкаем по выбранным два раза и они тоже оказываются в окне слева. А ещё нам нужна кнопка.
Теперь нам набо выбрать резисторы. Мы же знаем, что без них светодиоды сгорят. Нам надо выбрать 8 резисторов, но так как они все будут одинакового типа, размера и мощности, то нам достаточно добавить всего одну штуку.

Да, и ещё я забыл выбрать кварц и пару конденсаторов. На всех платах Ардуино стоят внешние кварцы. Они нужны, чтобы микроконтроллер работал на частоте 16 мегагерц, то есть выполнял 16 миллионов операций в секунду. Без этого он будет работать на частоте всего 8 мегагерц и выполнять 8 миллионов операций.
Так что снова идём в библиотеку с компонентами.

Теперь закрываем окно. Для того чтобы каждый раз не выбирать часто используемые компоненты, вы можете сохранить их в шаблоне. Для этого переходим в TEMPLATE  и выбираем самую нижнюю строчку. – Сохранить дизайн как шаблон. В списке выбираем default или создаём новый шаблон.  И теперь при открытии этого или нового проекта вас все эти детали будут загружены по умолчанию.

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

Выбираем первый светодиод и щёлкаем в нужном месте. Если светодиод надо повернуть, то это можно сделать нажав на клавиатуре NUM LOCK знак минус. Ещё больше возможностей можно получить нажав правую кнопку мыши и выбрав нужную команду. Добавляем оставшиеся светодиоды размещая их в столбик.
Получилось не очень красиво, и слишком много надписей. Но всё это можно удалить или вывести свои надписи. Для этого щёлкаем правой кнопкой и выбираем нужное действие.
Выбираем EDIT LABEL. Здесь можно написать свой текс, удалить и выровнять как вам нравится. Я удалю цвета светодиодов. Проделываем всё это для всех светодиодов.
Теперь надо добавить резисторы, а как мы знаем, что без резисторов светодиоды моментально сгорят. Вся прелесть работы с Protes в том, что вы не сможете ничего сломать или сжечь.
Резисторы размещаем также в столбик напротив светодиодов.

По умолчанию,  те резисторы что мы добавили имеют номинал 10 кОм, но при таком значении светодиоды гореть не будут, поэтому его надо изменить. Например на 330 Ом. Это делается нажав на резистор правой кнопкой мыши и выбрав редактировать свойства. Поменяем значения на необходимое.
Что бы больше не заниматься редактированием, скопируем этот резистор в буфер памяти. Теперь для того что бы поместить резистор из памяти надо выбрать, поле вставить из памяти.  Разместим оставшиеся резисторы напротив светодиодов.

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

Выбираем кнопку Терминал. Здесь мы можем взять как источник питания, так и землю, а также многое другое. Нам сегодня нужна только земля. Выбираем и переносим на схему.
Теперь надо соединить все резисторы и подключить их к земле. Просто тянем линию и соединяем. Точки соединения образуются автоматически.
Так как в нашем скетче светодиоды подключены к выходам с D2 по D9 что соответствует портам D и B контроллера, то так и подключаем. Чтобы светодиоды зажигались по очереди, надо подключить их по порядку, начиная с порта D2 до D7 и к порту B  с нулевого по первый.
Если вы вдруг ошиблись, то ничего страшного просто удалите неправильные подключение, выбрав соединение, нажав правую кнопку мыши и выбрав DELETE WIRE. Затем проложите новую связь.

Я забыл добавить кварц. Сейчас это исправим. Идём в библиотеку с компонентами.
В поисковой строке пишем слово кристалл и выбираем первый попавшийся. Если бы мы делали печатную плату, то тогда нам был бы важен размер и способ установки. Нам же сейчас всё равно. Добавляем в девайсы. Вместе с кварцем надо установить два конденсатора. Поэтому находим в библиотеке конденсаторы и так же добавляем в свою схему.
Закрываем библиотеку и разместим конденсаторы и кварц на схеме и подключим согласно даташиту. На плате, для установки кварца есть два пина PB6 и PB7.  Вот туда и нужно устанавливать. Кстати, если вам достаточно всего 8 мегагерц, то вы можете не устанавливать кварц, а эти выводы использовать как обычные цифровые пины.
Устанавливаем конденсаторы. Для конденсаторов надо установить значение их ёмкости. В разных даташитах она указана по разному, где-то 10 а где-то 22 пикофарата. Это не суть важно. Соединяем всё это по схеме.

Теперь настало время поговорить про HEX файл. В протеус мы не можем загрузить обычный файл с расширение ino в котором хранятся все файлы сохранённые в программе ардуино ide, нам нужен специальный файл.
Есть несколько способов создать этот файл. Мне больше нравится этот, поэтому про него и рассказываю.
На второй минуте видео я показывал как создать этот файл, но прошло много новой информации, поэтому повторюсь. Если у вас не подключена Ардуина к компьютеру, то нажимаем кнопку Проверить, а не скомпилировать.

Ждём когда компиляция завершиться и переходим в папку где у вас хранится скетч. Там сейчас всего 1 файл. Теперь переходим на вкладку скетч и и нажимаем экспорт бинарного файла. И теперь в паке со скетчем появилось ещё два файла, вот они то нам и нужны. Один – это HEX файл с загрузчиком, а второй без загрузчика.
Теперь этот файл надо загрузить в контроллер. Я выбираю файл без загрузчика, так как загрузчик нам сегодня не нужен. Выбираем контроллер и щёлкаем правой кнопкой мыши. Выбираем EDIT PROPERTIES и перед нами открывается окно со свойствами контроллера. Это его обозначение на схеме, название контроллера, фьюзы и другое. Нам сейчас надо указать путь где хранится HEX файл.

Щёлкаем по нужному файлу и путь к этому файлу охраняется в свойствах микроконтроллера.
Теперь нам надо изменить фьюзы.
Фьюзы - это не простая тема, поэтому я оставлю её для отдельного видео. Экспериментируя с ними в протеусе вы ничем не рискуете, а вот бездумно переключать их на реальном компьютере грозит вам тем, что он станет не рабочим, и практически без восстановления. Так что сейчас только самое необходимое.
Так как мы используем внешний кварц то  нам надо отключить деление на 8.
Отключаем внутреннюю RC цепочку которая устанавливает частоту контроллера на 8 мегагерцц и подключаем внешний кварц.
Пишем сюда частоту кварца. Можно написать 16 миллионов или просто 16 мегагерц. Нажимаем ОК теперь у нас всё готово для работы с примером.
В скетче частота мигания светодиодами установлена в 1 секунду и пауза после работы последнего выключения светодиода тоже секунда. Проверим как это работает в Протеусе.
Нажимаем кнопку включить симуляцию. Красные квадратики около светодиодов  - это знак того что в данный момент на нём высокий сигнал, то есть HIGH или +5 вольт. Синий квадратик это знак того что на выводе земля, то есть напряжение отсутствует.

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

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

У таймера много настроек, я же просто его его кинул на схему и даже не подключил и при включении симуляции он просто отсчитывает время работы. Мы можем увидеть, что светодиоды переключаются каждую секунду. Значит всё у нас работает и можно теперь собрать схему и заливать пример в скетч.
Хотелось ещё много чего рассказать. Подключить вольтметр и амперметр и посмотреть как меняется сила тока и напряжение на светодиодах. Подключить осцилограф и измерить сигналы. Здесь десятки очень интересных приборов, но времени не хватило. Я и так сделал очень большое для себя видео, так как не люблю видео больше 10 минут, так как считаю, что такие большие видео мало кто смотрит.

Ну наконец-то это видео закончилось и можно приступать к следующему. Спасибо всем кто досмотрел его до конца. И до встречи в новых уроках.

Дополнительные материалы и примеры
arduino и proteus Симуляция ардуино без подключения
Proteus arduino. установка дополнительных библиотек ARDUINO ESP8266 NodeMCU.
Сдвиговый регистр 74hc165 ардуино. Входы ардуино
Входы и выходы на ардуино. Пример подключения сдвиговых регистров 74hc595 и 74hc165
Простые измерения в Proteus. Амперметр и Вольтметр
Учимся Создавать и Тестировать Электронику в Proteus: Полное Руководство

Скетчи