プログラミング入門05リスト

CircuitPython
スポンサーリンク

3つのLEDを操作する

このように配線してみてください。

picoで3つのLEDを操作する
# 3led点滅

import time
import board
import digitalio

# LED_PINSでどこにつなぐか指定
LED_PINS = [board.GP2,
            board.GP3,
            board.GP4
            ]
#LEDSというリストを作成
LEDS = []

for pin in LED_PINS:
    # pinをDigitalInOutモードにし、アウトプット方向に設定する
    digout = digitalio.DigitalInOut(pin)
    digout.direction = digitalio.Direction.OUTPUT
    #LEDSリストの中に加える
    LEDS.append(digout)
tempo = 0.3

while True:
    for i in range(len(LEDS)):
        LEDS[i].value = 1
        time.sleep(tempo)
        LEDS[i].value = 0

        

実行するプログラムはこちらになります。

リストってなに?

リストとは

まずはREPLモードにします。対話モードとも呼ばれます。

>>>numbers = [1, 2, 4, 8]
>>>numbers[0]
1

numbersというリストを作ります。1,2,4,8という数を入れてみます。そしてnumbers[0]で0番目のリストの中身を表示させています。Pythonでは最初のリストは0番目です。1番目ではないことに注意してください。リストの中身を順番に見ていってください。3番めを見ると8が表示されることを確認します。

またREPLモードではfor文を使うこともできます。for文を入力したあとにピリオドが3つ並んでインデントされます。print文を打つとまたピリオドが3つ並んでインデントされます。そのときに←キーを押してインデントを消してenterキーを押すと実行されます。

>>>for i in numbers:
...    print (i)
...

appendを使って要素を追加する

次はこのリストに要素を足します。4番めに16を追加します。

>>>numbers.append(16)
>>>numbers
[1,2,4,8,16]

numbersというリストに16という要素を追加することができました。

はじめのプログラムを見てください。7行目からLEDを接続するpinを指定します。13行目でLEDSという要素がないリストを作成。15行目からのfor文でdigitalioをOUTPUT方向へ設定。それをLEDSというリストに格納していきます。こうすることによってLEDS[0]にはGP2、[1]にはGP3、[2]にはGP4が格納されることになります。

リスト化することによって、24行目からのfor文の変数iを使って順番に点灯することができるようになるのです。

このプログラムの便利な点はLEDがいくつ増えようが、7行目からのGP指定さえしておけばokなのです。今みなさんがつかっているRaspberry Pi picoはGPが28個まで設定できますので、10個のLEDをまとめて制御するのも可能です。

タイトルとURLをコピーしました