Arduinoで作った常夜灯的なアレ(通称アレ)の仕様をユーザーフィードバックに基いて変更してみた
ユーザーの声が直接聞けるっていいですね。
前回まで。
masaru.hateblo.jp
最近のアレの様子
結局こんな感じで基板むき出しのまま。
ですが、実はかなり重宝しています。
夜のおむつ交換などで大活躍
生理現象には太刀打ちできません。
ただ、部屋全体を明るくしてしまうと目を覚ましてしまうし・・・的なシチュエーションで役立っています。ただ、最近ユーザーの一部(嫁)から
「もうすこし点灯時間を長くできないの?」
という市場の声を尊重し、仕様変更をしてみました。
動作を検知してからLEDを点灯する時間を30秒から5分に延長。
おむつ交換作業はそんなに体を動かさないのと、交換も結構時間がかかるため、とりあえず5分くらいに設定。
結局こんな感じ
static int sLed = 12; static int sPir = 2; static int sCdsPower = 3; static int sCdsRead = 7; static int sPirPower = 4; boolean isPirRunning = false; boolean isLedOn = false; void setup(){ pinMode(sLed, OUTPUT); pinMode(sPir, INPUT); pinMode(sCdsPower, OUTPUT); pinMode(sPirPower, OUTPUT); } void loop(){ if(isDark() || isLedOn){ turnOnPir(); if(detectedMotion()){ turnOnLed(); delay(300000); } else{ turnOffLed(); delay(1000); } } else{ turnOffPir(); turnOffLed(); delay(1000); } } boolean isDark(){ int analogInput; digitalWrite(sCdsPower, HIGH); analogInput = analogRead(sCdsRead); digitalWrite(sCdsPower, LOW); if(analogInput < 600){ return true; } else{ return false; } } void turnOnPir(){ if(isPirRunning){ return; } isPirRunning = true; digitalWrite(sPirPower, HIGH); delay(10000); } void turnOffPir(){ if(!isPirRunning){ return; } isPirRunning = false; digitalWrite(sPirPower, LOW); } boolean detectedMotion(){ if(!isPirRunning){ return false; } int value = digitalRead(sPir); if(value == HIGH){ return true; } else{ return false; } } void turnOnLed(){ digitalWrite(sLed, HIGH); isLedOn = true; } void turnOffLed(){ digitalWrite(sLed, LOW); isLedOn = false; }