Samples_GPIO - gfd-dennou-club/mrubyc-esp32 GitHub Wiki

はじめに

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

電気回路をマイコンに置き換えた時のイメージ

出力

image

入力

スイッチの状態を取得する場合は,PULL_UP回路(電源→抵抗(10kΩ程度 )→スイッチの手前)が必須であり,GPIO のピンによって PULL_UP 抵抗を内蔵するものもある.以下の例では PULL_UP 抵抗を内蔵しないピンを使う場合を想定して,マイコンの外部に PULL_UP 回路を付した形としている. PULL_UP 抵抗内蔵のピンを使う場合であれば,マイコンの内に抵抗が存在するような回路図となる.

image

L チカ

LED (GPIO 13) を 1 秒おきに点滅させるプログラムは以下のように書けば良い.

      gpio13 = GPIO.new( 13, GPIO::OUT )  #インスタンスの作成. LED の接続されているピン (GPIO 13) を出力に設定.
      
      loop do
        gpio13.write(1)  # pin の値をハイレベルに
        sleep 1        # 1 秒待つ
      
        gpio13.write(0)  # pin の値をローレベルに
        sleep 1        # 1 秒待つ
      end

L チカとスイッチ

スイッチ(GPIO 34)と LED (GPIO 13) を連動させる場合には,以下のようなプログラムを書けば良い.

     gpio13 = GPIO.new( 13, GPIO::OUT )                 #インスタンスの作成. LED の接続されているピン (GPIO 13) を出力に設定.
     gpio34  = GPIO.new( 34, GPIO::IN | GPIO::PULL_UP ) # スイッチの接続されているピン (GPIO 34) を入力に設定. プルアップする.
     
     loop do
        if (gpio34.read == 0) #スイッチのピンの値がローレベルの時
          gpio13.write(1)       # LED のピンの値をハイレベルに
        else
          gpio13.write(0)       # LED のピンの値をローレベルに
        end
     
        sleep 1
     end