マイコン温度通知システムの製作3 Lチカ(LED点灯)

前回でESP32につないだ温度センサーを使い温度測定が実施できました。

ここからLEDを点灯(Lチカ)させていきます。

抵抗について

LEDに大きな電圧がかかるとLEDが壊れるので抵抗を接続する必要があります。

抵抗は何Ω必要か計算してみました。

  • Vsource電源電圧。3.3V
  • VfLEDの順方向電圧。1.8Vとする
  • IfLEDの推奨電流80mA
  • R:抵抗
  • R = (Vsource – Vf) / If = 18.75Ω

LEDの順方向電圧がわからなかったのでLEDの耐電圧で一番低い値を、電流もわからなかったのでLEDの推奨電流を採用しました。

電流計などがあればもっと正確な値を指定できると思います。

抵抗は余裕をもって47Ωのものを使いました。

接続

以下の写真のように、ESP32にセンサーや抵抗を接続します。

  • ESP32のGND:抵抗に接続
  • 抵抗:LEDの短足(カソード、陰極)に接続
  • LEDの長足(アノード、陽極):ESP32のGPIO 27に接続

LED点灯プログラム

以下の10秒間LEDを点灯させるプログラムを記述し、light.pyとしてローカルに保存します。

・light.py

from machine import Pin
import time

# LEDを接続
led = Pin(27, Pin.OUT)

led.value(1) # LEDをONにする

time.sleep(10) # 10秒待つ

led.value(0) # LEDをOFFにする

ampyを使い、このプログラムを実行します。

ampy --port /dev/tty.usbserial-0001 run light.py

点灯

以下の写真のようにLEDを点灯させることができました。

浮遊状態による意図せぬ点灯

別のピン(GPIO 14)にジャンパーワイヤーを差すと、プログラムで起動させた訳でもないのにLEDが薄く光ってしまいます。

これはマイコンの入力ピンが接続されていない浮遊状態で電位が不定になることが原因らしく、プログラムで明示的にLEDをOFFにするか、同じくプログラムで内部プルダウン/プルアップを有効にしてこれを防ぎます。

from machine import Pin
import time

LED_PIN = 14  # LEDを接続するGPIOピン番号

led = Pin(LED_PIN, Pin.OUT, Pin.PULL_DOWN)  # GPIOピンを出力モードに設定し、内部プルダウン抵抗を有効化

上記を実行すると点灯が消えました。

タイトルとURLをコピーしました