Stap 6: Arduino Code
De indeling van de code is eerst het alarmsignaal is lezen en zodra die groter is dan 15 zet de lichten en de status van de druksensor wordt gecontroleerd. Het gebruikt de vertragingstijd om één keer controleren waarop is gedrukt voor langer dan de 5s LEDs uitschakelen en het alarm is uitgeschakeld. De wekker (we hebben het over een stel interval voor demodoeleinden maar deze kan gemakkelijk worden aangepast), de LED's, evenals de velostat sensor wordt uitgevoerd.
Hier is een voorbeeld van onze code:
Opmerking: om zich te vergewissen van de druk van de velostat, door te raken "CTRL + SHIFT + F" in de Arduino-venster, ziet u de variaties in druk als u op de velostat onttrekken. Dat is hoe we bepaald de hoeveelheid druk die nodig is om toe te passen om het alarm uitgeschakeld.
int fsrAnalogPin = A3; int LEDpin = 11; int LEDpin2 = 12; int LEDpin3 = 9; int LEDpin4 = 10; int LEDpin5 = 8; int LEDpin6 = 7; int fsrReading; // the analog reading from the FSR resistor dividerint alarmPin = 3; int alarmState; int alarmOff =6;void setup(void) { Serial.begin(9600); // We'll send debugging information via the Serial monitor pinMode(LEDpin, OUTPUT); pinMode(LEDpin2, OUTPUT); pinMode(LEDpin2, OUTPUT); pinMode(LEDpin3, OUTPUT); pinMode(LEDpin4, OUTPUT); pinMode(LEDpin5, OUTPUT); pinMode(LEDpin6, OUTPUT); }void loop(){ alarmState = analogRead(alarmPin); Serial.print("alarm ="); Serial.println(alarmState); fsrReading = analogRead(fsrAnalogPin); Serial.print("Analog reading = "); Serial.println(fsrReading); if (fsrReading >= 500) { delay(5000); digitalWrite(LEDpin, LOW); digitalWrite(LEDpin2, LOW); digitalWrite(LEDpin3, LOW); digitalWrite(LEDpin4, LOW); digitalWrite(LEDpin5, LOW); digitalWrite(LEDpin6, LOW); analogWrite(alarmOff, LOW); delay(10000); digitalWrite(LEDpin,HIGH); digitalWrite(LEDpin2, HIGH); digitalWrite(LEDpin3, HIGH); digitalWrite(LEDpin4, HIGH); digitalWrite(LEDpin5, HIGH); digitalWrite(LEDpin, HIGH); analogWrite(alarmOff,200); Serial.print("alarm ="); Serial.println(alarmState); } delay(500); }