部品 · 読了まで4分

Arduinoセンサーガイド:よく使われる12種類のセンサー

Arduinoでよく使われるセンサー:DHT11、DHT22、HC-SR04、LDR、PIR、MQ-2、NTC、炎センサー、土壌水分センサー、RFIDなど。何を測るのか、どう配線するのか、どこに注意すべきかを解説します。

センサーは、Arduinoが外の世界を感じ取るための部品です。センサーは測った物理量(温度、距離、光、ガス)を、Arduinoが読み取れる信号に変えます。このガイドでは、よく使われるセンサーとその役割、配線するときの注意点を紹介します。

DHT11
DHT11
HC-SR04
HC-SR04
LDR
LDR

センサーの出力の種類:アナログ、デジタル、通信方式

  • アナログセンサー(LDR、ポテンショメーター、NTC、MQガスセンサー)は値を電圧で出力し、analogReadで0〜1023として読み取ります。
  • デジタルセンサー(PIR、炎センサー、リードスイッチ)は「ある/ない」だけを伝え、digitalReadでHIGH/LOWとして読み取ります。
  • 通信方式のセンサー(DHT22、BMP280、RC522)はI2C、SPI、または独自のプロトコルでデータを送ります。たいていライブラリが必要です。

温度・湿度センサー

DHT11
DHT11
DHT22
DHT22
DS18B20
DS18B20
BME280
BME280
NTCサーミスタ
NTCサーミスタ
センサー測定対象精度メモ
DHT11温度+湿度±2 °C、±5%安い、1秒に1回測定
DHT22温度+湿度±0.5 °C、±2〜5%より高精度で測定範囲が広い
NTCサーミスタ温度キャリブレーション次第アナログ、とても安い
DS18B20温度±0.5 °C防水タイプあり、1本の信号線
BME280温度+湿度+気圧±1 °C、±3%I2C、気象ステーションに最適
DHTセンサーを1秒に1回より頻繁に読もうとしないでください。誤った値や空の値(nan)が返ってきます。読み取りの間隔は2秒以上あけましょう。

距離センサー:HC-SR04

HC-SR04は音波を出し、反響が戻ってくるまでの時間を測ります。測定範囲はおよそ2〜400 cmです。パーキングセンサー、障害物をよけるロボット、水位計などの基本になる部品です。5 Vで動作するので、ESP32やPicoで使うときはECHOピンに分圧回路を入れてください。

光センサー:LDR

LDR(フォトレジスタ)は、明るいところで抵抗値が下がる部品です。10 kΩの抵抗と組み合わせて分圧回路を作り、アナログピンで読み取ります。ナイトライト、自動ブラインド、レーザー警報機などのプロジェクトで使われます。正確な照度(ルクス)を測るなら、BH1750のようなI2Cセンサーが向いています。

人感センサー:PIR(HC-SR501)

PIRセンサーは、人の体が出す熱の変化を検知し、動きを見つけると出力をHIGHにします。2つのポテンショメーターで、感度(3〜7 m)と出力がオンのままになる時間を調整できます。電源を入れてから、約1分のウォームアップ時間が必要です。

PIR人感センサー

ガスセンサーと炎センサー

MQ-2
MQ-2
MQ-135
MQ-135
炎センサー
炎センサー
センサー検知するもの
MQ-2煙、LPG、メタン、水素
MQ-4メタン(天然ガス)
MQ-7一酸化炭素
MQ-135空気の質(アンモニア、CO2などのガス)
炎センサー炎が出す赤外線
MQセンサーや炎センサーは、学習や実験のためのものです。家庭の安全には、認証を受けた煙・ガス・一酸化炭素の警報器を使ってください。

そのほかによく使われるセンサー

土壌水分センサー
土壌水分センサー
リードスイッチ
リードスイッチ
RC522 RFID
RC522 RFID
赤外線受信モジュール
赤外線受信モジュール
ジョイスティック
ジョイスティック
KY-038サウンドセンサー
KY-038サウンドセンサー
  • 土壌水分センサー:自動水やりのプロジェクトに。静電容量式は腐食しないので長持ちします。
  • リードスイッチ:磁石が近づくと接点が閉じます。ドアや窓のセンサーに使われます。
  • RC522 RFID:カードやキーホルダー型タグのIDを読み取ります。ドアロックや出席管理システムに使われます。電源は必ず3.3 Vから取ってください。
  • 赤外線受信モジュール(VS1838B/TSOP):テレビのリモコンの信号を読み取ります。
  • ジョイスティック:ロボットやゲームのプロジェクトで使う、2軸のアナログ入力装置です。
  • サウンドセンサー:手をたたくとランプがつく、といったプロジェクトで音の大きさを検知します。

センサーを選ぶときのポイント

  1. 動作電圧:センサーに必要なのは5 Vか3.3 Vか。ボードのロジックレベルに合っているか。
  2. 出力の種類:アナログ、デジタル、I2C/SPIのどれか。ボードに使えるピンが足りるか。
  3. 精度と測定範囲:測りたい値がセンサーの範囲に入っているか。
  4. ライブラリ:Arduino IDE用に、最新で広く使われているライブラリがあるか。
  5. 使用環境:湿気、水、ほこり、高温に強いモデルが必要か。

センサーの値を安定させる

