Arduino UNO R4 - Piezo-Buzzer

In diesem Leitfaden lernen wir, wie man einen Buzzer mit einem Arduino UNO R4 steuert. Wir erläutern im Detail, wie dies gemacht wird.

Arduino UNO R4 Piezo-Buzzer

Über Buzzer

Buzzer erzeugen Geräusche wie Pieptöne oder Melodien. Sie sind in verschiedenen Typen erhältlich, jeder Typ hat einzigartige Eigenschaften. Schauen wir uns diese Typen anhand bestimmter Merkmale an:

  • Steuerungsmethode:
    • Aktive Buzzer
    • Passive Buzzer
  • Ton-Erzeugungsmechanismus:
    • Piezo-Buzzer
    • Standard-Buzzer
  • Spannungsanforderungen:
    • Niederspannung (3-5 V)
    • Hochspannung (12 V)

    Schauen wir es uns genauer an.

    Aktiver Buzzer vs Passiver Buzzer

    • Aktiver Summer:
      • Es macht Geräusche, wenn ihm Strom zugeführt wird.
      • Es muss ständig mit Strom versorgt werden, damit es weiter Geräusche macht.
      • Es lässt sich einfach mit einer Stromversorgung betreiben.
      • In der Regel in einfachen Alarmsystemen zu finden.
    • Passiver Summer:
      • Es benötigt ein separates Signal, das sich ändert, um Geräusche zu erzeugen.
      • Es kann verschiedene Töne erzeugen, indem man das Signal anpasst.
      • Es benötigt eine komplexere Einrichtung, um zu funktionieren.
      • Es wird oft verwendet, um Musik oder verschiedene Geräusche zu erzeugen.

      Piezo-Buzzer gegen normalen Buzzer

      • Piezo-Buzzer:
        • Funktioniert mit piezoelektrischen Kristallen.
        • Erzeugt hochfrequente, klare Töne.
        • Vielseitig bei der Erzeugung unterschiedlicher Töne und Frequenzen.
        • Effizient und wird häufig in Alarmanlagen und Musikgeräten verwendet.
      • Standard-Buzzer:
        • Funktioniert mit elektromagnetischen Spulen.
        • Erzeugt einfache, brummende Geräusche.
        • Hat nur wenige Variationen im Ton.
        • Ist häufig in einfachen Geräten wie Türklingeln und einfachen Alarmen zu finden.

        Auf dem Markt findet man einen 3V-24V aktiven Piezo-Summer. Man kann ihn als einen 3-5V aktiven Piezo-Summer oder als Hochspannungs-Summer (12V...) verwenden.

        • Wenn Sie diesen Piepser an den Pin des Arduino UNO R4 anschließen, erzeugt er einen normalen Ton, geeignet für Dinge wie Tastenfeldgeräusche.
        • Wenn Sie diesen Piepser über ein Relais an Hochspannung anschließen, erzeugt er einen lauten Ton, gut für Alarme.

        In diesem Leitfaden zeigen wir, wie man Buzzer verwendet, die 3–5 V benötigen, sowohl aktive als auch passive Typen. Für Buzzer, die 12 V benötigen, siehe unseren Leitfaden zum Arduino UNO R4 – 12-V-Buzzer, indem Sie hier klicken: Arduino UNO R4 - 12V buzzer tutorial

        Pinbelegung

        Ein Piepser hat typischerweise zwei Anschlüsse.

        • Negativer (-) Pin: mit GND (0 V) verbinden
        • Positiver (+) Pin: direkt oder über ein Relais verbinden, um das Steuersignal vom Arduino UNO R4 zu empfangen
        Pinbelegung des Piezo-Buzzers

        Wie ein aktiver Summer funktioniert

        • Wenn Sie VCC an den positiven Pin anschließen, erzeugt der Piezo-Summer einen kontinuierlichen Ton.
        Wie der Piezo-Summer funktioniert
        • Um mit einem Piezo-Buzzer verschiedene Töne zu erzeugen, senden Sie eine Rechteckwelle mit einer bestimmten Frequenz an den positiven Pin. Unterschiedliche Frequenzen erzeugen verschiedene Töne. Um eine Melodie zu spielen, ändern Sie die Frequenz der Rechteckwelle.
        Wie Piezo-Buzzer funktioniert

        Wie ein passiver Summer funktioniert

        • Der passive Buzzer erzeugt kein kontinuierliches Geräusch, wenn man VCC einfach an den positiven Pin anschließt, im Gegensatz zum aktiven Buzzer.
        • Ähnlich wie beim aktiven Buzzer erzeugt der Piezo-Buzzer Töne, wenn man am positiven Pin eine Rechteckwelle mit einer bestimmten Frequenz (und einem 50%-Taktverhältnis) anlegt. Unterschiedliche Frequenzen führen zu unterschiedlichen Tönen. Man kann eine Melodie bilden, indem man die Frequenz des Signals am positiven Pin ändert.

