Arduinoの電子工作で遊ぼう! その35 ~タッチセンサーを作ってみよう2~
(前回からの続きです)
今回はサードパーティのライブラリを使いますので、その準備からおこないます
① 下記のサイトから、CapacitiveSensorライブラリをダウンロードします
CapacitiveSensor-master.zipファイルをダウンロードします。
② Arduino IDEにインストールします
1)「スケッチ」-「ライブラリをインクルード」-「ZIP形式のライブラリをインストール」を選択
2)ダウンロードしたライブラリファイルを選択します
以上で、ライブラリの準備が完了です
それでは、プログラムを見てみましょう
このプログラムでは、タッチセンサーでLEDを点灯させます。
#include <CapacitiveSensor.h>
CapacitiveSensor capSensor = CapacitiveSensor(4,2);
int threshold = 1000;
const int ledPin = 12;
void setup() {
Serial.begin(9600);
pinMode(ledPin, OUTPUT);
}
void loop() {
long sensorValue = capSensor.capacitiveSensor(30);
Serial.println(sensorValue);
if(sensorValue > threshold){
digitalWrite(ledPin, HIGH);
}
else{
digitalWrite(ledPin, LOW);
}
delay(10);
}
1.ライブラリのインクルードと変数の宣言
#include <CapacitiveSensor.h>
CapacitiveSensor capSensor = CapacitiveSensor(4,2);
int threshold = 1000;
const int ledPin = 12;
#include <CapacitiveSensor.h>:CapacitiveSensorライブラリをインクルードします。このライブラリは静電容量センサーを簡単に扱うためのもので、タッチや近接を検出することができます。
CapacitiveSensor capSensor = CapacitiveSensor(4,2);:センサーを4番ピンと2番ピンに接続して利用する設定です。最初の引数(4)が「送信」ピンで、次の引数(2)が「受信」ピンです。
int threshold = 1000;:この閾値(しきいち)は、タッチや近接があったと見なすための基準値です。
const int ledPin = 12;:LEDが接続されているピンを指定します。このプログラムでは12番ピンが使われます。
2.setup()関数
void setup() {
Serial.begin(9600);
pinMode(ledPin, OUTPUT);
}
Serial.begin(9600);:シリアル通信を9600bpsで開始します。Serial.println()でセンサーの値を表示するために使います。
pinMode(ledPin, OUTPUT);:12番ピン(ledPin)を出力モードに設定します。これにより、LEDのオン・オフができるようになります。
3.loop()関数
void loop() {
long sensorValue = capSensor.capacitiveSensor(30);
Serial.println(sensorValue);
if(sensorValue > threshold){
digitalWrite(ledPin, HIGH);
}
else{
digitalWrite(ledPin, LOW);
}
delay(10);
}
long sensorValue = capSensor.capacitiveSensor(30);:capacitiveSensor()関数は、静電容量を測定して静電容量の値を返します。引数の30は読み取り回数を表しており、回数を多くすると精度が高くなる代わりに速度が遅くなります。
Serial.println(sensorValue);:センサーの値をシリアルモニタに出力して表示します。この値を使って、しきい値(threshold)を超えたかどうかを判定します。
if(sensorValue > threshold) { ... } else { ... }:センサー値がしきい値を超えた場合にLEDを点灯し、そうでない場合は消灯します。
delay(10);:10ミリ秒の遅延を入れ、センサーの読み取りが過剰にならないようにします。
それでは、試してみましょう
アルミホイルの部分を触ってみます
LEDが点灯しました!
成功です!
この記事が気に入ったらサポートをしてみませんか?