Назад

Управление светодиодом через последовательный порт на Pico: создаём первую командную консоль

Введение

Добро пожаловать в ваш первый проект управления через последовательный порт на Raspberry Pi Pico! В этом руководстве мы соберём простую схему, которая позволит включать и выключать светодиод, вводя команды в монитор последовательного порта. Вы изучите основы последовательной связи, цифрового вывода и научитесь использовать симулятор Velxio для тестирования кода без какого-либо оборудования.

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

Обзор схемы

Давайте посмотрим на схему, которую мы соберём. Откройте пример в Velxio, и вы увидите следующие компоненты:

Схема подключения pico-serial-led-control на холсте симулятора Velxio

Детали подключения

  1. От Pico D2 к аноду светодиода: Зелёный провод соединяет контакт D2 Pico с анодом (A) светодиода. Это управляющий сигнал.
  2. От катода светодиода к резистору: Серый провод соединяет катод (C) светодиода с одним концом резистора (контакт 1).
  3. От резистора к GND Pico: Чёрный провод соединяет другой конец резистора (контакт 2) с землёй Pico (GND.1).

Вот и всё! Схема проста, но эффективна. Резистор необходим, чтобы не сжечь светодиод. С резистором 220 Ом и типичным прямым напряжением светодиода около 2 В ток составит примерно (3,3 В - 2 В) / 220 Ом ≈ 6 мА, что безопасно.

Разбор кода

Теперь давайте разберём код. Откройте редактор в Velxio, и вы увидите следующий скетч Arduino:

// Raspberry Pi Pico — Serial LED Control
// Send '1' to turn LED ON, '0' to turn OFF, '?' for status

void setup() {
  pinMode(LED_BUILTIN, OUTPUT);
  Serial.begin(115200);
  delay(500);
  Serial.println("=== Pico LED Control ===");
  Serial.println("Commands: 1=ON  0=OFF  ?=status");
}

void loop() {
  if (Serial.available()) {
    char cmd = Serial.read();
    switch (cmd) {
      case '1':
        digitalWrite(LED_BUILTIN, HIGH);
        Serial.println("LED: ON");
        break;
      case '0':
        digitalWrite(LED_BUILTIN, LOW);
        Serial.println("LED: OFF");
        break;
      case '?':
        Serial.print("LED: ");
        Serial.println(digitalRead(LED_BUILTIN) ? "ON" : "OFF");
        break;
      default:
        if (cmd >= ' ') {
          Serial.print("Unknown command: ");
          Serial.println(cmd);
        }
        break;
    }
  }
}

Как это работает

Обратите внимание, что мы используем LED_BUILTIN — предопределённую константу для встроенного светодиода Pico (обычно на контакте 25). В нашей схеме мы подключили внешний светодиод к контакту D2, но код всё равно использует встроенный. Если вы хотите управлять внешним светодиодом, замените LED_BUILTIN на 2 (или определите константу). Для этого примера встроенный светодиод подходит.

Ключевые концепции

Частые ошибки и советы по отладке

Предлагаемые расширения

Когда базовый проект заработает, попробуйте эти улучшения:

  1. Управление внешним светодиодом: Замените LED_BUILTIN на 2 и подключите внешний светодиод к контакту D2, как показано на схеме.
  2. Добавьте больше светодиодов: Используйте несколько контактов и команды, например ‘r’ для красного, ‘g’ для зелёного, ‘b’ для синего.
  3. ШИМ-регулировка яркости: Используйте analogWrite() для установки уровней яркости. Отправляйте значения от ‘0’ до ‘9’ для яркости от 0% до 100%.
  4. Двусторонняя связь: Заставьте Pico отправлять данные с датчиков (например, температуру) при получении команды ‘t’.
  5. Меню: Выводите меню опций и используйте цикл для ожидания корректного ввода.

Призыв к действию

Готовы попробовать сами? Откройте живой пример в Velxio и начинайте экспериментировать: Управление светодиодом через последовательный порт на Pico в Velxio. Никаких загрузок, никакой настройки — только ваш браузер и ваше любопытство. Удачного хакерства!


Поделиться:
David Montero

Автор

David Montero

Creator of Velxio, the open-source circuit and Arduino simulator.

GitHub velxio.dev

Похожие статьи


Предыдущая статья
Pico I2C Сканер: Поиск устройств на шине
Следующая статья
Pico Serial Echo: тестирование UART на RP2040 с Velxio