Verdrahtungsdiagramm

  • Das Verdrahtungsdiagramm zwischen dem Arduino Uno R4 und dem Piezo-Buzzer
Arduino UNO R4 Buzzer-Verdrahtungsdiagramm

Dieses Bild wurde mit Fritzing erstellt. Klicken Sie, um das Bild zu vergrößern.

  • Das Verdrahtungsdiagramm zwischen dem Arduino Uno R4 und dem Piezo-Buzzer-Modul
Arduino UNO R4 Buzzer-Modul Verdrahtungsdiagramm

Dieses Bild wurde mit Fritzing erstellt. Klicken Sie, um das Bild zu vergrößern.

Siehe Der beste Weg, den Arduino Uno R4 und andere Komponenten mit Strom zu versorgen.

Wie man einen Buzzer programmiert

Die Arduino UNO R4-Bibliothek macht das Abspielen einer Melodie einfach. Sie müssen nicht verstehen, wie man eine Rechteckwelle erzeugt. Sie müssen lediglich zwei Funktionen aus der Bibliothek verwenden: tone() und noTone().

Arduino UNO R4 Quellcode

/* * Dieser Arduino UNO R4 Code wurde von newbiely.de entwickelt * Dieser Arduino UNO R4 Code wird der Öffentlichkeit ohne jegliche Einschränkung zur Verfügung gestellt. * Für vollständige Anleitungen und Schaltpläne besuchen Sie bitte: * https://newbiely.de/tutorials/arduino-uno-r4/arduino-uno-r4-piezo-buzzer */ #include "pitches.h" #define BUZZER_PIN 6 // The Arduino UNO R4 pin connected to the buzzer // notes in the melody: int melody[] = { NOTE_C4, NOTE_G3, NOTE_G3, NOTE_A3, NOTE_G3, 0, NOTE_B3, NOTE_C4 }; // note durations: 4 = quarter note, 8 = eighth note, etc.: int noteDurations[] = { 4, 8, 8, 4, 4, 4, 4, 4 }; void setup() { // iterate over the notes of the melody: for (int thisNote = 0; thisNote < 8; thisNote++) { // to calculate the note duration, take one second divided by the note type. //e.g. quarter note = 1000 / 4, eighth note = 1000/8, etc. int noteDuration = 1000 / noteDurations[thisNote]; tone(BUZZER_PIN, melody[thisNote], noteDuration); // to distinguish the notes, set a minimum time between them. // the note's duration + 30% seems to work well: int pauseBetweenNotes = noteDuration * 1.30; delay(pauseBetweenNotes); // stop the tone playing: noTone(BUZZER_PIN); } } void loop() { // no need to repeat the melody. }

Schnelle Schritte

