Zpět na články

ESP32 s bzučákem – tóny a melodie s funkcí tone()

Přehrajte tóny i melodie na ESP32 pomocí pasivního bzučáku a funkce tone() – bez extra knihoven, jen s pitches.h.

ESP32 s bzučákem – tóny a melodie s funkcí tone()

ESP32 + bzučák – tóny a melodie s funkcí tone() v Arduino IDE

Jak připojit pasivní bzučák k ESP32 a přehrávat tóny i melodie pomocí funkce tone() a souboru pitches.h.

Přehled projektu

Funkce tone()je standardní součástí ESP32 Arduino core od verze 2.x – není potřeba instalovat žádnou extra knihovnu. Stačí přidat soubor pitches.h s definicemi frekvencí hudebních not a okamžitě lze přehrávat libovolné tóny nebo celé melodie.

Potřebné komponenty

  • ESP32
  • Pasivní bzučák (passive buzzer)
  • Propojovací vodiče
  • Volitelně: 100Ω rezistor v sérii
⚠️ Pozor na záměnu aktivního a pasivního bzučáku – vypadají stejně. Pasivní bzučák nemá ochrannou nálepku nahoře, nebo má na spodní straně označení.

Zapojení

Bzučák ESP32

+ (kladný) GPIO 18

− (záporný) GND

Soubor pitches.h

V Arduino IDE vytvořte nový soubor pitches.h (záložka → nový soubor) a vložte do něj definice not:

pitches.c
1// pitches.h 2#define NOTE_B0 31 3#define NOTE_C1 33 4#define NOTE_D1 37 5#define NOTE_E1 41 6#define NOTE_F1 44 7#define NOTE_G1 49 8#define NOTE_A1 55 9#define NOTE_B1 62 10#define NOTE_C2 65 11#define NOTE_D2 73 12#define NOTE_E2 82 13#define NOTE_F2 87 14#define NOTE_G2 98 15#define NOTE_A2 110 16#define NOTE_B2 123 17#define NOTE_C3 131 18#define NOTE_D3 147 19#define NOTE_E3 165 20#define NOTE_F3 175 21#define NOTE_G3 196 22#define NOTE_A3 220 23#define NOTE_B3 247 24#define NOTE_C4 262 25#define NOTE_D4 294 26#define NOTE_E4 330 27#define NOTE_F4 349 28#define NOTE_G4 392 29#define NOTE_A4 440 30#define NOTE_B4 494 31#define NOTE_C5 523 32#define NOTE_D5 587 33#define NOTE_E5 659 34#define NOTE_F5 698 35#define NOTE_G5 784 36#define NOTE_A5 880 37#define NOTE_B5 988 38#define NOTE_C6 1047 39#define NOTE_D6 1175 40#define NOTE_E6 1319 41#define NOTE_F6 1397 42#define NOTE_G6 1568 43#define NOTE_A6 1760 44#define NOTE_B6 1976

Kód 1 – jednoduchý tón

main.c
1#include "pitches.h" 2 3const int BUZZER_PIN = 18; 4 5void setup() { 6 // zahrajte A4 (440 Hz) po dobu 500 ms 7 tone(BUZZER_PIN, NOTE_A4, 500); 8 delay(1000); 9 10 // zahrajte C5 po dobu 500 ms 11 tone(BUZZER_PIN, NOTE_C5, 500); 12 delay(1000); 13 14 noTone(BUZZER_PIN); // zastavte bzučák 15} 16 17void loop() {}

Jak funguje tone()

tone
1tone(pin, frequency); // pípá dokud nezavoláte noTone() 2tone(pin, frequency, duration); // pípá po dobu duration ms a samo skončí 3noTone(pin); // zastaví bzučák

Možná rozšíření

  • Spojte bzučák s PIR senzorem – zapípá při detekci pohybu
  • Spojte s DS1307 RTC – budík v přesný čas
  • Spojte s DHT22 – alarm při překročení teploty
  • Přidejte tlačítko pro vypnutí alarmu
  • Přidejte bzučák do projektu s webovým serverem – spouštění tónu přes prohlížeč

Nakupte svoje ESP32 ještě dnes!

Doprava Zásilkovnou za 89 Kč
Platba dobírkou
Vrácení do 30 dnů
Omezené zásoby - skladem

ESP32-S3 DevKit USB-C

Kompletní vývojová deska s USB-C

240MHz dvoujádrový
WiFi 802.11 b/g/n
Bluetooth 4.2 + BLE
4MB Flash paměť
520KB SRAM
38 GPIO pinů
209za kus

Množstevní slevy:

1
Celkem
209
Objednat

Bezpečná platba při převzetí zásilky nebo online platba přes Comgate, a.s.

ESP32 s bzučákem – tóny a melodie s funkcí tone() | especko.cz