■焦電センサとは
焦電式赤外線センサのこと
温度の変化に応じてあるセラミックの表面に帯電する
電化が増減する焦電効果という現象を利用している。
検出範囲はセンサによって異なる
複数組み合わせたり、筒に入れて狭めたりするとよい
ここではNaPiOn AMN31112 最大検出5mを用いる
■コード
import processing.funnel.*;
final int TIMEOUT = 3000;
final int ONEMINITE = 1000 * 60;
Arduino arduino;
Pin sensorPin;
Pin ledPin;
boolean isActive = false;
int lastActive = 0;
void setup(){
size(500,500);
PFont font = createFont("CourierNewPSMT", 18);
textFont(font);
Configuration config = arduino.FIRMATA;
config.setDigitalPinMode(2, Arduino.IN);
config.setDigitalPinMode(13, Arduino.OUT);
arduino = new Arduino(this, config);
sensorPin = arduino.digitalPin(2);
ledPin = arduino.digitalPin(13);
}
void draw() {
int elapsedTime = millis() - lastActive;
background(0);
text("State: " + (isActive ? "Active" : "Inactive"),10,20);
text("Elapsed time:" + elapsedTime, 10, 50);
if (!isActive && (elapsedTime > TIMEOUT)) {
ledPin.value = 0;
}
// reset elapsedTime
if (elapsedTime > ONEMINITE) {
elapsedTime = 0;
}
}
void risingEdge(PinEvent e) {
if (e.target == sensorPin) {
ledPin.value = 1;
isActive = true;
}
}
void fallingEdge(PinEvent e) {
if (e.target == sensorPin) {
lastActive = millis();
isActive = false;
}
}
■BB
BB 回路図はNaPiOnがなかったため別の焦電センサで代替
(抵抗値も違う可能性大)
■回路図