Stap 4: Microcontroller Code
Hier is wat voorbeeldcode die u gebruiken kunt om het project te starten.
U kunt kopiëren en plakken in een nieuwe schets of u kunt het downloaden van het bijgevoegde bestand.
Vervolgens uploaden naar je board.
int alarmPin = 2; Piëzo-zoemer aangesloten op digital pin 2 int motionSensorPin = 13; Bewegingssensor aangesloten op digital pin 13 int resistanceSensorPin = 5; Centrum pin van weerstanden aangesloten op analot pin 5
int sensorHoldTime = 2000; Tijd die weerstand moet binnen het bereik te activeren van het alarm int resistanceSetValue = 512; Instellen voor weerstand waarde int resistanceSensorValue = 0; Input weerstand lezen int motionSensorState = laag; Opslag of beweging dected int armState is = laag; Is het alarm gewapend int triggerState = laag; Is het alarm geactiveerde unsigned long currentTime = 0; huidige tijd int delayTime = 10000; De wachttijd tussen de opsporing van de motie en alarm unsigned long activateTime = 0; winkels-tijd die het alarm wordt geactiveerd
void setup {pinMode (alarmPin, OUTPUT); / / Hiermee stelt u de digitale pen 2 als uitvoer pinMode (motionSensorPin, INPUT); / / Hiermee stelt u de digitale pin 13 als invoer Serial.begin(9600);}
void loop {currentTime = millis(); resistanceSensorValue = analogRead(resistanceSensorPin); / / leest weerstand waarde
Als (abs (resistanceSensorValue - resistanceSetValue) < 10) / / als resistentie in de streefzone, het alarm activeren {delay(sensorHoldTime); resistanceSensorValue = analogRead(resistanceSensorPin); als (abs (resistanceSensorValue - resistanceSetValue) < 10) {armState =! armState; / / knevels gewapende staat triggerState = laag;
if(armState == High) / / Count down vertraging na het inschakelen van het alarm {Serial.println(); Serial.println("Arming");
for (int i = 10; ik > 0; ik--) {Serial.println(i); delay(1000);} Serial.println("Armed"); }
if(armState == low) / / ontwapenen alarm met vertraging {Serial.println(); Serial.println("disarming"); delay(5000); } } }
motionSensorState = digitalRead(motionSensorPin); uitvoer van bewegingssensor lezen
Als (armState == HIGH & & motionSensorState == HIGH) / / als beweging wordt gedetecteerd, en systeem is gewapend {als (triggerState == LOW) {digitalWrite (alarmPin, hoge); //notification pieptoon eraan om te schakelen de alarm-delay(100), digitalWrite (alarmPin, laag); triggerState = hoog; activateTime = currentTime; Serial.println("triggered"); Serial.println ("Alarm klinkt in 10 seconden"); } }
Als (triggerState == HIGH & & (currentTime > activateTime + delayTime)) //sound alarm als het niet is gedeactiveerd tijdig {Serial.println("Alarm") digitalWrite (alarmPin, hoge); delay(500); digitalWrite (alarmPin, laag); delay(500);}
}