関数を利用してRGBフルカラーLEDのコードを整理してみよう


RGBフルカラーLEDで色々な色で点灯してみようでRGBフルカラーLEDを使って、様々な色で点灯してみました。


このコードを改めて見てみますと、



ずっとブロックの中に挿入しましたブロックの組み合わせで、どの箇所が何色であるか?が分かりにくい為、コードの変更が必要な時にどの箇所から手を付けて良いかの判断が難しくなっています。


そこで関数の機能を利用して、コードを読み易い形に変えてみます。




最初に赤色の箇所を分かり易くしてみます。



画面下の方にあります高度なブロックをクリックし、



関数 > 関数を作成するの順にクリックします。



関数の編集の画面が表示されましたら、関数ブロックで入力できる箇所にと入力して完了ボタンを押します。



関数「赤」のブロックが表示されていますので、LEDが赤に点灯するようなコードを作成しておきます。


このブロックは現状ではただの処理の設計図のようなものでして、このブロック内の処理を実行するには、関数の呼び出しをする必要があります。



再び関数を開き、あなたの関数にある呼び出し 赤のブロックを選択し、



ずっとブロック内の赤に該当している箇所を、呼び出し 赤に差し替えます。



赤同様に、緑と青の関数も用意して、



ずっとブロックの中のLEDの点灯に関する事を、作成した関数に差し替えます。


最後に



消灯に関する関数も用意して、



最初だけブロック内も作成した関数に差し替えます。


これで最初だけブロックとずっとブロック内の処理がわかりやすくなりました。




MicroPythonのコード

from microbit import *

# 消灯
def off():
	pin0.write_analog(0)
	pin1.write_analog(0)
	pin2.write_analog(0)

# 赤の点灯
def red():
	pin0.write_analog(255)
	pin1.write_analog(0)
	pin2.write_analog(0)

# 緑の点灯
def green():
	pin0.write_analog(0)
	pin1.write_analog(255)
	pin2.write_analog(0)

# 赤の点灯
def blue():
	pin0.write_analog(0)
	pin1.write_analog(0)
	pin2.write_analog(255)

# 初期化 消灯
off()

while True:
	red()
	sleep(1000)
	green()
	sleep(1000)
	blue()
	sleep(1000)

関数について:タートルグラフィックスで共通箇所を関数でまとめてみよう

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

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