秋月電子で売られている人感センサーを三種類、試した。
今回、3Vという要件の素に試した。
SB412Aはしばしば見かけるが、3Vじゃ動かなかった。注に(安定化されている)とあり、通常は0.5Vくらいの差は必要だからさもありなん。
パナソニックのEKMC1601111は3Vで動いた。
しかし、アウト部分に10Kオーム程度のプルダウン抵抗(OUTとGNDの間)が必要だった。説明書見ても分かりづらいわ。

日本セラミックのPSUP7C-02-NCL-16-1は負論理で動く。
試したArduinoのサンプルコードをおいておく。
#define LED 11
#define SENS 2 // 2 or 3 pin
volatile boolean phase = false;
void detect(){
if (digitalRead(SENS) == 0) {
phase = true;
}else{
phase = false;
}
}
void setup() {
// put your setup code here, to run once:
Serial.begin(9600);
pinMode(LED, OUTPUT);
pinMode(SENS, INPUT);
delay(5000);
attachInterrupt(digitalPinToInterrupt(SENS), detect, CHANGE);
}
void loop() {
// put your main code here, to run repeatedly:
if (phase){
digitalWrite(LED,1);
}else{
digitalWrite(LED,0);
}
delay(1000);
}
安くて扱い安いのはパナソニックかな。好みですが。
それをmicrro:bitでテストしたプログラム。ポート番号の指定の仕方がむつかしい。
let _switch = 0
basic.forever(() => {
_switch = pins.digitalReadPin(DigitalPin.P1);
if (_switch == 1) {
basic.showIcon(IconNames.Confused)
} else {
basic.clearScreen()
}
basic.pause(1000)
})
P0はサウンド用に残しておく






