マサルの備忘録

ハイオク仕様のトルクフルな備忘録

Arduinoで常夜灯的なアレを作った

スポンサーリンク

今までの話

Arduinoで常夜灯的なアレを作り始めた - マサルの備忘録

で、出来ました

こんな感じっす。
f:id:domomasarudesu:20150125010800j:plain

点灯式の模様。
f:id:domomasarudesu:20150125010831j:plain

まだ、ケースとかに入れてないので、なんか生々しいですね。

制御の内容

定期的にPIRからの入力をチェックして、動作を検知した場合だけフォトレジスタに電気を流して、分圧具合から明るさをチェック。暗い場合は一定時間、IKEAのLEDライトを点けます。
動作を検知してなかったり、明るかった場合はLEDライトを消します。

クソコードはこちら。

static int sLed = 12;
static int sCheckLed = 13;
static int sPir = 2;
static int sCdsPower = 3;
static int sCdsRead = 7;

void setup(){
  pinMode(sLed, OUTPUT);
  pinMode(sCheckLed, OUTPUT);
  pinMode(sPir, INPUT);
  pinMode(sCdsPower, OUTPUT);
}

void loop(){
  int value = digitalRead(sPir);

  if(value == HIGH){
    digitalWrite(sCheckLed, HIGH);
  }
  else{
    digitalWrite(sCheckLed, LOW);
  }  

  if(value == HIGH && isDark()){
    digitalWrite(sLed, HIGH);
    delay(30000);
  }
  else{
    digitalWrite(sLed, LOW);
    delay(1000);
  }
}

boolean isDark(){
  int analogInput;

  digitalWrite(sCdsPower, HIGH);
  analogInput = analogRead(sCdsRead);
  digitalWrite(sCdsPower, LOW);

  if(analogInput < 600){
    return true;
  }
  else{
    return false;
  }
}

今のところ、バッテリ駆動でございます。
エネループ2本を5Vにアップコン。駆動時間はこれから測る(笑)