Приложение UnoArduSim является лучшим и бесплатным симулятором Arduino Uno. Дающий возможность увидеть ход выполнения программы в реальном времени без наличия самой платы Arduino Uno.
Оно предназначено для облегчения отладки Arduino программ и содержит набор виртуальных 'I/O' Устройств которые можно настраивать и подключать к виртуальному Arduino Uno. UnoArduSim в установке не нуждается, просто скачиваете его по ссылке https://www.sites.google.com запускаете файл UnoArduSim.exe и работаете.
Симулятор работает в операционной системе Windows начиная с Windows XP и до самой новой версии.
Появившиеся вопросы вы можете задавать в комментариях под видео на моем канале перейдя по ссылке https://www.youtube.com/ Мастер Колотушкин
И так ниже представлено приложение UnoArduSim v1.5.1 в запущенном состоянии.
Начнем с рассмотрения окна редактирования Arduino программ которое запускается двойным кликом зоне обведенной красным.
Запустилось окно Edit/View Program.
Зона обведенная синим предназначена для внесения и редактирования Arduino программ (скетчей). Она содержит небольшой код для эмуляции скетча, этот код можно удалить он потом добавится автоматически. Здесь можно вставить свой код или скопированный из приложения Arduino IDE. Правая кнопка мышки здесь не работает так что копировать и вставлять приходится через команды Control C и Control V.
Красным обведены кнопки: Find/Replase (^H) - для вызова поиска по программе, UnDo (^Z) она же ReDo (^Y) - шаг назад или шаг вперед, Compile (^R) - скомпилировать (проверить на наличие ошибок), Adopt (^U) - принять, Cansel - отмена, Seve (^S) - сохранить.
Зеленая зона содержит справочник языка Ардуино. Работает следующим образом - ставите курсор в нужном месте в синей зоне и дважды кликните на интересующее слово в зеленой зоне.
Ниже красным обведено окно переменных.
Здесь во время эмуляции вы можете наблюдать состояния и значения всех переменных которые содержатся в скетче.
С права в центре расположена лабораторная скамья с различными инструментами расположенными по периметру, которые можно настраивать и подключать к виртуальному Arduino UNO.
На лабораторной скамье можно наблюдать состояние контактов виртуального Arduini UNO.
Вопросительный знак означает что контакт не используется, ноль на синем фоне это сигнал низкого уровня LOW, единица на красном фоне это сигнал высокого уровня HIGH, стрелка вверх на розовом фоне это сигнал ШИМ. На плате имеются функционирующие светодиоды: ON, RX, TX и pin 13.
Также если кликнуть дважды по одному из активных контактов то запустится окно осциллографа.
Ниже представлено окно осциллографа с тремя активными контактами.
Pin 0 в состоянии единицы, на Pin 9 видим ШИМ сигнал, а Pin 13 в состоянии ноль. Синяя и красная метки параметра delta выставляются путем перетаскивания их мышкой, а параметр t (время) настраивается колесиком мышки.
Инструменты лабораторной скамьи.
Все они подключаются путем вписывания в свободное поле номера контакта ардуины (00, 01, 02, 03, 04, 05, 06, 07, 08, 09, 10, 11, 12, 13, А0, А1, А2, А3, А4 и А5).
Ниже представлены 5 самых излюбленных инструментов начинающих ардуинщиков:
PUSH (кнопка) в данный момент кнопка имеет на выходе единицу, а при нажатии на нее на выходе будет ноль. Если переставить галочку выше то на выходе будет ноль, а при нажатии будет единица, то есть наоборот.
LED (светодиод) в данный момент галочка стоит снизу, это означает что второй контакт подключен к минусу. Если поставить галочку сверху то второй контакт будет подключен к плюсу.
По центу показан ползунковый потенциометр. Управляется путем перетаскивания ползунка мышкой (вверх-вниз) на выходе формируется аналоговый сигнал от 0 до 5 вольт, в программном виде это значение от 0 до 1023.
R=1K подтягиваюший резистор с номиналом 1 киллоом по умолчанию подключен к минусу, если кликнуть на него то он подключится к плюсу, также можно использовать в качестве выключателя.
PIEZO пъезо динамик можно использовать в проектах где используется проигрывание мелодий или просто подача звукового сигнала, в настройке не нуждается, звук выводится на динамики компьютера или наушники подключенные к компьютеру.
Для любителей механики и робототехники имеется три модуля моторов:
С лева SERVO (сервомотор) управляется ШИМ сигналом, в зависимости от скважности ШИМ сигнала вал принимает определенный угол от 0 до 180 градусов. Сервомоторы подходят для открытия-закрытия заслонки, жалюзей, поворота солнечной батареи к солнцу в общем везде где требуется поворот на определенный угол.
По центру DC MOTOR двигатель постоянного тока который как и сервомотор управляется ШИМ сигналом через контакт Pwm только тут уже в зависимости от скважности ШИМа изменяется скорость вращения. Контакт Dir служит для изменения направления вращения путем подачи на него плюса или минуса. Контакт Enc является выходом энкодера по которому можно считывать обороты и положение ротора. Такие моторы используют там где требуется регулировка скорости вращения это: шпиндель ЧПУ станка, мотор колесо электромобиля и электро велосипеда, квадрокоптеры, куллеры в компьютерах.
С права STEPR (Stepper) или шаговый двигатель, в окне steps выставляется количество шагов на один оборот ротора. Есть два варианта: двух фазный и четырех фазный которые переключаются путем установки галочки над двойкой или над четверкой. В данный момент активен двухфазный вариант с подключением к контактам Р1 и Р2, если выбрать четырех фазный то соответственно добавятся еще два контакта Р3 и Р4. Вращается за счет смены полярности, при каждой смене полярности происходит перемещение ротора на один шаг. Встречаются такие моторы в печатных принтерах, 3D принтерах и ЧПУ станках.
Далее представлено два генератора импульсов:
Слева PULSER цифровой генератор. Он имеет два параметра настроек Pulse и Period а также есть возможность инвертировать сигнал переставив галочку ниже.
Справа FUNCGEN аналоговый генератор. Имеет только один параметр настройки Period и три варианта частот.
Ниже представлены сериал порты:
Программный Serial “SFTSER” который подключается к любым контактам которые вы укажите в скетче. Скорость передачи устанавливается с помощью раскрывающегося списка внизу (Baud). Для отправки строки или значения введите его в окно TX char и нажмите ENTER. Также можно использовать более удобное увеличенное окно, которое вызывается двойным кликом в области SFTSER.
И сериал монитор (Serial Monitor) “SERIAL” который по умолчанию подключен к контактам 00 (TX) и 01 (RX), их можно только отключить переназначить нет. Скорость передачи также устанавливается с помощью раскрывающегося списка внизу (Baud). Для отправки строки или значения введите его в окно TX char и нажмите ENTER. Также можно использовать более удобное увеличенное окно, которое вызывается двойным кликом в области SERIAL.
Для более продвинутых ардуинщиков имеются модули I2C и SPI.
Оба они ведомые, и также как и у сериал портов двойным кликом вызывается увеличенное окно.
Модуль SPI имеет четыре режима Mode 0, Mode 1, Mmode 2, или Mode 3.
И на закуску:
Модуль флеш памяти SD_DRV слева и модуль ведомый сдвиговый регистр SRSLV справа.
Все эти модули можно добавлять указав нужное количество в окне I/O Devices которое находится во вкладке Configure. Удалить модули можно установив значение 0 (ноль).
Такие модули как USB Serial и SDCARD добавляются только по одному установкой галочки на против.
Обратите внимание что модули разделены на две группы:
Small I/O Devices максимальное количество которых до 16 штук.
И Big I/O Devices максимальное количество которых до 8 штук.
Здесь также есть возможность сохранять (кнопкой Seve)и загружать (кнопкой Load) раннее сохраненные наборы модулей.
Рассмотрим кнопки:
С лева кнопка для загрузки раннее сохраненных скетчей, так же скетч можно загрузить через вкладку File выбрав пункт Load INO or PDE Prog..
Кнопки func со стрелками служат для перемещения между блоками скетча.
Желтая стрелка - шаг внутри
Голубая стрелка - шаг вокруг
Фиолетовая стрелка - шаг вне
Красная стрелка - выполнить до
Зеленая стрелка - выполнить полностью (чаще всего используемая)
Кнопка STOP - для остановки выполнения ардуино программы (скетча)
Крайняя правая кнопка сброса RESET
Ниже представлены два скетча, которые использовались в данном обзоре.
Первый скетч test
//Начало первого скетча test
void setup() { //Назначаем выходами второй и третий контакт.
pinMode(02, OUTPUT);
pinMode(03, OUTPUT);
}
void loop() {
digitalWrite(02, HIGH); //Подать единицу на 2 контакт
delay(100); //задержка 100 миллисекунд
digitalWrite(02, LOW); //Подать ноль на 2 контакт
delay(100); //задержка 100 миллисекунд
digitalWrite(03, HIGH); //Подать единицу на 3 контакт
delay(100); //задержка 100 миллисекунд
digitalWrite(03, LOW); //Подать ноль на 3 контакт
delay(100); //задержка 100 миллисекунд
}
//Конец первого скетча test
Второй скетч Button
//Начало второго скетча Button
const int buttonPin = 2; // создаем переменную buttonPin для контакта 2
const int ledPin = 13; // создаем переменную ledPin для контакта 13
int buttonState = 0; //переменная в которая будет хранить состояние кнопки, задаем ей значение 0
void setup() {
pinMode(ledPin, OUTPUT); // назначаем ledPin выходом
pinMode(buttonPin, INPUT); // назначаем buttonPin входом
}
void loop() {
buttonState = digitalRead(buttonPin); // проверяем состояние переменной buttonPin
if (buttonState == HIGH) {
// если состояние переменной buttonPin = HIGH тогда на ledPin подать единицу
digitalWrite(ledPin, HIGH);
} else {
digitalWrite(ledPin, LOW); // в противном случае ledPin подать ноль
}
}
//Конец второго скетча Button
Возникшие вопросы вы можете задать комментариях под видео на моем канале перейдя по ссылке https:youtu.be/5oXn_764mk8
Скачать приложение UnoArduSim по ссылке https://www.sites.com