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 秒おきに点滅させるプログラムは以下のように書けば良い.

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

L チカとスイッチ

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

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