Sviranje tonova na zujalici
Što ovaj primjer prikazuje
Sviranje tonova odabranih frekvencija na pasivnoj zujalici. Buzzer.ino svira rastući niz od pet tonova, a zatim ga ponavlja.
Kod primjera
/**
**************************************************
*
* @file Buzzer.ino
* @brief Buzzer test for Soldered Button, LED & Buzzer Board
* Host: ESP32 WROVER-E
*
* Plays a sweep of frequencies to test the buzzer.
*
* @authors Fran Fodor @ soldered.com
***************************************************/
#include "ButtonLedBuzzerBoard-SOLDERED.h"
ButtonLedBuzzerBoard_Soldered board;
const uint16_t frequencies[] = {500, 1000, 2000, 3000, 4000};
const uint8_t numFreqs = sizeof(frequencies) / sizeof(frequencies[0]);
void setup()
{
Wire.begin(); // if not using Qwiic, specify I2C pins: Wire.begin(21, 22)
board.begin();
delay(2000);
}
void loop()
{
for (uint8_t i = 0; i < numFreqs; i++)
{
board.setBuzzer(frequencies[i]);
delay(400);
board.setBuzzer(0);
delay(200);
}
delay(1000);
}
Ovaj primjer koristi i Wire, koji nije dio biblioteke Soldered-Button-LED-Buzzer-Board: dolazi s paketom vaše Arduino pločice. Wire.begin() pridružuje se I2C sabirnici kao glavni uređaj (controller). Bez Qwiic konektora, komentar u skici pokazuje kako proslijediti vlastite I2C pinove, na primjer Wire.begin(21, 22) na ESP32 domaćinu za koji je primjer napisan.
Očekivani rezultat:
Nema serijskog izlaza. Otprilike dvije sekunde nakon pokretanja skice zujalica svira 500, 1000, 2000, 3000 i 4000 Hz po 0,4 s, s 0,2 s tišine između tonova. Zatim miruje 1 s i počinje ponovno.
Korištene funkcije
ButtonLedBuzzerBoard_Soldered(uint8_t address = BLB_DEFAULT_ADDRESS)returns NoneStvara objekt pločice i pamti njezinu I2C adresu. Sve tri LED diode u početku su isključene u međuspremniku boja biblioteke. Primjer koristi zadanu adresu, 0x30, koju pločica ima kada su sva tri preklopnika adrese u položaju OFF.
ReturnsKonstruktor; nema povratne vrijednosti.
Parametri
| Tip | Naziv | Opis |
|---|---|---|
uint8_t | address | I2C adresa pločice, od 0x30 do 0x37, prema postavci preklopnika adrese. Zadano je BLB_DEFAULT_ADDRESS (0x30). |
begin()returns voidPokreće I2C sabirnicu pozivom Wire.begin(). Pozovite je jednom u setup(), prije bilo koje druge funkcije.
ReturnsNišta.
setBuzzer(uint16_t freq)returns voidŠalje frekvenciju tona u Hz pasivnoj zujalici. Primjeri prosljeđuju 0 za zaustavljanje tona.
ReturnsNišta.
Parametri
| Tip | Naziv | Opis |
|---|---|---|
uint16_t | freq | Frekvencija tona u Hz. Primjeri prosljeđuju 0 za zaustavljanje tona. |
Sve zajedno
Primjer pretpostavlja da ton traje do sljedećeg poziva setBuzzer(): čeka pomoću delay() dok ton svira, a zatim poziva setBuzzer(0) kako bi ga zaustavio. Za sviranje drugačijeg niza promijenite vrijednosti u frequencies[]; numFreqs sam slijedi veličinu polja.