Stap 7: Aansluiten van alles
Uploaden van de laatste Arduino schets hieronder naar de Pro Mini gebruik FTDI kabel of breakout board.
Soldeer verbindingen naar de Arduino Pro Mini zeer zorgvuldig volgens het schakeldiagram.
Circuit aan de onderkant van de ballon met behulp van kleine hoeveelheid folie of tape koppelen.
Op dit punt zullen circuit licht genoeg om te worden opgeheven door de ballon of gewoon het juiste gewicht te houden in evenwicht zijn. Aanpassen met een kleine hoeveelheid klei als circuit te licht is.
#include < SoftwareServo.h >
SoftwareServo myservo; maken van servo-object om te bepalen van een servo
SoftwareServo myservo2;
int architectengroep = 0;
int val = 0;
int wachten = 0;
int flyFor = 0;
lange flapTime = 0;
int angleMin = 0;
int angleMax = 120;
int upSpeed = 20;
int downSpeed = 1;
int buffer = 0;
Geluid variabelen
int potPin = 1; Selecteer de invoer pin voor correcte sensor
int ledPin = 13; Selecteer de pin voor de LED
int soundVal = 0;
VOID Setup
{
pinMode (ledPin, OUTPUT); de ledPin verklaren als uitgang
myservo.attach(2); hecht de servo op pin 2
myservo2.attach(4);
Serial.begin(9600); de seriële poort op 9600 bps te openen:
}
void loop
{
Servo
Als (flyFor < flapTime) {}
Als (wachten == 5) {}
Als (val < angleMin) {}
architectengroep = 1;
digitalWrite(ledPin,HIGH);
}
anders als (val > angleMax) {}
architectengroep = 0;
digitalWrite(ledPin,LOW);
}
Als (architectengroep == 0) {}
Val-= upSpeed;
} else {}
Val += downSpeed;
}
}
wacht ++;
Als (> 200 wachten)
wachten = 0;
myservo.write(val);
stelt u de positie van de servo volgens de geschaalde waarde
myservo2.write(120-val);
SoftwareServo::refresh();
flyFor ++;
} else {}
Geluid
soundVal = analogRead(potPin);
Serial.println("Listening...");
Als (soundVal > 1020) {}
Serial.println ("FREEAK OUT!");
upSpeed = 15;
downSpeed = 15;
angleMax = 45;
angleMin = 10;
flapTime = 6000;
}
else if (soundVal < 450 || soundVal > 750) {}
Als (buffer == 0) {}
Serial.println(soundVal);
upSpeed = willekeurige (1, 20); 1 tot 30
downSpeed = willekeurige (1, 30); / / 1 tot en met 30
angleMax = willekeurige (110, 120);
angleMin = willekeurige (30, 45);
flapTime = 10000 + willekeurige (5000, 10000);
flyFor = 0;
buffer = 15;
} else {}
buffer--;
}
}
}
}