Just started and struggling with the programming. Trying to combine the force sensitive resistor code with the piezo so that squeezing the force sensitive resistor will turn the piezo off. It compiles but doesn't work on the board? Trying to finish this for a high school project and would appreciate some advice.
Thanks!
/* Melody
- (cleft) 2005 D. Cuartielles for K3
- This example uses a piezo speaker to play melodies. It sends
- a square wave of the appropriate frequency to the piezo, generating
- the corresponding tone.
- The calculation of the tones is made following the mathematical
- operation:
- timeHigh = period / 2 = 1 / (2 * toneFrequency)
- where the different tones are described as in the table:
- note frequency period timeHigh
- c 261 Hz 3830 1915
- d 294 Hz 3400 1700
- e 329 Hz 3038 1519
- f 349 Hz 2864 1432
- g 392 Hz 2550 1275
- a 440 Hz 2272 1136
- b 493 Hz 2028 1014
- C 523 Hz 1912 956
-
http://www.arduino.cc/en/Tutorial/Melody
*/
int sensePin = 2;
int speakerPin = 9;
int length = 15; // the number of notes
char notes[] = "ccggaagffeeddc "; // a space represents a rest
int beats[] = { 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 2, 4 };
int tempo = 300;
void playTone(int tone, int duration) {
for (long i = 0; i < duration * 1000L; i += tone * 2) {
digitalWrite(speakerPin, HIGH);
delayMicroseconds(tone);
digitalWrite(speakerPin, LOW);
delayMicroseconds(tone);
}
}
void playNote(char note, int duration) {
char names[] = { 'c', 'd', 'e', 'f', 'g', 'a', 'b', 'C' };
int tones[] = { 1915, 1700, 1519, 1432, 1275, 1136, 1014, 956 };
// play the tone corresponding to the note name
for (int i = 0; i < 8; i++) {
if (names == note) {
_ playTone(tones*, duration);_
_ }_
_ }_
_}_
void setup() {
_ Serial.begin(9600);_
_ pinMode(speakerPin, OUTPUT);_
_}_
void loop() {
_ int value = analogRead(sensePin) /4;_
_ analogWrite(speakerPin, value);_
_ for (int i = 0; i < length; i++) {_
_ if (notes == ' ') {_
delay(beats _ tempo); // rest_
* } else {*
playNote(notes, beats * tempo);
* }*
* // pause between notes*
* delay(tempo / 2);*
* }*
}