2025年8月12日火曜日

シリアル通信(発光ダイオードの点灯・消灯)

 前回は、シリアル通信を使って送られてきたデータをそのまま送り返す「オウム返し」のプログラムを作成しました。今回はその応用として、シリアル通信を使って発光ダイオード(LED)の点灯と消灯を制御するプログラムを作ってみましょう。

基本的な通信の仕組みは前回と同じですが、今回は次の3つの点が異なります。

1つ目は、回路に発光ダイオードが追加されている点です。
2つ目は、受信したデータに応じてLEDを点灯または消灯する点です。
そして3つ目は、受信したデータをパソコン側へ送り返さない点です。

これらの違いを除けば、基本的な構成や使い方は前回と共通しています。前回の内容を参考にしながら、今回の制御も確認してみましょう。

回路


シリアルから「A」でLED ON、「B」でLED OFFにするサンプルコード

# ----------------------------------------------
# Thonny用:USBシリアルでLEDを操作するプログラム
# A を送ると LED 点灯、B を送ると LED 消灯
# 配線:LED+→ 1 kΩ → GP15、LED-→ GND
# ----------------------------------------------

import sys, select, machine, time

led = machine.Pin(15, machine.Pin.OUT)          # GP15 を LED 用に

print("▶ シリアルで操作:AでON、BでOFF")

poller = select.poll()
poller.register(sys.stdin, select.POLLIN)

while True:
    if poller.poll(0):                          # 入力があれば
        cmd = sys.stdin.readline().strip()      # 1 行取得して改行除去
        if not cmd:                             # ← 追加:空行は無視
            continue

        print("受信:", cmd)

        if cmd == "A":
            led.value(1)
            print("LED ON")
        elif cmd == "B":
            led.value(0)
            print("LED OFF")
        else:
            print("⚠ 無効なコマンドです(A または B を送ってください)")

    time.sleep(0.1)                             # CPU 負荷軽減



 Thonny を使って文字を送ると、Raspberry Pi Pico(W)の LED を 点灯 / 消灯 できます。

🧪 操作方法(Thonny上で)

  1. コードを貼り付けて「▶ 実行」ボタンを押す

  2. Thonny の下部「シェル」欄に「A」と入力して Enter → LED が点灯

  3. 「B」と入力して Enter → LED が消灯

  4. 違う文字を入れると「無効なコマンドです」と表示されます


0 件のコメント:

コメントを投稿

Google Spread Sheetの利用

  以前に ESP32 で作っていたものを、Raspberry Pi Pico W + MicroPythonで再現してみました。 1.Googleスプレッドシートの設定 1.Google Drive → 右クリック → Google スプレッドシート 2.作成して共有をクリック