Prototyypin rakennus viikko 2.

Arduinon testaamista PIR motion sensorin kanssa

– Sebastian Nikkonen
Otso Siniketo

Työvälineet:
– Arduino uno
– ledlamppuja
– hyppylankoja
– PIR motion sensor
– koekytkentälevy

Aloitimme testaamalla kaikkien työvälineiden toimintakunnon, suosittelemme tätä vahvasti ettei tule yllätyksiä myöhemmin.

Kytkimme aluksi yhden ledin kiinni, kuten alkuperäisessä mallissa oli tehty. Ensimmäinen kokeilu ei toiminut.

20140128_161835

Seuraavana teimme mallin, jossa palaa yksi ledi kun liikettä havaitaan. Vaikeutimme kuitenkin tehtävää hieman ja kytkimme kolme lediä kiinni:

20140128_174447

Video

Lähdekoodi:


int calibrationTime = 15;
long unsigned int lowIn;
long unsigned int pause = 5000;
boolean lockLow = true;
boolean takeLowTime;

int pirPin = 7;
int ledPin = 8;
int ledPin2 = 4;
int ledPin3 = 2;

void setup(){
Serial.begin(9600);
pinMode(pirPin, INPUT);
pinMode(ledPin, OUTPUT);
pinMode(ledPin2, OUTPUT);
pinMode(ledPin3, OUTPUT);
digitalWrite(pirPin, LOW);

Serial.print("calibrating sensor ");
for(int i = 0; i pause){
lockLow = true;
Serial.print("motion ended at "); //output
Serial.print((millis() - pause)/1000);
Serial.println(" sec");
delay(50);
}
}
}


void loop(){

if(digitalRead(pirPin) == HIGH){
digitalWrite(ledPin, HIGH);
digitalWrite(ledPin2, HIGH);
digitalWrite(ledPin3, HIGH);
if(lockLow){
lockLow = false;
Serial.println("---");
Serial.print("motion detected at ");
Serial.print(millis()/1000);
Serial.println(" sec");
delay(50);
}
takeLowTime = true;
}

if(digitalRead(pirPin) == LOW){
digitalWrite(ledPin, LOW);
digitalWrite(ledPin2, LOW);
digitalWrite(ledPin3, LOW);

if(takeLowTime){
lowIn = millis();
takeLowTime = false;
}
if(!lockLow && millis() - lowIn > pause){
lockLow = true;
Serial.print("motion ended at "); //output
Serial.print((millis() - pause)/1000);
Serial.println(" sec");
delay(50);
}
}
}

Lisenssi: GPL v2.
Lähteet:

http://terokarvinen.com/2013/aikataulu-%E2%80%93-prototyypin-rakentaminen-bus4tn007-5-alkukevat-2014

http://playground.arduino.cc/Code/PIRsense

Kategoria(t): Uncategorized. Lisää kestolinkki kirjanmerkkeihisi.

Jätä kommentti