Stap 2: Code
Hieronder is de code voor de Halloween-onderdeel van het programma. Wanneer iemand wandelingen door minder dan 2m weg en niemand door voor 1,5 minuut is verstreken, zullen de Tesla Coil inschakelen.int transistor = 13; //transistor base to resistor to pin 13unsigned long time = 0;int avgdistance = 0;void setup(){ Serial.begin(9600); //protip: plug in a serial lcd for quick testing sonarSetup(); pinMode(transistor, OUTPUT); delay(2000); //give time for everything to get ready for(int i = 0; i <= 30; i++) //get an average distance on how far away the other wall is { avgdistance += sonarPulseWidth(); } avgdistance /= 30; avgdistance -= 50;}void loop(){ int distance = sonarPulseWidth(); Serial.println(distance); if(distance < avgdistance && (time + 90000) < millis()) //distance has to be less than the avgdistance away //and can't have been triggered in the past 90 seconds { digitalWrite(transistor, HIGH); delay(500); //turn coil on for 1/2 second digitalWrite(transistor, LOW); time = millis(); }}
Ook is de code kan worden uitgevoerd van de sonar-sensor hieronder.
//Sonar GND to ground //Sonar +5 to +5 //Sonar TX -- Useless for this project //Sonar RX -- Useless for this project //Sonar AN -- Useless for this projectint sonarPW = 5; //Sonar PW to digital pin 5, 147uS per inch (2.54cm/in) //Sonar BW -- Useless for this projectvoid sonarSetup(){ pinMode(sonarPW, INPUT);}int sonarPulseWidth(){ return ((pulseIn(sonarPW, HIGH) / 147) * 2.54);}
U kunt de schets hieronder downloaden.