Prototyping/2019-10-16
Starting with a very simple program...
void setup() {
tone(11, 220, 60);
delay(100);
tone(11, 440, 60);
delay(100);
tone(11, 880, 60);
delay(1000);
}
void loop() {
}
How do frequencies relate to tones... See Piano key frequencies
Incrementing 3 ways
All 3 are ways to add 1 to the variable x.
x = x + 1
x++;
x += 1;
Simple counting loop (while loop)
Counting to 10 with a while loop...
Three main parts,
- Initializing the variable
- The "control" in the while (....)
- Incrementing
void setup() {
int counter = 0;
while (counter < 10) {
tone(11, 440, 50);
delay(1000);
tone(11, 220, 50);
delay(1000);
counter = counter + 1;
}
}
void loop() {
// put your main code here, to run repeatedly:
}
full text with Serial tracing
void setup() {
// put your setup code here, to run once:
Serial.begin(9600);
Serial.println("hello");
int counter = 0;
Serial.print("YOUR Kounter is now ");
Serial.println(counter);
while (counter < 10) {
tone(11, 440, 50);
delay(1000);
tone(11, 220, 50);
delay(1000);
counter = counter + 1;
Serial.println(counter);
}
}
void loop() {
// put your main code here, to run repeatedly:
}
Simple counting loop (for loop)
Counting to 10 with a for loop...
Same three parts:
- Initializing the variable
- The "control" in the while (....)
- Incrementing
But written in "short hand" in the form:
for (initialize; condition; increment)
void setup() {
// put your setup code here, to run once:
Serial.begin(9600);
Serial.println("hello");
Serial.print("YOUR Kounter is now ");
for (int i = 0; i < 10; i++) {
tone(11, 330, 10);
tone(11, 440, 50);
delay(1000);
tone(11, 220, 50);
delay(1000);
Serial.println(i);
}
}
void loop() {
// put your main code here, to run repeatedly:
}
Change inside the loop
Loops are more interesting when something is changing among the repetition.
Variation 1: use the counter variable in some way to set a frequency value
Variation 2: use a separate variable
Play a scale
int Note;
int tones [] = {31, 33, 35, 37, 39, 41, 44, 46, 49, 52, 55, 58, 62, 65, 69, 73, 78, 82, 87, 93, 98, 104, 110, 117, 123, 131, 139, 147, 156, 165, 175, 185, 196, 208, 220, 233, 247, 262, 277, 294, 311, 330, 349, 370, 392, 415, 440, 466, 494, 523, 554, 587, 622, 659, 698, 740, 784, 831, 880, 932, 988, 1047, 1109, 1175, 1245, 1319, 1397, 1480, 1568, 1661, 1760, 1865, 1976, 2093, 2217, 2349, 2489, 2637, 2794, 2960, 3136, 3322, 3520, 3729, 3951, 4186, 4435, 4699, 4978};
// Hertz values for every note in the scale
void setup() {
Serial.begin(9600);
}
void loop() {
for (int Note = 0; Note<89; Note++) {
tone(11, tones[Note]);
delay(50);
Serial.print (Note);
Serial.print("\t"); //prints a tab for structure
Serial.println (tones[Note]);
}
}