Добро пожаловать в вашу первую симуляцию в Velxio! В этом руководстве мы заставим мигать встроенный синий светодиод на ESP32 DevKit (GPIO2) и внешний красный светодиод, подключенный к GPIO4. Это «Hello World» микроконтроллеров — простой проект, который подтверждает, что ваша эмуляция ESP32 работает корректно.
Обзор схемы
Давайте посмотрим на схему. ESP32 DevKit — это мозг нашего проекта. На нем уже есть встроенный синий светодиод, подключенный к GPIO2, поэтому нам не нужно его подключать. Для внешнего светодиода мы добавляем красный светодиод из палитры компонентов.

Вот как подключен внешний светодиод:
- GPIO4 (вывод 4 на ESP32) подключается к аноду (A) красного светодиода через красный провод (
#e74c3c). - Катод (C) красного светодиода подключается к GND на ESP32 через темный провод (
#2c3e50).
Вот и всё! Всего два провода для внешнего светодиода. Встроенный светодиод уже находится на плате.
Чтобы добавить компоненты и провода, используйте панель инструментов редактора Velxio и панель инструментов холста:


Чтобы просмотреть и разместить детали, такие как красный светодиод, откройте палитру компонентов:

Разбор кода
Теперь давайте рассмотрим код. Откройте редактор кода в Velxio — вы увидите следующий скетч Arduino:
// ESP32 Blink LED
// Blinks the built-in LED (GPIO2) and an external LED (GPIO4)
// Requires arduino-esp32 2.0.17 (IDF 4.4.x) — see docs/ESP32_EMULATION.md
#define LED_BUILTIN_PIN 2 // Built-in blue LED on ESP32 DevKit
#define LED_EXT_PIN 4 // External red LED
void setup() {
Serial.begin(115200);
pinMode(LED_BUILTIN_PIN, OUTPUT);
pinMode(LED_EXT_PIN, OUTPUT);
Serial.println("ESP32 Blink ready!");
}
void loop() {
digitalWrite(LED_BUILTIN_PIN, HIGH);
digitalWrite(LED_EXT_PIN, HIGH);
Serial.println("LED ON");
delay(500);
digitalWrite(LED_BUILTIN_PIN, LOW);
digitalWrite(LED_EXT_PIN, LOW);
Serial.println("LED OFF");
delay(500);
}
Разберем его по частям:
- Строки 5-6: Мы определяем две константы:
LED_BUILTIN_PINкак2(вывод встроенного светодиода) иLED_EXT_PINкак4(вывод внешнего светодиода). setup(): Мы запускаем последовательную связь на скорости 115200 бод, настраиваем оба вывода как выходы и выводим сообщение о готовности.loop(): Мы включаем оба светодиода (HIGH), выводим «LED ON», ждем 500 мс, выключаем оба (LOW), выводим «LED OFF» и ждем еще 500 мс. Это создает непрерывное мигание.
Ключевые концепции
- Выводы GPIO: Выводы общего назначения могут быть настроены как входы или выходы. Здесь мы используем их как выходы для управления светодиодами.
pinMode(): Настраивает вывод какOUTPUTилиINPUT.digitalWrite(): Устанавливает цифровой вывод в состояниеHIGH(3.3 В на ESP32) илиLOW(0 В).delay(): Приостанавливает программу на заданное количество миллисекунд. Это блокирующая задержка — микроконтроллер не может ничего делать в это время.- Встроенный светодиод: Многие платы разработки имеют светодиод, подключенный к определенному GPIO (часто GPIO2 на ESP32). Это быстрый способ проверить плату.
Частые ошибки и советы по отладке
- Неверный номер вывода: Перепроверьте, что вы используете правильный номер GPIO. Встроенный светодиод находится на GPIO2, а не на GPIO1 или GPIO0.
- Полярность светодиода: Светодиоды имеют анод (длинная ножка, плюс) и катод (короткая ножка, минус). В Velxio у компонента красного светодиода выводы обозначены A (анод) и C (катод). Убедитесь, что анод подключен к GPIO, а катод к GND.
- Отсутствие заземления: ESP32 и внешний светодиод должны иметь общий GND. Наш провод подключает катод светодиода к GND.
- Монитор последовательного порта: Используйте монитор последовательного порта в Velxio, чтобы видеть сообщения «LED ON» и «LED OFF». Если вы их не видите, проверьте скорость (115200) и убедитесь, что монитор открыт.
- Нет мигания?: Убедитесь, что симуляция запущена (нажмите кнопку Run на панели инструментов). Также проверьте, что код компилируется без ошибок.
Предлагаемые расширения
Когда базовое мигание заработает, попробуйте следующие модификации:
- Измените скорость мигания: Измените значения
delay(), чтобы светодиоды мигали быстрее или медленнее. - Мигание только одного светодиода: Закомментируйте один из вызовов
digitalWrite, чтобы мигал только встроенный или только внешний светодиод. - Добавьте третий светодиод: Разместите еще один светодиод на GPIO5 и подключите его. Обновите код, чтобы все три мигали по очереди.
- Используйте ШИМ для затухания: Вместо
digitalWriteиспользуйтеanalogWrite(), чтобы плавно изменять яркость светодиода (ESP32 поддерживает ШИМ на большинстве выводов). - Добавьте кнопку: Подключите тактовую кнопку к входному выводу и сделайте так, чтобы светодиод включался только при нажатии кнопки.
Попробуйте сами!
Готовы мигать? Откройте живой пример в Velxio и запустите симуляцию. Вы увидите, как оба светодиода мигают синхронно. Экспериментируйте с кодом и схемой — это лучший способ научиться.
Открыть пример ESP32 Blink LED на Velxio
Удачного мигания!