関数で似たような処理はまとめて一つの関数にしてみよう


関数の引数を使って、関数の呼び出し時に値を指定して実行してみようで関数の引数の機能を使って、関数呼び出し時にRGBフルカラーLEDの色と明るさを指定して実行できるようになりました。


このコードですが、よく見てみると、



アナログで出力するブロックが3個並んでいる似たようなコードになっています。


今回のRGBフルカラーLEDでは、色の指定は必ず3個の値で決まっています。

このような場合は、色の指定を自由に行える関数を用意することでコードのわかり易さを高めていきます。





共通で使える関数 色を作ります。

この時の引数はすべて数値で、赤、緑と青の3個の引数を設けます。



関数 色のブロックでは、アナログ出力の値で赤、緑、青の順で値を入れます。


関数 色ブロックが出来ましたら、関数 赤で先程の関数 色を呼び出します。

この時、関数 色の一番左の引数に明るさブロックを入れます。



同様に関数 緑と関数 青も仕上げます。

関数 色を設けた事で、どのアナログで出力ブロックが何色に対応しているのか?もわかりやすくなりました。




MicroPythonのコード

from microbit import *

# 色 共通
def color(red, green, blue):
	pin0.write_analog(red)
	pin1.write_analog(green)
	pin2.write_analog(blue)
    
# 消灯
def off():
	color(0, 0, 0)

# 赤の点灯
def red(light_level):
	color(light_level, 0, 0)

# 緑の点灯
def green(light_level):
	color(0, light_level, 0)

# 赤の点灯
def blue(light_level):
	color(0, 0, light_level)

off()

while True:
	red(255)
	sleep(1000)
	green(255)
	sleep(1000)
	blue(255)
	sleep(1000)
京都の東本願寺で開催されているプログラミング教室で講師をしています。
詳しくはTera schoolを御覧ください。
大阪府高槻市でプログラミング教室を開設しています。
同じカテゴリーの記事
マインクラフト用ビジュアルエディタを開発しています。

詳しくはinunosinsi/mcws_blockly - githubをご覧ください。