2022年5月24日火曜日

Maker Pi RP2040とCircuitPythonで、Grove Rotary Angleボタンを接続してLEDバーにメーター表示する

Maker Pi RP2040には7つのGroveコネクタがあり、様々なGroveデバイスを接続することが出来ます。GroveアナログデバイスはGrove5-7コネクタに接続します。Rotary Angle Sensorに応じてLEDバーをメーター表示するには、以下の手順を実行します。

〇Maker Pi RP2040と接続したGrove Rotary Angle Sensor

実行手順

1. Maker Pi RP2040をパソコンにUSBで接続して、Mu Editorを起動します。

2. code.pyを開いて、以下のプログラムを書き込みます。
アナログ入力の初期化はanalogio.AnalogInで行います。LEDバー表示のためにLED0-LED7,LED16,LED17の10個のLEDを使用します。
※circuit python 7.2.5以降にアップグレードしてから実行してください。
※Mu Editorを使用せず、code.pyを直接エクスプローラーなどから保存する事も出来ます。
import board
import time
import digitalio
import analogio

pins = [
  board.GP0,
  board.GP1,
  board.GP2,
  board.GP3,
  board.GP4,
  board.GP5,
  board.GP6,
  board.GP7,
  board.GP16,
  board.GP17,
#  board.GP26,
#  board.GP27,
#  board.GP28,
]

led_meter = []


# ピンの初期化
for pin in pins:
    dio = digitalio.DigitalInOut(pin)
    dio.direction = digitalio.Direction.OUTPUT
    # LEDメーター用配列へ
    led_meter.append(dio)

# Groveアナログコネクタと対応するピンは以下になります。
# Grove5コネクタ -> GP26
# Grove6コネクタ -> GP27
# Grove7コネクタ -> GP28
adc = analogio.AnalogIn(board.GP26)

while True:
    # アナログ値を取得して0-9のレベル値
    meter_level = int(adc.value/65536*10)
    # LEDバーをレベル値に応じて点灯・消灯
    for li in range(0, 10):
        if li <= meter_level:
            led_meter[li].value = True
        else:
            led_meter[li].value = False
    time.sleep(0.2)

関連情報

・Maker Pi RP2040に関する他の情報はこちらを参照してください。

・Mu Editorに関する他の情報はこちらを参照してください。

0 件のコメント:

コメントを投稿