DFPlayer Mini Input Probleme

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.

Nein, einen Merker.
Aber bitte verändere Deinen Post wie folgt:
Markiere den Text ab # include "Arduino.h" bis zur letzten "}"
Dann drücke auf den Button </>
Danke!

1 Like

Ja. Derzeit wertest Du das Signal aus, ob es HIGH oder LOW ist. Was Dich eigentlich interessiert, ist aber die Änderung des Signals von LOW nach HIGH. Dazu mußt Du das alte Signal, das Du Dir in einem Merker gemerkt hast, mit dem neuen Signal vergleichen.

Siehe bei den Beispielen der IDE StateChangeDetection.ino

1 Like

This topic was automatically closed 180 days after the last reply. New replies are no longer allowed.