プログラミング入門02変数

CircuitPython

前回のプログラムを開いてください。今回は変数を使って自由自在に光るスピードをコントロールしていきます。

while True:
    led.value = 1
    time.sleep(0.4)
    led.value = 0
    time.sleep(0.04)
    led.value = 1
    time.sleep(0.4)
    led.value = 0
    time.sleep(0.04)
    led.value = 1
    time.sleep(0.8)
    led.value = 0
    time.sleep(0.08)

点灯時間に注目してください。この数値を変えることでスピードがコントロールできます。しかし同時に4つも変えなくてはなりません。プログラマーは効率が大事です。

変数を使ってテンポをコントロール

tempo = 0.5
while True:
    led.value = 1
    time.sleep(tempo)
    led.value = 0
    time.sleep(0.04)
    led.value = 1
    time.sleep(tempo)
    led.value = 0
    time.sleep(0.04)
    led.value = 1
    time.sleep(tempo*2)
    led.value = 0
    time.sleep(0.08)

while Trueの前にtempo=0.5として書き換えます。1拍の長さは点灯時間+消灯時間の0.04秒を足して0.54秒になりますね。最後の拍は2つ分点灯させるので2をかけています。掛け算のときはアスタリスクを使います。変数は掛け算も出来るのです。覚えておきましょう。もちろん足し算引き算割り算もできます。消灯時間は2拍分なので0.08秒にしてあります。実行してみましょう。

変数は四則演算が可能

tempoに代入する数字をかえて何度も実行してみてください。0.1秒でも10秒でもOKです。これでどんなスピードのジングルベルがなってもすぐ最適なスピードでLEDを点灯させることが出来るようになりましたね。

足し算をするときは+、引き算はーを使います。掛け算のときは*(アスタリスク)です。xだとアルファベットのXと混乱してしまいますから。割り算は/(スラッシュ)を使います。上のプログラムでは点灯時間は可変ですが、消灯時間は固定になっています。

今度は消灯時間もtempoによって変えられるようにプログラミングしていきましょう。私のプログラムはこちらです。

#ledをジングルベールのリズムで点灯する
#変数を使ってペースをコントロール

import board
import digitalio
import time

led = digitalio.DigitalInOut(board.GP2)
led.direction = digitalio.Direction.OUTPUT

#この数値を変えることでスピードをコントロールします。
tempo = 0.6

while True:
    led.value = 1
    time.sleep(tempo)
    led.value = 0
    time.sleep(tempo/10)
    led.value = 1
    time.sleep(tempo)
    led.value = 0
    time.sleep(tempo/10)
    led.value = 1
    time.sleep(tempo*2)
    led.value = 0
    time.sleep(tempo/10*2)

tempoの時間点灯し、tempoで指定した時間の1/10秒消灯した時間が一拍分になりますね。

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