Arduino UNOで作る静電容量式タッチLEDスイッチ - 簡単DIY
必要な部品と材料
| 部品名 | 数量 |
|---|---|
| Arduino UNO | 1 |
| LED(汎用) | 1 |
| ジャンパーワイヤー(汎用) | 4本 |
| 1MΩ抵抗 | 1 |
| アルミホイルまたはコイン | 1 |
使用ツール・サービス
- Arduino IDE
プロジェクト概要
ArduinoのCapacitive Sensingライブラリを使用し、コインをタッチセンサーとしてLEDのオン/オフを制御するプロジェクトです。静電容量センサーは、人体のような導電体や、空気とは著しく異なる誘電率を持つ物体を検出できます。
このライブラリを使うと、2つ以上のArduinoピンを静電容量センサーとして機能させ、人体の静電容量を検知できます。必要なのは中~高抵抗値の抵抗器、ワイヤー、先端にアルミホイル等を配置するだけです。最高感度では、センサーから数インチ離れた手や体を検知できます。

回路と動作原理
シンプルなRC回路(抵抗-コンデンサ)です。ある状態から別の状態へ移行する時間を測定することで、距離の近似値を得ます(人体の一般的な静電容量、高抵抗値、センサー材料の静電容量が既知のため)。高抵抗値の抵抗器は、十分に長い放電時間を確保するために使用します。
センサー材料には、コインやアルミホイルなどの金属物が使用可能です。
ソフトウェアプログラム
タッチによるライトのオン/オフは、Arduinoに書き込まれたプログラムで制御します。コードをアップロードする前に、Arduino公式サイトからCapacitive Sensorライブラリをインストールしてください。
ライブラリダウンロード
ハードウェアセットアップ
- 1MΩ抵抗をArduinoの2番ピンと4番ピンの間に接続
- プログラム上でピン4が受信ピンなので、コイン(静電容量センサーとして機能)をピン4に接続
- LEDをGNDと8番ピンの間に接続
テスト
センサーに触れると前の状態が切り替わり、LEDがオン/オフします。抵抗値を大きくすると感度が上がり、近接センサーのように動作します。
サンプルコード
#include <CapacitiveSensor.h>
CapacitiveSensor cs_2_4 = CapacitiveSensor(2,4); // 2-4ピン間に1M抵抗、ピン4がセンサー
int in = 2;
int out = 4;
int state = HIGH;
int r;
int p = LOW;
long time = 0;
long debounce = 200;
void setup() {
pinMode(4, INPUT);
pinMode(8, OUTPUT);
}
void loop() {
r = digitalRead(4);
if (r == HIGH && p == LOW && millis() - time > debounce) {
if (state == HIGH) state = LOW;
else state = HIGH;
time = millis();
}
digitalWrite(8, state);
p = r;
}
回路図
製造プロセス
- Raspberry PiでPIRモーションセンサーとLEDを制御
- Raspberry PiとDS18B20でマルチセンサー温度・光監視システムを構築
- Raspberry PiとTwilioで実現するトイレ占有センサー:音声通話とSMSで通知
- デジタル光センサー:Windows 10 IoT Coreで周囲光に応じてLEDを制御
- Firebase経由で2台のArduino間を温湿度データで連携するIoTチュートリアル
- ジェスチャー制御 RGB テーブルランプ – インタラクティブなハンズフリー照明
- Arduino Unoベースの人間検知レスキューロボット:センサー統合ステップバイステップ
- Arduinoで作る赤外線心拍センサー:低コスト・リアルタイム波形表示のステップバイステップガイド
- Android加速度センサーで操作するラジコン車両:Raspberry Pi・Arduino・モーターシールド連携
- ESP8266・Arduino・超音波センサーで作るスマートIoTジャー:リアルタイム中身監視
- ESP32で作るIoT環境モニター:温湿度・気圧・CO2をWebダッシュボードで可視化