Lieber Besucher, herzlich willkommen bei: Das Wettringer Modellbauforum. Falls dies Ihr erster Besuch auf dieser Seite ist, lesen Sie sich bitte die Hilfe durch. Dort wird Ihnen die Bedienung dieser Seite näher erläutert. Darüber hinaus sollten Sie sich registrieren, um alle Funktionen dieser Seite nutzen zu können. Benutzen Sie das Registrierungsformular, um sich zu registrieren oder informieren Sie sich ausführlich über den Registrierungsvorgang. Falls Sie sich bereits zu einem früheren Zeitpunkt registriert haben, können Sie sich hier anmelden.
..., einen 16hz Quarz anschließen und 2 Widerstände waren es mein ich.
Zitat
// Sketch fuer B-17G Flying Fortress
// hier werden die Bauteile den Anschlüssen auf dem Arduino zugewiesen
int positionslicht = 8; // Positionslichter
int innenlicht = 7; // Innenbeleuchtung
int scheinwerfer = 10; // Landescheinwerfer
int kennungrot = 0; // Kennungslicht Rot
int kennungweiss = 1; // Kennungslicht Weiss
int kennunggruen = 2; // Kennungslicht Gruen
int sound = 13; // Soundmodul
int motorPin1 = 3; // PWM-Signal Motor 1
int motorPin2 = 5; // PWM-Signal Motor 2
int motorPin3 = 6; // PWM-Signal Motor 3
int motorPin4 = 9; // PWM-Signal Motor 4
void setup() {
// Hier wird bestimmt, wie sich die Anschlüsse zu verhalten haben
pinMode(positionslicht, OUTPUT);
pinMode(innenlicht, OUTPUT);
pinMode(scheinwerfer, OUTPUT);
pinMode(kennungrot, OUTPUT);
pinMode(kennungweiss, OUTPUT);
pinMode(kennunggruen, OUTPUT);
pinMode(sound, OUTPUT);
pinMode(motorPin1,OUTPUT);
pinMode(motorPin2,OUTPUT);
pinMode(motorPin3,OUTPUT);
pinMode(motorPin4,OUTPUT);
}
void motorSchalten(int pin, boolean state, long warten) // Motoren langsam starten und Stop
{
digitalWrite(pin,LOW);
if (state==HIGH)
{
for (int i=0; i<17; i++)
{
analogWrite(pin, i);
delay(50);
}
}
delay(warten);
}
void motorSchalten1(int pin, boolean state, long warten) // Motoren nach Stop (motorschalten) durchstarten
{
digitalWrite(pin,LOW);
if (state==HIGH)
{
for (int i=17; i<220; i++)
{
analogWrite(pin, i);
delay(50);
}
}
delay(warten);
}
void digiSchalten(int pin, boolean state, long warten)
{
digitalWrite(pin, state);
delay(warten);
}
void loop()
{
digiSchalten(sound, HIGH, 1000); // Soundmodul stoppen. Wurde bei mir gebraucht, da das ELV-Modul einen Autostart hat!
digiSchalten(sound, LOW, 100);
digiSchalten(innenlicht, HIGH, 8000); // mit z.Bsp. 8000 lege ich fest, wann der nächste Befehl startet
digiSchalten(positionslicht, HIGH, 18000);
digiSchalten(sound, HIGH, 1000); // Soundmodul starten
digiSchalten(sound, LOW, 100);
// Die Motorbefehle gibt es für jeden Motor zweimal! 1.Befehl: Motor langsam hochfahren, ganz kurz stoppen, und mit zweitem Befehl wieder starten und Volllast!
motorSchalten(motorPin1,HIGH, 16000);
motorSchalten(motorPin1,LOW, 500);
motorSchalten1(motorPin1, HIGH, 0);
motorSchalten(motorPin2,HIGH, 8000);
motorSchalten(motorPin2,LOW, 500);
motorSchalten1(motorPin2, HIGH, 0);
motorSchalten(motorPin3,HIGH, 6000);
motorSchalten(motorPin3,LOW, 500);
motorSchalten1(motorPin3, HIGH, 0);
motorSchalten(motorPin4,HIGH, 6000);
motorSchalten(motorPin4,LOW, 500);
motorSchalten1(motorPin4, HIGH, 28000);
digiSchalten(scheinwerfer, HIGH, 32000);
digiSchalten(scheinwerfer, LOW, 32000);
digiSchalten(kennungrot, HIGH, 10000);
digiSchalten(kennunggruen, HIGH, 100);
digiSchalten(kennungweiss, HIGH, 8000);
digiSchalten(kennungrot, LOW, 9000);
digiSchalten(kennungweiss, LOW, 9000);
digiSchalten(kennunggruen, LOW, 32000);
digiSchalten(sound, HIGH, 1000);
digiSchalten(sound, LOW, 100);
motorSchalten1(motorPin1, LOW, 0);
motorSchalten1(motorPin1, LOW, 0);
motorSchalten1(motorPin2, LOW, 0);
motorSchalten1(motorPin3, LOW, 0);
motorSchalten1(motorPin4, LOW, 1000);
digiSchalten(positionslicht, LOW, 1500);
digiSchalten(innenlicht, LOW, 100);
while(1); // Durch den While-Befehl wartet das Board nach Ablauf des Programms auf einen Reset (Knopfdruck) um das Programm neu zu starten.
}
Aber kapiert ... hab ich das auch noch nicht so recht
Forensoftware: Burning Board®, entwickelt von WoltLab® GmbH