Met Arduino kun je op verschillende manieren geluiden genereren. De eenvoudigste is om een piëzo-zender (of een piëzo-sirene) op het bord aan te sluiten. Maar zoals altijd zijn er hier enkele nuances. Laten we het in het algemeen uitzoeken.
Noodzakelijk
- - Computeren;
- -Arduino;
- - piëzo-zender (piëzo-zoemer).
instructies:
Stap 1
Een piëzo-zender, of piëzo-elektrische zender, of piëzo-zoemer is een elektro-akoestisch apparaat voor het reproduceren van geluid dat het omgekeerde piëzo-elektrisch effect gebruikt. Om het op een eenvoudige manier uit te leggen - onder invloed van een elektrisch veld ontstaat er een mechanische beweging van het membraan, die de geluidsgolven veroorzaakt die we horen. Dergelijke geluidszenders worden typisch geïnstalleerd in huishoudelijke elektronische apparatuur als geluidsalarmen, in desktopcomputers, telefoons, speelgoed, luidsprekers en nog veel meer.
De piëzo-zender heeft 2 draden en de polariteit is van belang. Daarom verbinden we de zwarte pin met aarde (GND) en de rode met elke digitale pin met PWM-functie (PWM). In dit voorbeeld is de positieve pool van de emitter verbonden met de "D3"-terminal.
Stap 2
De piëzozoemer kan op verschillende manieren worden gebruikt. De eenvoudigste is om de analogWrite-functie te gebruiken. Een voorbeeld van een schets wordt getoond in de afbeelding. Deze schets zet het geluid afwisselend aan en uit met een frequentie van 1 keer per seconde.
We stellen het pinnummer in, definiëren het als een uitvoer. De functie analogWrite () neemt een pincode en een niveau als argumenten, die van 0 tot 255 kunnen zijn. Deze waarde zal het volume van de piëzo-tweeter binnen een klein bereik veranderen. Door de waarde "0" naar de poort te sturen, zet u de piëzo-sirene uit.
Helaas kunt u de toonsoort van het geluid niet wijzigen met analogWrite (). De piëzo-zender zal altijd klinken met een frequentie van ongeveer 980 Hz, wat overeenkomt met de frequentie van de pulsbreedtegemoduleerde (PWM) pinnen op Arduino UNO-kaarten en dergelijke.
Stap 3
Laten we nu het geluid van de piëzo-zender extraheren met behulp van de ingebouwde toonfunctie (). Een voorbeeld van een eenvoudige schets wordt getoond in de afbeelding.
De toonfunctie neemt een pincode en een audiofrequentie als argumenten. De onderste frequentielimiet is 31 Hz, de bovenlimiet wordt beperkt door de parameters van de piëzo-zender en het menselijk gehoor. Om het geluid uit te zetten, stuurt u de opdracht noTone () naar de poort.
Houd er rekening mee dat als er meerdere piëzo-zenders op de Arduino zijn aangesloten, er slechts één tegelijk werkt. Om de zender op een andere pin aan te zetten, moet je het geluid op de huidige onderbreken door de noTone ()-functie aan te roepen.
Een belangrijk punt: de toon ()-functie wordt bovenop het PWM-signaal op de "3" en "11" pinnen van de Arduino geplaatst. Houd hier rekening mee bij het ontwerpen van uw apparaten, want functietoon (), bijvoorbeeld op pin "5" genoemd, kan het werk van pin "3" en "11" verstoren.