Folgen Sie diesen Anweisungen Schritt für Schritt:

  • Wenn dies das erste Mal ist, dass Sie den Arduino Uno R4 WiFi/Minima verwenden, lesen Sie das Tutorial zur Einrichtung der Umgebung für den Arduino Uno R4 WiFi/Minima in der Arduino IDE Einrichtung der Umgebung für den Arduino Uno R4 WiFi/Minima in der Arduino IDE.
  • Schließen Sie den Piezo-Buzzer gemäß dem bereitgestellten Diagramm an den Arduino Uno R4 an.
  • Verbinden Sie das Arduino Uno R4-Board über ein USB-Kabel mit Ihrem Computer.
  • Starten Sie die Arduino IDE auf Ihrem Computer.
  • Wählen Sie das passende Arduino Uno R4-Board (z. B. Arduino Uno R4 WiFi) und den COM-Port aus.
  • Kopieren Sie den bereitgestellten Code und fügen Sie ihn in die Arduino IDE ein.
  • Um eine Datei namens pitches.h in der Arduino IDE zu erstellen, führen Sie eine der folgenden Optionen aus:
    • Klicken Sie auf die Schaltfläche unter dem Symbol des Serienmonitors und wählen Sie New Tab.
    • Alternativ können Sie auf Ihrer Tastatur Ctrl+Shift+N drücken.
    Arduino IDE 2 fügt eine Datei hinzu.
    • Benenne die Datei als pitches.h und klicke auf die OK-Schaltfläche.
    Arduino IDE 2 fügt die Datei pitches.h hinzu
    • Kopieren Sie den untenstehenden Code und fügen Sie ihn in die Datei mit dem Namen pitches.h ein.
    /************************************************* * Public Constants *************************************************/ #define NOTE_B0 31 #define NOTE_C1 33 #define NOTE_CS1 35 #define NOTE_D1 37 #define NOTE_DS1 39 #define NOTE_E1 41 #define NOTE_F1 44 #define NOTE_FS1 46 #define NOTE_G1 49 #define NOTE_GS1 52 #define NOTE_A1 55 #define NOTE_AS1 58 #define NOTE_B1 62 #define NOTE_C2 65 #define NOTE_CS2 69 #define NOTE_D2 73 #define NOTE_DS2 78 #define NOTE_E2 82 #define NOTE_F2 87 #define NOTE_FS2 93 #define NOTE_G2 98 #define NOTE_GS2 104 #define NOTE_A2 110 #define NOTE_AS2 117 #define NOTE_B2 123 #define NOTE_C3 131 #define NOTE_CS3 139 #define NOTE_D3 147 #define NOTE_DS3 156 #define NOTE_E3 165 #define NOTE_F3 175 #define NOTE_FS3 185 #define NOTE_G3 196 #define NOTE_GS3 208 #define NOTE_A3 220 #define NOTE_AS3 233 #define NOTE_B3 247 #define NOTE_C4 262 #define NOTE_CS4 277 #define NOTE_D4 294 #define NOTE_DS4 311 #define NOTE_E4 330 #define NOTE_F4 349 #define NOTE_FS4 370 #define NOTE_G4 392 #define NOTE_GS4 415 #define NOTE_A4 440 #define NOTE_AS4 466 #define NOTE_B4 494 #define NOTE_C5 523 #define NOTE_CS5 554 #define NOTE_D5 587 #define NOTE_DS5 622 #define NOTE_E5 659 #define NOTE_F5 698 #define NOTE_FS5 740 #define NOTE_G5 784 #define NOTE_GS5 831 #define NOTE_A5 880 #define NOTE_AS5 932 #define NOTE_B5 988 #define NOTE_C6 1047 #define NOTE_CS6 1109 #define NOTE_D6 1175 #define NOTE_DS6 1245 #define NOTE_E6 1319 #define NOTE_F6 1397 #define NOTE_FS6 1480 #define NOTE_G6 1568 #define NOTE_GS6 1661 #define NOTE_A6 1760 #define NOTE_AS6 1865 #define NOTE_B6 1976 #define NOTE_C7 2093 #define NOTE_CS7 2217 #define NOTE_D7 2349 #define NOTE_DS7 2489 #define NOTE_E7 2637 #define NOTE_F7 2794 #define NOTE_FS7 2960 #define NOTE_G7 3136 #define NOTE_GS7 3322 #define NOTE_A7 3520 #define NOTE_AS7 3729 #define NOTE_B7 3951 #define NOTE_C8 4186 #define NOTE_CS8 4435 #define NOTE_D8 4699 #define NOTE_DS8 4978
    • Klicken Sie in der Arduino IDE auf die Schaltfläche Hochladen, um den Code auf den Arduino UNO R4 zu laden.
    Code zum Hochladen in die Arduino-IDE
    • Hör dir die Musik an.

