Arduino tuottaa nappia painamalla äänen passiiviselle summerille, joka sitten toistaa sen lähdekoodissa määritellyllä taajuudella, samalla kuin punainen LED välkkyy.
Tässä passiivisessa summerissa on kaksi jalkaa: maadoitus (ground) ja digital out. Käytin 100 ohm etuvastusta (resistor) summerin digitaaliselle signaalille. LED taas tarvitsee vähintään 220 ohm etuvastuksen. Itse käytin 330 ohm, koska sellainen sattui olemaan saatavilla. Painikkeen maadoitusjalka on kytketty 10K ohm etuvastukseen.
Merkkaan kytkentäkaavioissa johdot seuraavasti:
Siniset johdot = maadoitus (ground)
Punaiset johdot = 5V power
Mustat johdot = Digital output
# Summerista lähtee kuvassa musta ja punainen johto. Kytkentäkaavion piirtämiseen käyttämästäni ohjelmasta ei löytynyt sitä summeria, joka itselläni oli käytössä. Tästä syystä en saanut sen johtojen värejäkään muutettua kuvaan. Mustasta johdosta lähtee kuitenkin ground ja punaisesta data.
Lähdekoodi:
Esimerkkikoodi löytyy GitHubista: https://github.com/PyhaMarkus/arduino-passive-buzzer
// Constants are read-only and do not change. Pin numbers are defined here. const int buttonPin = 8; // the number of the pushbutton pin const int ledPin = 13; // the number of the LED pin const int buzzerPin = 7; // the number of the buzzer pin // Variable for button state. This will change. int buttonState = 0; // button status void setup() { // Initialize LED pin as output: pinMode(ledPin, OUTPUT); // initialize button pin as input: pinMode(buttonPin, INPUT); // initialize buzzer pin as output: pinMode(buzzerPin, OUTPUT); } void loop() { // Read the state of the button value: buttonState = digitalRead(buttonPin); // Check whether the button has been pressed. If yes, the buttonState is HIGH: if (buttonState == HIGH) { // Alarm digitalWrite(ledPin, HIGH); delay(1000); tone(buzzerPin, 1000, 500); delay(1000); digitalWrite(ledPin, LOW); delay(1000); digitalWrite(ledPin, HIGH); delay(1000); tone(buzzerPin, 1000, 500); delay(1000); digitalWrite(ledPin, LOW); delay(1000); digitalWrite(ledPin, HIGH); delay(10000); } else { // Turn off the LED digitalWrite(ledPin, LOW); } }
Käytetyt osat:
Kappalemäärä | Osan nimi |
---|---|
1 | Arduino Uno Rev3 |
1 | Passive Buzzer |
1 | Button |
1 | 100 ohm Resistor |
1 | 330 ohm Resistor |
1 | 10K ohm Resistor |
1 | Red LED |
1 | Large Breadboard |
A lot | Jumper Wire |
Käytetyt kirjastot:
Ei mitään.