Lansera plattform för halm-raketer styrs av arduino (6 / 9 steg)
Steg 6: Koden! (utan LCD)
med denna kod varaktighet flyg visas på skärmen seriell, så för att mäta flygtiden du / / måste ha en bärbar dator ansluten till din krets
CONST int launchPIN = 2;
int redLED1 = 3; int redLED2 = 4; int redLED3 = 5; int blueLED = 6; byte högtalare = 9. char flagga = 0; CONST int switchPin = 12; int buttonState = 0; byte buttonflag = sant; lång starttid, längd;
void setup() {
Serial.BEGIN(9600);
pinMode(redLED1,OUTPUT);
pinMode(redLED2,OUTPUT); pinMode(redLED3,OUTPUT); pinMode(blueLED,OUTPUT); pinMode(speaker,OUTPUT); pinMode(7,OUTPUT); pinMode (launchPIN, ingång); pinMode(switchPin,INPUT); digitalWrite(switchPin,HIGH); pinMode(13,OUTPUT); }
void loop() {
digitalWrite(13,HIGH);
buttonState = digitalRead(launchPIN);
if (buttonState == hög)
{ om (flagga == 0)
{delay(1000); blinkLED(redLED1,1000); blinkLED(redLED2,1000); blinkLED(redLED3,1000); för (int j = 0; j < 6; j ++)
{playTone(477,300); digitalWrite(6,HIGH); delay(100); playTone(15289,300); digitalWrite (6, låg); delay(100);}
digitalWrite(6,HIGH); playTone(477,2000); digitalWrite(6,LOW); relayON(); startTime = millis(); Flagga = 1; } }
annat {flagga = 0;}
if (flaggan == 1) {delay(300);} relayOFF(); int timestate=digitalRead(switchPin);
if (timestate == 0) {varaktighet = millis ()-startTime-300; Serial.println ("raket flygtid ="); Serial.println(duration);}
}
void blinkLED (int pin, int längd)
{digitalWrite(pin,HIGH); delay(duration); digitalWrite(pin,LOW); delay(duration);}
void relayON () {digitalWrite(7,HIGH);}
void relayOFF () {digitalWrite(7,LOW);}
void playTone (int period, int audduration) {int puls = period /2; för (länge jag = 0; jag