戻る

PicoシリアルLED制御:初めてのコマンドインターフェース構築

はじめに

Raspberry Pi Picoを使った初めてのシリアル制御プロジェクトへようこそ!このチュートリアルでは、シリアルモニターにコマンドを入力してLEDのオン/オフを切り替えられるシンプルな回路を構築します。シリアル通信、デジタル出力の基本、そしてハードウェアなしでコードをテストするためのVelxioシミュレーターの使い方を学びます。

このプロジェクトは、マイクロコントローラーがコンピューターとどのように通信するかを理解したい初心者に最適です。完了すれば、複数のLED制御、センサー読み取り、さらにはシンプルなメニューシステムの構築にも応用できるようになります。

回路の解説

構築する回路を見てみましょう。Velxioでサンプルを開くと、以下のコンポーネントが表示されます。

Velxioシミュレーターキャンバス上のpico-serial-led-controlの回路図

配線の詳細

  1. Pico D2からLEDアノードへ:緑色のワイヤーでPicoのピンD2をLEDのアノード(A)に接続します。これが制御信号です。
  2. LEDカソードから抵抗へ:灰色のワイヤーでLEDのカソード(C)を抵抗の一端(ピン1)に接続します。
  3. 抵抗からPico GNDへ:黒色のワイヤーで抵抗のもう一端(ピン2)をPicoのグランド(GND.1)に接続します。

以上です!回路はシンプルですが効果的です。抵抗はLEDの焼損を防ぐために不可欠です。220Ω抵抗と標準的なLEDの順方向電圧約2Vの場合、電流は (3.3V - 2V) / 220Ω ≈ 6mA となり、安全です。

コードの解説

それではコードを見ていきましょう。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のオンボードLED(通常ピン25)の定義済み定数です。今回の回路では外部LEDをピンD2に接続していますが、コードは内蔵LEDを使用しています。外部LEDを制御したい場合は、LED_BUILTIN2に変更するか(または定数を定義)、変更してください。この例では内蔵LEDで問題なく動作します。

重要な概念

よくある落とし穴とデバッグのヒント

推奨拡張機能

基本プロジェクトが動作したら、以下の拡張に挑戦してみてください。

  1. 外部LEDの制御LED_BUILTIN2に変更し、回路図のように外部LEDをピンD2に配線します。
  2. LEDの追加:複数のピンとコマンド(例:‘r’で赤、‘g’で緑、‘b’で青)を使用します。
  3. PWM調光analogWrite()を使用して明るさレベルを設定します。‘0’から’9’の値を送信して0%から100%の明るさにします。
  4. 双方向通信:‘t’のようなコマンドを送信したときに、Picoがセンサーデータ(例:温度)を送信するようにします。
  5. メニューシステム:オプションのメニューを表示し、ループを使用して有効な入力を待機します。

行動喚起

実際に試してみませんか?Velxioでライブサンプルを開いて、実験を始めましょう:Pico Serial LED Control on Velxio。ダウンロードもセットアップも不要。ブラウザと好奇心だけあれば大丈夫です。ハッピーハッキング!


共有:
David Montero

執筆者

David Montero

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

GitHub velxio.dev

関連記事


前の記事
Pico I2C スキャナー:バス上のデバイスを検出する
次の記事
Pico Serial Echo: VelxioでRP2040のUARTをテストする