Skip to content

Samples_GPIO

Ko-ichiro Sugiyama edited this page Aug 7, 2023 · 11 revisions

はじめに

GPIO クラスのメソッドについては,Class_GPIO を参照されたい.

L チカ

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 を繰り返す.

L チカ (2)

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 を繰り返す.

L チカとスイッチ

スイッチ(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 にしている.

Clone this wiki locally