Sehr geehrte Damen und Herren,
Ich bin noch Anfänger und benötige eure Hilfe.
Meine Situation:
Ich baue eine Steuerung für ein PKW welche durch gewisse Signale, Töne erzeugen soll, soweit sogut. Die Ansteuerung ist auch erfolgreich, aber leider sind die Signale alle Dauersignale wenn diese geschaltet werden, dadurch wird der Ton im loop abgespielt. Gibt es eine Möglichkeit trotz des Dauerhaften HIGH Signals das der Ton nur einmal ertönt. Es soll ein Ton bei HIGH und bei LOW ertönen. Beide Zustände liegen je nach Fahrt länger oder kürzer an deshalb darf trotz länger anhaltender Signale der Ton nur einmal abgespielt werden.
Der Code:
#include "Arduino.h"
#include "SoftwareSerial.h"
#include "DFRobotDFPlayerMini.h"
SoftwareSerial mySoftwareSerial(10, 11); // RX, TX
DFRobotDFPlayerMini myDFPlayer;
int Zundung = 0;
void setup()
{
pinMode(9, INPUT);
mySoftwareSerial.begin(9600);
Serial.begin(9600);
Serial.println();
Serial.println(F("DFRobot DFPlayer Mini Demo"));
Serial.println(F("Initializing DFPlayer ... (May take 3~5 seconds)"));
if (!myDFPlayer.begin(mySoftwareSerial)) { //Use softwareSerial to communicate with mp3.
Serial.println(F("Unable to begin:"));
Serial.println(F("1.Please recheck the connection!"));
Serial.println(F("2.Please insert the SD card!"));
while(true);
}
Serial.println(F("DFPlayer Mini online."));
myDFPlayer.volume(10); //Set volume value. From 0 to 30
myDFPlayer.disableLoop();
}
void loop(){
Zundung = digitalRead(9);
if (Zundung == HIGH){
myDFPlayer.playFolder(1, 1); //Fahrzeug An Sound
delay(500);
}
if (Zundung == LOW){
myDFPlayer.playFolder(1, 2); //Fahrzeug Aus Sound
delay(500);
}
Ideen:
Eventuell ein Counter einbauen ?
Ich würde mich über eure Hilfe sehr freuen.