-
Notifications
You must be signed in to change notification settings - Fork 1
Samples_GPIO
Ko-ichiro Sugiyama edited this page Aug 7, 2023
·
11 revisions
GPIO クラスのメソッドについては,Class_GPIO を参照されたい.
LED (GPIO 13) を 1 秒おきに点滅させるプログラムは以下のように書けば良い.
led1 = GPIO.new( 13, GPIO::OUT ) loop do led1.write(1) sleep 1 led1.write(0) sleep 1 end
-
1 行目: インスタンスの作成. LED の接続されているピン (GPIO 13) を出力に設定.
-
GPIO クラスが定義されたファイルは, mrblib/models/gpio.rb である
-
mrblib/models 以下に置かれているクラスについては明示的に require しなくて良い.
-
-
3~9 行目: loop 文で led の on と off を繰り返す.
PIN クラスを用いて「L チカ (1)」と同様のプログラムを作成できる.
led1 = PIN.new( 13, PIN::OUT ) loop do led1.on sleep 1 led1.off sleep 1 end
-
1 行目: インスタンスの作成. LED の接続されているピン (GPIO 13) を出力に設定.
-
GPIO クラスが定義されたファイルは, mrblib/models/pin.rb である
-
mrblib/models 以下に置かれているクラスについては明示的に require しなくて良い.
-
-
3~9 行目: loop 文で led の on と off を繰り返す.
スイッチ(GPIO 34)と LED (GPIO 13) を連動させる場合には,以下のようなプログラムを書けば良い.
led1 = GPIO.new( 13, GPIO::OUT ) sw1 = GPIO.new( 34, GPIO::IN, GPIO::PULL_UP ) loop do if (sw1.read == 1) led1.write(1) else led1.write(0) end sleep 1 end
-
1 行目: LED の接続されているピン (GPIO 13) を出力に設定.
-
2 行目: スイッチの接続されているピン (GPIO 34) を入力に設定. プルアップする.
-
4~13 行目: loop 文でスイッチがオン (値が1) の時に led を on にしている.