人感センサー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);
}