Симулятор Arduino онлайн: проверьте скетч без платы
Плата ещё едет с маркетплейса, а помигать светодиодом хочется сегодня. Или наоборот: скетч для реального устройства написан, и заливать его вслепую страшно, вдруг опечатка, вдруг пин не тот. Виртуальная Arduino Uno закрывает оба сценария: она исполняет ваш код прямо в браузере. Светодиоды зажигаются, LCD печатает текст, Serial Monitor рисует значения, а датчики крутятся ползунками.
От Wokwi и Tinkercad здесь отличается главное: не нужны ни аккаунт, ни установка. Открыли страницу симулятора, вставили скетч, нажали «Запустить». Периферия собирается сама: движок читает код и подключает светодиоды, кнопки и дисплеи к тем пинам, что упомянуты в скетче. Ниже сравнение с другими эмуляторами, семь шагов до первого результата и честный список того, что симулятор умеет, а что нет.
Отдельные разделы ниже отвечают на вопросы, которые возникают у каждого, кто открывает симулятор впервые: почему скетч «не запускается», что делать, когда периферия не появилась, чем симулятор отличается от настоящей платы по ощущениям и кому он вообще полезен.
Биты, байты и переполнение — видно глазами, а не в голове.
Подгружаем интерактив…
Чем наш симулятор отличается от Wokwi, Tinkercad и Proteus
Эмуляторов Arduino несколько, и каждый силён в своём. Wokwi держится на огромной библиотеке и поддержке ESP32, Tinkercad от Autodesk сделан под школьные классы, Proteus это профессиональный платный инструмент, где эмулируется ещё и электрическая часть схемы. Наш фокус это скорость и честность кода: тот же скетч, что пойдёт на реальную Uno, без настройки окружения и с периферией, которая появляется по коду, а не по рисованию схемы мышкой.
| Параметр | Наш симулятор | Wokwi | Tinkercad | Proteus |
|---|---|---|---|---|
| Установка | Не нужна | Не нужна | Не нужна | Десктоп-программа |
| Регистрация | Не нужна | Нужна для сохранения | Нужна (аккаунт Autodesk) | Лицензия |
| Русский интерфейс | Да | Нет | Частично | Нет |
| Периферия | Собирается сама из кода | Схему рисуете руками | Схема мышкой | Схема вручную |
| Serial с вводом | Да: parseInt, readString, плоттер и CSV-экспорт | Да | Только вывод | Виртуальный терминал |
| ESP32 | Нет, эмулируется Uno | Да | Нет | Есть в новых версиях |
| Цена | Бесплатно | Бесплатно | Бесплатно | Платный |
Как пользоваться: семь шагов
От пустой страницы до бегущего по экрану результата меньше минуты. Дальше останется крутить ползунки датчиков и наблюдать Serial Monitor, точно как при отладке на живой плате, только без поиска кабеля.
Что эмулируется: детали и библиотеки
- Светодиоды на digitalWrite, включая бортовой L на пине 13: яркость и мигание видны сразу
- ШИМ на analogWrite: полоса заполнения duty рядом с диодом, «дыхание» и плавные повороты
- Кнопки с INPUT_PULLUP, клик мышью; дребезг контактов ловится дебаунсом как на реальном железе
- Аналоговые входы A0–A5: ползунки 0–1023 вместо потенциометров и фоторезисторов
- Servo SG90: attach и write, угол видно по шкале; связка с потенциометром штатный пресет
- LCD 16x2 по I2C: LiquidCrystal_I2C, включая символ градуса через lcd.write(223)
- OLED SSD1306: Adafruit_SSD1306, текст и графика на виртуальном экране
- Ленты WS2812: FastLED, fill_rainbow, setBrightness, бегущие и мигающие эффекты
- DHT11 и DHT22: readTemperature и readHumidity с ползунками T и H; обрыв датчика честно возвращает nan
- HC-SR04: pulseIn с честными 58 мкс на сантиметр и таймаутом; препятствие двигается слайдером
- DS18B20: OneWire и DallasTemperature, конверсия занимает 750 мс, как у настоящего сенсора
- Шаговик 28BYJ-48, ИК-пульт (IRremote), зуммер tone() и noTone(), а также Serial-ввод команд
Пример: мигалка, которую можно запустить прямо сейчас
void setup() { pinMode(13, OUTPUT); Serial.begin(9600);} void loop() { digitalWrite(13, HIGH); Serial.println("Горит"); delay(1000); digitalWrite(13, LOW); Serial.println("Погас"); delay(1000);}Пин 13 выбран не случайно: светодиод уже стоит на плате, подключать ничего не нужно, в симуляторе виджет появится автоматически. Хотите внешние детали, замените 13 на 9 и digitalWrite на analogWrite: рядом с диодом появится полоса ШИМ, и яркость можно будет плавно менять.
Тупик: скетч запустился, а ничего не происходит
Самая частая жалоба на любой симулятор: код вставлен, кнопка «Запустить» нажата, экран пустой. Мы разбирали это десятки раз, и в девяти случаях из десяти причина оказывалась одна из трёх.
Первая: в коде нет ни одного вызова digitalWrite или analogWrite, поэтому движку нечего подключать, периферия просто не появляется. Вторая: скетч компилируется с ошибкой, и движок честно показывает номер строки, но новичок прокручивает мимо красной строки и ищет проблему дальше. Третья, самая неочевидная: код зациклился в delay() на очень долгое время, и картинка выглядит «зависшей», хотя всё исполняется. Лечится это уменьшением задержки в шаге симуляции или перезапуском сбросом. Отдельно про кнопки: пока кнопка не нажата, визуального отклика не видно, и это тоже не ошибка.
Личный опыт: чем симулятор оказался полезнее, чем мы думали
Мы начинали с симулятора как с способа показать примеры тем, у кого нет платы под рукой. А получили от него больше: оказалось, что девять из десяти ошибок в скетчах, которые мы раньше ловили только на железе, видны уже в браузере. Неправильный номер пина, забытый pinMode, отсутствие Serial.begin, опечатка в имени переменной: всё это ловится за секунду, и до платы дело доходит уже рабочий код.
Второе, что мы оценили, это скорость правок. Перебрать десяток вариантов порога на датчике в симуляторе занимает вечер, а на железе это десять заливок с перетыканием проводов. Отдельно мы держат в симуляторе все пресеты уроков, и перед занятием прогоняем их разом: если урок развалился после правки в движке, мы узнаём об этом заранее, а не перед учеником. Чего симулятор не заменяет, так это электричества: токи, просадки и помехи остаются за реальной платой, и мы это в каждом уроке проговариваем.
Авторская позиция: кому это нужно
Мы советуем открыть симулятор каждому, кто начинает с Arduino. Даже если плата уже на руках, первые пять-десять скетчей стоит прогнать в браузере: это быстрее, чем искать кабель, и сразу видно, где ошибка. Второй сценарий, где симулятор незаменим, это урок или занятие, где плат на всех не хватает.
При этом мы честно ограничиваем его роль. Симулятор это инструмент для проверки логики, а не замена железу: он не покажет перегрев резистора, не поймаёт ошибку разводки и не скажет, что модуль питается от 5 В, а плата от 3,3 В. Для задач, где критична физика, нужна реальная плата, и мы на это прямо указываем в каждом уроке. Отдельно про выбор инструмента под задачу: если вам нужен именно ESP32 с WiFi или большой список библиотек, разумнее взять Wokwi, потому что наш движок честно эмулирует только ATmega328P.
Подготовка к уроку и маршрут дальше
Преподавателю симулятор заменяет коробку с платами: каждый ученик открывает сайт, выбирает пресет от «Blink» до «Метеостанции» и работает по урокам основ, где каждый скетч уже прогнан на этом же движке. Интерактивная схема платы с описанием пинов в гайде по распиновке Uno R3. Когда виртуальная схема станет тесной, пригодятся установка Arduino IDE и кабель с передачей данных, дальше всё то же самое, только по-настоящему.