Hallo Arduino Gemeinde,
Ich bin einer von insgesamt sechs Lach(f)alten, einer entstehenden Altenwohngemeinschaft.
Wir sind im Besitz von zwei funktionierenden Flipperautomaten, die unser zukünftiges Wohnzimmer und den Raucherraum (Ja, wir Rauchen...!) verschönern sollen.
Die alten Daddelkisten ziehen einen aber derart in ihren Bann, dass wir auf die Idee gekommen sind, selbst einen zu bauen. Wir machen das Ganze in modularer Bauweise, da ansonsten das Projekt allein von der Komplexität her, von vornherein zum Scheitern verurteilt wäre(siehe viele andere Flipper Selbstbau Posts).
Im Moment geht es um ein sogenanntes Droptarget.
Wer schonmal geflippert hat, weiß vermutlich schon vom Namen her wie es funktioniert.
Unser Droptarget besteht aus acht rechteckigen Trefferscheiben, die wenn sie getroffen wurden, in die Spielfläche versenkt werden. Das Zählwerk addiert jedes mal einen entsprechenden Wert auf.
Nach der Spielrunde stellt ein starker Hubmagnet die Targets wieder auf.
Bei unserem Selbstbau fallen die Targets jeweils in eine Gabellichtschranke die ein TTL Signal ausgibt.
Jedes Target soll jetzt a) eine dazugehörende Spielfeldlampe dauerhaft einschalten (ledPin1 bis 8)
b) einen kurzen Zählimpuls ausgeben (erstmal noch nicht definiert)
c) ein Audioboard triggern (audiopin1)
Sind alle Targets getroffen soll das letzte Target einen zweiten (anderen)Audiojingle triggern und mit einer Zeitverzögerung den Resetmagneten ansteuern. Jetzt gehen die Spielfeldleuchten aus. Das Spiel beginnt von vorn...
Das Ganze (also nur das Droptarget!) wird über einen Nano gesteuert.
Die Platine ist fertig und die Lichtschranken funktionieren, nur mit dem Sketch klemmt's.
Wir sind absolute Neulinge was Arduinos und Co. angeht, vielleicht könnt ihr uns weiterhelfen.
void setup() {
pinMode (ledPin1, OUTPUT);
pinMode (audioPin1, Output);
pinMode (lichtschrankePin1, INPUT);
}
void loop() {
lichtschrankeStatus1 = digitalRead(lichtschrankePin1);
if(lichtschrankeStatus1 == HIGH)
digitalWrite(ledPin1, HIGH);
else
digitalWrite(ledPin1, LOW);
}
So werden die Lichtschranken (hier nur eine!) ausgelesen und die Spielfeldlampen eingeschaltet, also ganz simpel.
Füge ich jetzt hier meinen audioPin1 mit anschliessendem Delay(500) in die Schleife, so wird mein Sound ständig getriggert, weil diese ja immer wieder durchlaufen wird.
Wie stellen ich es es an, dass bei Betätigung der Lichtschranke der audioPin1 nur einmal getriggert wird?
Gruß,
Die Lach(f)alten