D1 Mini Shield – Buzzer (Pipser)

Last Updated on 15. Oktober 2026 by sfambachLink-Status: OK

Mit Hilfe dieser Zusatzplatine können dem D1 mini ein paar Töne abgerungen werden.

Zum D1 mini ESP8266 und ESP 32 gehts hier lang:

Fakten

  • Ein Buzzer, mehr nicht. Er kann mit den IOs D5 – D8 über eine Lötbrücke verbunden werden. Bei mir war keine Vorauswahl getroffen.
BeschreibungNameD1D1 32
Eingang Buzzer, abhängig von der gewählten LötbrückeBUZZER D5 / D6 /D7 /D8GPIO 22/21/17/16
D1 Mini Shield – Buzzer (Pipser) – Pinout

D1 Mini Shield – Buzzer (Pipser) – Lötbrücken (unbelegt)

SchaltplanLink-Status: OK

Kompatibilität

D1 TypKompatibelBegründung, wenn nicht
D1 miniJa
D1 mini ProJaNicht getestet
D1 mini LiteJaNicht getestet
D1 32Ja


S2 mini
JaNicht getestet
C3JaNicht getestet
Kompatibilität zu den D1 Boards

Anwendungsbereiche

  • Signalgeber
  • Alarm
  • Warnton
  • Tastaturrückmeldung

Ansichten

Programmierung

Bibliotheken

Es gibt Bibliotheken, die ganze Symphonien erlauben, für einen ersten Test ist aber keine nötig.

Arduino ESP32 Bibliothek V2.0.2

Arduino ESP8266 Bibliothek V3.0.2

Testprogramm

Ich habe das Testprogramm von Wemos verwendet und es etwas angepasst.

Quellcode BuzzerTest.ino (GitHubLink-Status: OK)

/** D1 Mini Buzzer Shield Test 
 *  
 *  Tested with 
 *  D1 mini
 *  D1 EP32
 *  
 *  Libraries
 *  only Arduino
 *  
 *  Example based on:
 *  https://github.com/wemos/D1_mini_Examples/tree/master/examples/04.Shields/Buzzer_Shield/Do_Re_Mi
 *  
 *  Enhanced By 
 *  S. Fambach
 *  
 *  Visit https://www.fambach.net if you want
 */
 
#define DUTY 512
#define OFF  0


#ifdef ESP8266
  // nothing to declare
#elif defined(ESP32)
  // define D5 pin for ESP 32
  #ifndef D5
    #define D5 18
  #endif
  
  
  // use first channel of 16 channels (started from zero)
  #define LEDC_CHANNEL_0     0
  
  // use 13 bit precission for LEDC timer
  #define LEDC_TIMER_13_BIT  13
  
  // use 5000 Hz as a LEDC base frequency
  #define LEDC_BASE_FREQ     0

#endif

// define buzzer port 
int buzzer=D5; 

// define Notes
// Note name: C6 D6 E6 F6 G6 A6 B6 C7   
// http://newt.phys.unsw.edu.au/jw/notes.html
int freq[]={1047,1175,1319,1397,1568,1760,1976,2093};

// name notes
String note[]={"C6", "D6", "E6", "F6", "G6", "A6", "B6", "C7"};

void setup() {
  
  pinMode(buzzer, OUTPUT);

  
  #if defined( ESP32 )
    // init esp 32 pwm (rest is the same for esp8266 and esp32
    ledcSetup(LEDC_CHANNEL_0, LEDC_BASE_FREQ, LEDC_TIMER_13_BIT);
    ledcAttachPin(buzzer, LEDC_CHANNEL_0);
    ledcWrite(LEDC_CHANNEL_0, OFF);
  #endif
  
  digitalWrite(buzzer, LOW);
  
  Serial.begin(115200);
  Serial.println("Buzzer Test...");
}

void loop() {
  for(int i=0; i<8; i++){

// set the current frequency 
#if defined( ESP8266 )
    // we have to set both i don't know why but without this it does not work
    analogWriteRange(freq[i]);
    analogWriteFreq(freq[i]);
#elif defined( ESP32 )
    ledcSetup(LEDC_CHANNEL_0, freq[i], LEDC_TIMER_13_BIT);
    ledcAttachPin(buzzer, LEDC_CHANNEL_0);
#endif

    // write some information on the console about the current note
    Serial.print("Note name: ");
    Serial.print(note[i]);
    Serial.print(", Freq: ");
    Serial.print(freq[i]);
    Serial.println("Hz");

    // turn tone on 
#if defined( ESP8266 )
    pinMode(buzzer, OUTPUT); //?
    analogWrite(buzzer, DUTY);
#elif defined( ESP32 )
    ledcWrite(LEDC_CHANNEL_0, DUTY);
#endif   
    delay(1000);

    // turn tone off 
#if defined( ESP8266 )
    analogWrite(buzzer, OFF);
    digitalWrite(buzzer, LOW);
#elif defined( ESP32 )
    ledcWrite(LEDC_CHANNEL_0, OFF);
#endif 
     
    delay(1000);
  }
  Serial.println("STOP");
  delay(5000);

}

Probleme

Beispiel von Wemos funktioniert bei mir nicht mit dem ESP8266.

Das Beispiel entspricht zwar der Spezifikation, funktioniert bei mir mit der aktuellen (Version 3.0.2) Arduino Bibliothek nicht.

Ich musste zusätzlich auch immer noch die Frequenz setzen, damit das Programm bei mir seine Arbeit verrichtet.

    analogWriteRange(freq[i]);
    analogWriteFreq(freq[i]);

Fazit

Tut, was es soll, für den Erfahrenen sehr unspektakulär, für den Anfänger ein Höhepunkt.

Weitere Beiträge

Andere Shields

Mehr ESPs

Quellen

Quellen zum Shield

HerstellerseiteLink-Status: OK

SchaltplanLink-Status: OK

Datenblatt Buzzer MLT8540Link-Status: OK (Chinesisch)

Quellen zu den Boards

HerstellerseiteLink-Status: Unbekannt

SchaltplanLink-Status: Unbekannt

CH340 USB TreiberLink-Status: Unbekannt

https://arduino-projekte.info/wemos-d1-mini/Link-Status: Unbekannt

https://www.exp-tech.de/plattformen/esp8266/entwicklungsboards/8898/wemos-d1-miniLink-Status: Unbekannt

DatumÄnderungAutor
15.10.2026Beispielcode als Code-Block eingefügt (Einbettung über gist-it.appspot.com funktionierte nicht mehr)sfambach
08.10.2026Überschriften-Hierarchie korrigiert (H1→H2, Unterebenen eine Stufe tiefer)sfambach
04.10.2026Rechtschreibung korrigiert: Tippfehler, Kommas, Grammatiksfambach
03.10.2026Log-Liste eingefügtsfambach
11.04.2022Beitrag erstelltsfambach
Logbuch

Schreibe einen Kommentar

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