Skip to main content

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​

Select Board
Buzzer.ino
/**
**************************************************
*
* @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 None

Stvara 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

TipNazivOpis
uint8_taddressI2C adresa pločice, od 0x30 do 0x37, prema postavci preklopnika adrese. Zadano je BLB_DEFAULT_ADDRESS (0x30).
begin()returns void

Pokreć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

TipNazivOpis
uint16_tfreqFrekvencija 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.