On branch main
Your branch is up to date with 'origin/main'. Changes to be committed: modified: README.md new file: examples/SIK_Circuit_1A-Blink/SIK_Circuit_1A-Blink.ino new file: examples/SIK_Circuit_1B-Potentiometer/SIK_Circuit_1B-Potentiometer.ino new file: examples/SIK_Circuit_1C-Photoresistor/SIK_Circuit_1C-Photoresistor.ino new file: examples/SIK_Circuit_1D-RGBNightlight/SIK_Circuit_1D-RGBNightlight.ino new file: examples/SIK_Circuit_2A-Buzzer/SIK_Circuit_2A-Buzzer.ino new file: examples/SIK_Circuit_2B-DigitalTrumpet/SIK_Circuit_2B-DigitalTrumpet.ino new file: examples/SIK_Circuit_2C-SimonSays/SIK_Circuit_2C-SimonSays.ino new file: examples/SIK_Circuit_3A-Servo/SIK_Circuit_3A-Servo.ino new file: examples/SIK_Circuit_3B-DistanceSensor/SIK_Circuit_3B-DistanceSensor.ino new file: examples/SIK_Circuit_3C-MotionAlarm/SIK_Circuit_3C-MotionAlarm.ino new file: examples/SIK_Circuit_4A-LCDHelloWorld/SIK_Circuit_4A-LCDHelloWorld.ino new file: examples/SIK_Circuit_4B-TemperatureSensor/SIK_Circuit_4B-TemperatureSensor.ino new file: examples/SIK_Circuit_4C-DIYWhoAmI/SIK_Circuit_4C-DIYWhoAmI.ino new file: examples/SIK_Circuit_5A-MotorBasics/SIK_Circuit_5A-MotorBasics.ino new file: examples/SIK_Circuit_5B-RemoteControlRobot/SIK_Circuit_5B-RemoteControlRobot.ino new file: examples/SIK_Circuit_5C-AutonomousRobot/SIK_Circuit_5C-AutonomousRobot.ino new file: library.properties new file: src/SIK.h
This commit is contained in:
parent
35e1115a5c
commit
0cf48bdc8d
19 changed files with 1654 additions and 2 deletions
109
examples/SIK_Circuit_2A-Buzzer/SIK_Circuit_2A-Buzzer.ino
Normal file
109
examples/SIK_Circuit_2A-Buzzer/SIK_Circuit_2A-Buzzer.ino
Normal file
|
@ -0,0 +1,109 @@
|
|||
/*
|
||||
SparkFun Inventor’s Kit
|
||||
Circuit 2A - Buzzer
|
||||
|
||||
Play notes using a buzzer connected to pin 10
|
||||
|
||||
This sketch was written by SparkFun Electronics, with lots of help from the Arduino community.
|
||||
This code is completely free for any use.
|
||||
|
||||
View circuit diagram and instructions at: https://learn.sparkfun.com/tutorials/sparkfun-inventors-kit-experiment-guide---v41
|
||||
Download drawings and code at: https://github.com/sparkfun/SIK-Guide-Code
|
||||
*/
|
||||
|
||||
int speakerPin = 10; //the pin that buzzer is connected to
|
||||
|
||||
void setup()
|
||||
{
|
||||
pinMode(speakerPin, OUTPUT); //set the output pin for the speaker
|
||||
}
|
||||
|
||||
void loop()
|
||||
{
|
||||
|
||||
play('g', 2); //ha
|
||||
play('g', 1); //ppy
|
||||
play('a', 4); //birth
|
||||
play('g', 4); //day
|
||||
play('C', 4); //to
|
||||
play('b', 4); //you
|
||||
|
||||
play(' ', 2); //pause for 2 beats
|
||||
|
||||
play('g', 2); //ha
|
||||
play('g', 1); //ppy
|
||||
play('a', 4); //birth
|
||||
play('g', 4); //day
|
||||
play('D', 4); //to
|
||||
play('C', 4); //you
|
||||
|
||||
play(' ', 2); //pause for 2 beats
|
||||
|
||||
play('g', 2); //ha
|
||||
play('g', 1); //ppy
|
||||
play('G', 4); //birth
|
||||
play('E', 4); //day
|
||||
play('C', 4); //dear
|
||||
play('b', 4); //your
|
||||
play('a', 6); //name
|
||||
|
||||
play(' ', 2); //pause for 2 beats
|
||||
|
||||
play('F', 2); //ha
|
||||
play('F', 1); //ppy
|
||||
play('E', 4); //birth
|
||||
play('C', 4); //day
|
||||
play('D', 4); //to
|
||||
play('C', 6); //you
|
||||
|
||||
while (true) {} //get stuck in this loop forever so that the song only plays once
|
||||
}
|
||||
|
||||
|
||||
void play( char note, int beats)
|
||||
{
|
||||
int numNotes = 14; // number of notes in our note and frequency array (there are 15 values, but arrays start at 0)
|
||||
|
||||
//Note: these notes are C major (there are no sharps or flats)
|
||||
|
||||
//this array is used to look up the notes
|
||||
char notes[] = { 'c', 'd', 'e', 'f', 'g', 'a', 'b', 'C', 'D', 'E', 'F', 'G', 'A', 'B', ' '};
|
||||
//this array matches frequencies with each letter (e.g. the 4th note is 'f', the 4th frequency is 175)
|
||||
int frequencies[] = {131, 147, 165, 175, 196, 220, 247, 262, 294, 330, 349, 392, 440, 494, 0};
|
||||
|
||||
int currentFrequency = 0; //the frequency that we find when we look up a frequency in the arrays
|
||||
int beatLength = 150; //the length of one beat (changing this will speed up or slow down the tempo of the song)
|
||||
|
||||
//look up the frequency that corresponds to the note
|
||||
for (int i = 0; i < numNotes; i++) // check each value in notes from 0 to 14
|
||||
{
|
||||
if (notes[i] == note) // does the letter passed to the play function match the letter in the array?
|
||||
{
|
||||
currentFrequency = frequencies[i]; // Yes! Set the current frequency to match that note
|
||||
}
|
||||
}
|
||||
|
||||
//play the frequency that matched our letter for the number of beats passed to the play function
|
||||
tone(speakerPin, currentFrequency, beats * beatLength);
|
||||
delay(beats * beatLength); //wait for the length of the tone so that it has time to play
|
||||
delay(50); //a little delay between the notes makes the song sound more natural
|
||||
|
||||
}
|
||||
|
||||
/* CHART OF FREQUENCIES FOR NOTES IN C MAJOR
|
||||
Note Frequency (Hz)
|
||||
c 131
|
||||
d 147
|
||||
e 165
|
||||
f 175
|
||||
g 196
|
||||
a 220
|
||||
b 247
|
||||
C 262
|
||||
D 294
|
||||
E 330
|
||||
F 349
|
||||
G 392
|
||||
A 440
|
||||
B 494
|
||||
*/
|
Loading…
Add table
Add a link
Reference in a new issue