Arduino UNO R4-Code modifizieren

Jetzt werden wir den Code ändern, um das Lied 'Jingle Bells' abzuspielen.

Wir müssen nur zwei Arrays ändern: int melody[] und int noteDurations[].

/* * Dieser Arduino UNO R4 Code wurde von newbiely.de entwickelt * Dieser Arduino UNO R4 Code wird der Öffentlichkeit ohne jegliche Einschränkung zur Verfügung gestellt. * Für vollständige Anleitungen und Schaltpläne besuchen Sie bitte: * https://newbiely.de/tutorials/arduino-uno-r4/arduino-uno-r4-piezo-buzzer */ #include "pitches.h" #define BUZZER_PIN 6 // The Arduino UNO R4 pin connected to the buzzer // notes in the melody: int melody[] = { NOTE_E5, NOTE_E5, NOTE_E5, NOTE_E5, NOTE_E5, NOTE_E5, NOTE_E5, NOTE_G5, NOTE_C5, NOTE_D5, NOTE_E5, NOTE_F5, NOTE_F5, NOTE_F5, NOTE_F5, NOTE_F5, NOTE_E5, NOTE_E5, NOTE_E5, NOTE_E5, NOTE_E5, NOTE_D5, NOTE_D5, NOTE_E5, NOTE_D5, NOTE_G5 }; // note durations: 4 = quarter note, 8 = eighth note, etc, also called tempo: int noteDurations[] = { 8, 8, 4, 8, 8, 4, 8, 8, 8, 8, 2, 8, 8, 8, 8, 8, 8, 8, 16, 16, 8, 8, 8, 8, 4, 4 }; void setup() { // iterate over the notes of the melody: int size = sizeof(noteDurations) / sizeof(int); for (int thisNote = 0; thisNote < size; thisNote++) { // to calculate the note duration, take one second divided by the note type. //e.g. quarter note = 1000 / 4, eighth note = 1000/8, etc. int noteDuration = 1000 / noteDurations[thisNote]; tone(BUZZER_PIN, melody[thisNote], noteDuration); // to distinguish the notes, set a minimum time between them. // the note's duration + 30% seems to work well: int pauseBetweenNotes = noteDuration * 1.30; delay(pauseBetweenNotes); // stop the tone playing: noTone(BUZZER_PIN); } } void loop() { // no need to repeat the melody. }

※ Notiz:

Der erwähnte Code verwendet die delay()-Funktion, die den restlichen Code daran hindert, auszuführen, während eine Melodie abgespielt wird. Um dies zu verhindern, können Sie die ezBuzzer-Bibliothek verwenden. Diese Bibliothek ermöglicht es dem Buzzer, zu piepen oder eine Melodie abzuspielen, ohne den restlichen Code zu stoppen.

Video Tutorial

Wir erwägen die Erstellung von Video-Tutorials. Wenn Sie Video-Tutorials für wichtig halten, abonnieren Sie bitte unseren YouTube-Kanal , um uns zu motivieren, die Videos zu erstellen.

Fordere dich selbst heraus

  • Spiele dein Lieblingslied mit einem Piezo-Lautsprecher.
  • Richte einen Alarm ein, der losgeht, wenn sich jemand deinen Sachen nähert. Hinweis: Siehe Arduino UNO R4 - Motion Sensor.

※ UNSERE NACHRICHTEN

  • Sie können gerne den Link zu diesem Tutorial teilen. Bitte verwenden Sie jedoch unsere Inhalte nicht auf anderen Websites. Wir haben viel Mühe und Zeit in die Erstellung der Inhalte investiert, bitte respektieren Sie unsere Arbeit!