Studien Manager (5 / 5 steg)
Steg 5: programmering
Koden visas i bild och textinformation är i den nedan.
/*
WakeUp1
Läser en analog ingång på pin0, digital input från pin 12 och 13. Utdata är från högtalare.
Anslut PIR-Sensor, högtalare och fotomotstånd till arduino.
Skapad 12/07/13
av marymountparis
*/
int sensorPin = 0; //the analog pin ansluten till fotomotstånd produktion
int sensorValue = 0;
int pirPin = 5; //the digital pin ansluten till PIR-sensorn produktion
int högtalare = 12. //the digital pin ansluten till högtalaren
int ledPin = 13.
int maxval = 0; minsta värde att fotomotstånd kan upptäcka
int minval = 1023; högsta värde att photoresister kan upptäcka
int jag = 0;
int m = 0;
Rutinen installationsprogrammet körs en gång när du trycker på reset:
void setup() {
Serial.BEGIN(9600); initiera seriell kommunikation på 9600 bitar per sekund:
pinMode (sensorPin, ingång); Ställ in analoga pin som indata
pinMode (pirPin, ingång); Ställ in digital pin som indata
digitalWrite (pirPin, låg); Ställ in digital pin som indata
While(i<1000) {
int val=analogRead(sensorPin); hitta ljusstyrkan i rummet
IF(Val>maxval) {
Justera den undre gränsen för möjliga utbud när upptäcka den mindre brightnesss
maxval = val;
}
IF(val<minval) {
Justera den övre gränsen för möjliga utbud när upptäcka mer brightnesss
minval = val;
}
digitalWrite(ledPin,HIGH);
under initieringsprocessen är bifogas arduino's pin13-lampan tänd.
i ++;
}
noTone(12);
digitalWrite(ledPin,LOW);
LED bifogas arduino's pin13 stängs av när initieringsprocessen slutar.
}
void loop() {
enheten kontrollerar returen från både fotomotstånd och PIR-sensor.
kombinationen av resultaten ändra returen av enheten
sensorValue = analogRead(sensorPin);
IF(digitalRead(pirPin) == hög) {
om (sensorValue > = minval-100) {
m = 0; återställer räknaren
Ingenting händer när PIR-sensor gjorde upptäcka rörelse och rum är ljusa,
}
annat {
Tone(Speaker,150);
Delay(500);
noTone(12);
m = 0; återställer räknaren
När PIR-sensor gjorde upptäcka rörelse när rummet är mörkt,
högtalaren ger sig iväg för några sekunder.
Det fortsätter tills rummet blir ljusa eller PIR-sensor stoppar upptäcka rörelse.
}
}
annat {
om (sensorValue > = minval-30) {
IF(m>10000) {
Tone(Speaker,150);
Delay(500);
noTone(12);
m = 0; återställer räknaren
När PIR-sensorn inte upptäcka rörelse och rum är ljusa för viss tid,
högtalaren ger sig iväg för några sekunder.
Ljud fortsätter tills rummet blir mörka eller PIR-sensor detekterar rörelse.
}
}
}
m = m + 1. lägger upp räkningen till counter
}