アナログセンサーでは、小さなゆらぎはよくあることです。何回か読み取って平均や中央値をとる、しきい値にヒステリシス(オン用とオフ用に別々のしきい値)を使う、表示の更新を1秒に数回にとどめる。これだけで値がずっと安定して見えます。電池で動かすセンサープロジェクトでは、測定の間隔を長くすると電池が目に見えて長持ちします。目安は電池寿命計算ツールで確認できます。

よくある質問

Arduinoに最適な温度センサーはどれですか?

始めるならDHT11で十分です。より正確に測りたいならDHT22かDS18B20、気圧も測りたいならBME280を選びましょう。

1台のArduinoにセンサーはいくつつなげますか?

ピンの数とセンサーの種類によります。I2Cセンサーは同じ2本の線を共有できるので、数十個つなぐこともできます。アナログセンサーの場合、Unoには6本、Megaには16本のアナログ入力があります。

センサーの値がずっと変わり続けるのはなぜですか?

ノイズ、長い配線、電源のゆらぎが原因です。何回かの測定値を平均し、配線を短くして、センサーの電源に100 nFのコンデンサを追加してください。

5 VのセンサーをESP32につないでもいいですか?

センサー自体は5 Vで動かせますが、出力信号はESP32に入る前に3.3 Vまで下げる必要があります。分圧回路かレベル変換モジュールを使ってください。3.3 V対応版があるセンサーもあります。

アナログセンサーの値を実際の単位に変換するには?

まず読み取った値を電圧に変換し(値 × 5 / 1023)、次にセンサーのデータシートにある式で、温度、明るさ、ガス濃度などの実際の単位にします。キャリブレーションが必要なセンサーもあります。

全プロジェクトを見る
DHT11で温度と湿度を測定
#55中級

DHT11で温度と湿度を測定

部屋の温度は何度で、空気は湿っているでしょうか、それとも乾燥しているでしょうか?DHT11センサーが温度と湿度を測定し、Arduinoが2行のLCDディスプレイに値を表示して、数秒ごとに更新します。センサーに異常があればエラーメッセージが表示されます。自分だけの小さな気象観測装置を作る第一歩です。

4.7(47)
73
HC-SR04で作る駐車センサー
#28中級
プレミアム

HC-SR04で作る駐車センサー

車の駐車センサーを小さく再現します。物体が近づくほど、ビープ音の間隔が短くなります。距離センサーが前方の物体までの距離を測り、20センチメートルより遠ければ緑のLEDが点灯します。近づくと赤いLEDが点滅してブザーが鳴り、さらに近づくほど警告の間隔が短くなります。車が壁にぶつからずに駐車できる仕組みを、机の上で確かめられます。

4.8(64)
85
LDRで作る常夜灯
#12初級

LDRで作る常夜灯

暗くなると自動で点灯し、朝になると消灯する小さな常夜灯です。光センサーが部屋の明るさを測定し、Arduinoが十分に暗くなったらLEDを点灯させ、明るくなったら消灯させます。街灯が夕方になると自動で点灯する仕組みも理解できます。

4.8(102)
205
人感センサーで動きを検出
#24初級
プレミアム

人感センサーで動きを検出

誰かが部屋に入ると知らせる、シンプルな見張り役です。人感センサーが人体から放出される熱を捉え、Arduinoは動きがある間LEDを点灯させ、動きが止まると消灯させます。玄関先で自動点灯する照明や、警報システムの基本となる仕組みです。

4.6(47)
67
ガスセンサーの使い方
#51初級
プレミアム

ガスセンサーの使い方

キッチンのガス漏れに人より先に気づく小さな見張り役です。ガスセンサーは空気中のガスを常に監視します。異常がないときは緑色のLEDが点灯し、ガス濃度が一定の値を超えると赤色のLEDが点灯してブザーが鳴ります。家庭用ガス警報器の仕組みを実際に確かめられます。

4.6(37)
50
炎センサーの使い方
#50中級
プレミアム

炎センサーの使い方

キッチンや作業場で、人より先に火に気づく小さな見張り役です。炎センサーは火が放つ目に見えない光を検出します。異常がないときは緑色のLEDが点灯し、炎を検出すると赤色のLEDが点灯してブザーが鳴ります。このシンプルな回路で火災感知器の基本的な仕組みを学べますが、実際の感知器の代わりにはなりません。

4.6(33)
44
スマート水やりステーション
#83上級
プレミアム

スマート水やりステーション

旅行中も植物が枯れないよう、自動で水やりをするシステムです。土壌水分センサーで土の湿り具合を測定し、乾燥するとArduinoが給水ポンプを数秒間動かして、青いライトを点灯させます。水分が適切なときは緑のライトが点灯します。土がひどく乾燥すると、赤いライトが点滅し、ブザーが鳴って知らせます。

5.0(42)
57
RFIDの値の読み取り
#53初級
プレミアム

RFIDの値の読み取り

建物のキーフォブや入館カードには、見えない識別番号が保存されています。このプロジェクトでは、その番号を読み取ります。カードをRFIDリーダーに近づけると、Arduinoがカードの番号をコンピューターの画面に表示します。カード式のドアや錠のプロジェクトで、どのカードに解錠を許可するかを決めるための第一歩です。

4.7(47)
61