Arduino в Proteus 8

Если вы разрабатываете какой-либо проект на базе плат Arduino, то сперва можно «обкатать» схему (или часть схемы) и программный код на симуляторе в программе Proteus. В этой статье рассмотрим как добавить плату Arduino Nano, встроенную в стандартную библиотеку Proteus, а также сторонние библиотеки отладочных плат.

Отладочные платы в Proteus 8.4

При создании проекта в программе proteus версии 8.4 (в более поздних версиях не помню уже) при создании нового проекта можно указать какую отладочную плату будем использовать. Для создания нового проекта нажимаем на кнопку New Project (показано красной стрелкой на рисунке ниже), или на вот такую иконку Иконка создания нового проекта Proteus, или через верхнее меню File -> New Project, или нажать одновременно кнопки CTRL + N.

Отладочная плата Arduino Nano в Proteus

После этого должно появится вот такое окно:

Здесь мы должны перевести переключатель из положения New Project в положение From Development Board.

В выпадающем списке Micro-controller Family нам нужно выбрать семейство микроконтроллера, в нашем случае это AVR.

Чуть ниже можем наблюдать список Development Board — это доступные отладочные платы. Здесь я выбрал Arduino Nano 3-й версии.

В поле Details мы можем узнать краткую информацию о плате.

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

У нового проекта появится две вкладки: Schematic Capture (электрическая схема) и Source Code (исходный код).

Отладочная плата Arduino Nano в Proteus
Вкладка с электрической схемой
Исходный код для Arduino Nano в Proteus
Вкладка с исходным кодом

Подключаем DHT11 к Arduino Nano

Примера ради, давайте подключим к Ардуино Нано датчик влажности и температуры DHT11 и выведем значения в терминал протеуса.

Как добавить базовые элементы можно прочитать в этой статье.

В библиотеке элементов в поле Keywords вводим DHT, в результатах справа выбираем DHT11, нажимаем OK.

Где найти DHT11 в Proteus

Теперь нажимаем два раза левой кнопкой мыши на рабочее пространство. Итак, датчик добавили.

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

POWER — это вывод питания (по умолчанию +5В). GROUND — это вывод земли (можно прочитать здесь). DEFAULT — это контакт, подключенный в другое место схемы (можно обойтись и без него, нарисовав соединительную линию от вывода DATA к выводу платы).

Подключение DHT11 к Arduino в Proteus

Нужно указать, к какому контакту платы Ардуино будет подключен наш контакт DATA датчика. Нажимаем два раза на контакт (на картинке выше это «Контакт по умолчанию»), который мы добавили, и в поле String напишем IO2, тем самым подключив его ко второму контакту Ардуинки. Нажимаем OK.

Подключаем терминал к Arduino Nano

Виртуальный терминал находится в режиме виртуальных инструментов Иконка измерительных приборов в Proteus под названием VIRTUAL TERMINAL. Добавим его на схему.

Добавление терминала к проекту в Proteus

Так как мы будем только выводить значения в терминал, нам нужно только подключить вывод RXD терминала (прием) к контакту TXD платы Ардуино (передача). Ардуино будет передавать данные, а терминал — принимать. Для этого добавим вывод DEFAULT (как мы это делали для датчика) и подключим его к RXD терминала. Так же в его свойствах необходимо указать метку TXD, что будет означать его соединение с передающим контактом UART Arduino Nano.

Подключение терминала Proteus к Arduino Nano

Программный код

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

Есть и другой способ запустить программу для ардуино в протеусе — это подсунуть микроконтроллеру уже скомпилированный HEX-файл. Но об этом поговорим чуть позже.

Исходный код для ардуино нано в протеусе

Для работы нам понадобится библиотека DHT Sensor Library, а точнее два ее файла: DHT.cpp и DHT.h.

Описание функций библиотеки и саму библиотеку можете найти по этой ссылке.

Слева, в окне Projects нажимаем на Source Files правой кнопкой мыши и выбираем пункт меню Add Files.

В папке с библиотекой DHT Sensor Library находим два файла DHT.cpp и DHT.h. Выделяем их (чтобы выделить несколько файлов, зажмите кнопку ctrl на клавиатуре) и жмем кнопку Открыть.

Код взял из примера библиотеки под названием DHTtester и немного ее изменил.

#include "DHT.h"

#define DHTPIN 2            // Цифровой контакт, подключенный к датчику DHT
#define DHTTYPE DHT11       // Тип датчика DHT 11

DHT dht(DHTPIN, DHTTYPE);   // Инициализация датчик DHT.

void setup() {
  Serial.begin(9600);
  Serial.println(F("DHT11 test!"));
  dht.begin();
}

void loop() {
  delay(2000);   // Подождем две секунды между измерениями.

  // Считываем влажность
  float h = dht.readHumidity();
  // Считываем температуру (по умолчанию в градусах Цельсия)
  float t = dht.readTemperature();

  // Проверка, не завершилась ли операции чтения с ошибкой
  if (isnan(h) || isnan(t)) {
    Serial.println(F("Failed to read from DHT sensor!"));
    return;
  }

  // Выводим на терминал
  Serial.print(F("Humidity: "));
  Serial.print(h);
  Serial.print(F("%  Temperature: "));
  Serial.print(t);
  Serial.println(F("°C "));
}

Теперь скомпилируем проект. Нажмем на тот же Source Files правой кнопкой мыши и выберем Build Project, или нажмем клавишу F7, или через верхнее меню Build -> Build Project, как кому удобнее.

Компиляция код в протеусе

Всё. Переходим к нашей схеме на вкладке Schematic Capture и запускаем симуляцию. Окно терминала должно автоматически открыться.

Подключение датчика DHT11 к Arduino Nano в Proteus

Если окно терминала не отображается, попробуйте перейти в меню Debug и внизу нажать на Virtual Terminal.

Как открыть виртуальный терминал в Proteus

Cторонние библиотеки Arduino для Proteus

О том, как добавить библиотеку в Proteus, можно узнать тут.

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

Arduino TEP

В этой библиотеке доступны 6 разновидностей плат Arduino:

  • Arduino UNO
  • Arduino Mega 2560
  • Arduino Mega 1280
  • Arduino Nano
  • Arduino Mini
  • Arduino Pro Mini

Скачать библиотеку Arduino TEP для Proteus

Платы Arduino в Proteus

Arduino CP

В этой библиотеке доступны только две платы: Arduino Micro и Arduino Nano V3 в двух модификация. Как утвержает разработчик, отличие простой платы от COMPLETE в том, что обычная версия иммитирует только микроконтроллер, тогда как версия COMPLETE — внутренние комноненты, все контакты и порт USB.

Скачать библиотеку Arduino CP для Proteus

Платы Arduino Micro и Arduino Nano в Proteus

На этом все. Посмотрите вот эту статью, если хотите узнать, где найти скомпилированный файл в Arduino IDE и как его загрузить в плату Arduino в Proteus.

5 3 голоса
Рейтинг статьи
Подписаться
Уведомить о
guest
0 комментариев
Межтекстовые Отзывы
Посмотреть все комментарии