Zum Inhalt springen
Applaus-Maschine mit Arduino und Sound

Applausmaschine mit Arduino und Sound

    Natürlich sind wir ganz großartige Menschen. Und damit wir von anderen Leuten unabhängig sind, bauen wir uns heute unsere eigene Applausmaschine, die uns auf Knopfdruck Anerkennung schenkt.

    Wir verwenden dazu das DFPlayer-Modul. Mehr Informationen dazu findest du in folgendem Beitrag: DFPlayer Mini mit Arduino.

    Bauteile

    Schaltplan

    Die Schaltung besteht aus dem DFPlayer Mini, einem Lautsprecher und einem Taster. Der DFPlayer ist mit GND und 5V versorgt und an die SoftwareSerial-Pins 10 und 11 verbunden. Die Verbindung mit dem Pin 11 bekommt noch einen 1kOhm Widerstand. Der Lautsprecher ist direkt an den DFPlayer angeschlossen.


    Sieh dir jetzt meinen neuen Arduino-Videokurs an: Jetzt ansehen!


    Da wir den internen Pullup-Widerstand des Arduinos verwenden, benötigen wir für den Taster keinen extra Widerstand und verbinden ihn mit dem GND und dem digitalen Pin 7.

    Sound

    Kopiere die folgende Datei auf eine MicroSD-Card. Achte darauf, dass diese im Format FAT16 oder FAT32 formatiert ist. Details dazu sind ebenfalls hier zu finden: DFPlayer Mini mit Arduino.

    Sound: https://starthardware.org/wp-content/uploads/2020/05/35489__charel-sytze__applause-1.mp3

    Die Sounddatei ist von Charel Sytze von Freesound.org und unter CC-BY-Lizenz veröffentlicht.

    Code

    Hier der gekürzte Code. Er liefert nur eine verkürzte Fehlerausgabe, ist aber leichter zu lesen und zu verstehen. Die Fehlerausgabe findet übrigens im seriellen Monitor statt.

    #include "Arduino.h"
    #include "SoftwareSerial.h"
    #include "DFRobotDFPlayerMini.h"
    
    SoftwareSerial mySoftwareSerial(10, 11); // RX, TX
    DFRobotDFPlayerMini myDFPlayer;
    
    int buttonPin = 7;                        // Pin, an dem der Taster angeschlossen ist
    
    void setup() {
      mySoftwareSerial.begin(9600);           // Start der SoftwareSerial Kommunikation
      Serial.begin(115200);                   // Start der "normalen" seriellen Kommunikation für den Serial Monitor
    
      if (!myDFPlayer.begin(mySoftwareSerial)) {  // Verbindung der Software Serial Kommunikation mit dem DFPlayer
        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){                          // Programmabbruch -> while(true) ist Endlosschleife
          delay(0);                           // Code für den Watchdog des ESP8266, nicht relevant für Arduino UNO
        }
      }
        
      myDFPlayer.volume(10);                  // Lautstärke auf 10 ( Werte von 0 – 30 ist möglich)
      pinMode(buttonPin, INPUT_PULLUP);       // Taster wird mit internem Pullup-Widerstand verwendet
    }
    
    void loop() {
      if (digitalRead(buttonPin) == LOW){     // wenn der Taster gedrückt wird
          myDFPlayer.play(1);                 // spiele das erste MP3 von der SD-Karte
      }
    }

    Hier findest du noch den vollständigen Code mit Fehlerausgaben und zum debuggen, falls es Probleme gibt.

    #include "Arduino.h"
    #include "SoftwareSerial.h"
    #include "DFRobotDFPlayerMini.h"
    
    SoftwareSerial mySoftwareSerial(10, 11); // RX, TX
    DFRobotDFPlayerMini myDFPlayer;
    
    int buttonPin = 7;
    
    void printDetail(uint8_t type, int value);
    
    void setup()
    {
      mySoftwareSerial.begin(9600);
      Serial.begin(115200);
      
      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){
          delay(0); // Code to compatible with ESP8266 watch dog.
        }
      }
      Serial.println(F("DFPlayer Mini online."));
      
      myDFPlayer.volume(10);  // Lautstärke auf 10 ( Werte von 0 – 30 ist möglich)
    
      pinMode(buttonPin, INPUT_PULLUP);
    }
    
    void loop()
    {
      if (digitalRead(buttonPin) == LOW){     // wenn der Taster gedrückt wird
          myDFPlayer.play(1);                 // spiele das erste MP3 von der SD-Karte
      }
    }
    
    void printDetail(uint8_t type, int value){
      switch (type) {
        case TimeOut:
          Serial.println(F("Time Out!"));
          break;
        case WrongStack:
          Serial.println(F("Stack Wrong!"));
          break;
        case DFPlayerCardInserted:
          Serial.println(F("Card Inserted!"));
          break;
        case DFPlayerCardRemoved:
          Serial.println(F("Card Removed!"));
          break;
        case DFPlayerCardOnline:
          Serial.println(F("Card Online!"));
          break;
        case DFPlayerUSBInserted:
          Serial.println("USB Inserted!");
          break;
        case DFPlayerUSBRemoved:
          Serial.println("USB Removed!");
          break;
        case DFPlayerPlayFinished:
          Serial.print(F("Number:"));
          Serial.print(value);
          Serial.println(F(" Play Finished!"));
          break;
        case DFPlayerError:
          Serial.print(F("DFPlayerError:"));
          switch (value) {
            case Busy:
              Serial.println(F("Card not found"));
              break;
            case Sleeping:
              Serial.println(F("Sleeping"));
              break;
            case SerialWrongStack:
              Serial.println(F("Get Wrong Stack"));
              break;
            case CheckSumNotMatch:
              Serial.println(F("Check Sum Not Match"));
              break;
            case FileIndexOut:
              Serial.println(F("File Index Out of Bound"));
              break;
            case FileMismatch:
              Serial.println(F("Cannot Find File"));
              break;
            case Advertise:
              Serial.println(F("In Advertise"));
              break;
            default:
              break;
          }
          break;
        default:
          break;
      } 
    }

    Wenn dir das Projekt gefallen hat und du von weiteren interessanten Projekten inspiriert werden willst, sieh dir doch mal mein neues E-Book »Arduino Projekte Volume 1« an!

    • Die beliebtesten Arduino-Projekte von StartHardware
    • Inklusive Schaltplan, Beschreibung und Code
    • Arduino-Schnellstart-Kapitel
    • Kompakter Programmierkurs


    2 Gedanken zu „Applausmaschine mit Arduino und Sound“

    Schreibe einen Kommentar

    Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert

     

    Diese Website verwendet Akismet, um Spam zu reduzieren. Erfahre mehr darüber, wie deine Kommentardaten verarbeitet werden.