人感センサーAKE-1(RE-210)をarduinoに直結して人感してみた
AKE-1(RE-210)から直結でarduinoにて人感センサーしてみます。
このぐらいのならArduinoの10bitのADコンバーターでも動きますね。
■こんな感じで動きます。
前の記事と見た目変わらないので同じの入れました。(手抜き君)
https://youtu.be/fyyQKBOMuXg
■回路

■プログラム解説
arduino内蔵のADCコンバーターから受け取った電圧10回分の平均と直近の1回分を比較して
5mV違った場合に変化があった(人を検出)と判断してLEDを10秒間点灯します。
■プログラム
#define TABLE_MAX 10
float table[TABLE_MAX];
int table_idx=0;
void setup()
{
//
pinMode(13, OUTPUT);
//
Serial.begin(9600);
Serial.println("AKE-1(RE210)直結");
//table初期化
for(int i=0;i<TABLE_MAX;i++){
table[i]=0.0;
}
}
int led_count=0;
void loop()
{
//
float Volts = (int)analogRead(A0) * 3.3 / 1023.0 ;
Serial.println(String(Volts,5));
//Serial.print(" ,");
//Serial.println(adcValue);
//tableの平均を求める
float total = 0;
for(int i=0;i<TABLE_MAX;i++){
total = total + table[i];
}
float ave = total / TABLE_MAX;
//比較
if(Volts < (ave - 0.005)){
digitalWrite(13, HIGH);
led_count=0;
Serial.print("volt = ");
Serial.print(String(Volts, 5));
Serial.print(" ave = ");
Serial.println(String(ave, 5));
}
//tableに格納
table[table_idx]=Volts;
table_idx++;
if(table_idx>=TABLE_MAX){
table_idx = 0;
}
if(led_count>100){
digitalWrite(13, LOW);
}
led_count++;
delay(100);
}