Hi there i would like too combine the two codes if it is possible :? ?? so when the infra-red proximity sensor is triggered the piezo speaker will play a simple melody
is it possible to combine these two codes??
const int speakerPin = 13; // the number of the speaker pin
int sensorValue; //integer used to calculate distance
int distance; //real distance in cm obtained from the formula (4800/sensorValue -20)
int sensorPin = A0; //Sensor is connected to Analog 0
void setup()
{
Serial.begin(9600); //initialise serial port
}
void loop()
{
//read sensor value
sensorValue=analogRead(sensorPin);
//formula required to calculate the
//exact distance from the sensor.
//Taken from Phidgets datasheet
distance=(4800/(sensorValue-20));
//Serial.println (sensorValue); uncomment if you want to check the sensorValue read from the IF sensor
Serial.println(distance); //print the value onto serial
if (distance <=60){
digitalWrite(speakerPin, HIGH);
}
else {
digitalWrite(speakerPin, LOW);
}
}
AND the Tone Melody code
/*
Melody
Plays a melody
*/
#include "pitches.h"
// notes in the melody:
int melody[] = {
NOTE_C4, NOTE_G3,NOTE_G3, NOTE_A3, NOTE_G3,0, NOTE_B3, NOTE_C4};
// note durations: 4 = quarter note, 8 = eighth note, etc.:
int noteDurations[] = {
4, 8, 8, 4,4,4,4,4 };
void setup() {
// iterate over the notes of the melody:
for (int thisNote = 0; thisNote < 8; thisNote++) {
// to calculate the note duration, take one second
// divided by the note type.
//e.g. quarter note = 1000 / 4, eighth note = 1000/8, etc.
int noteDuration = 1000/noteDurations[thisNote];
tone(8, melody[thisNote],noteDuration);
// to distinguish the notes, set a minimum time between them.
// the note's duration + 30% seems to work well:
int pauseBetweenNotes = noteDuration * 1.30;
delay(pauseBetweenNotes);
// stop the tone playing:
noTone(8);
}
}
void loop() {
// no need to repeat the melody.
}
looking forward to hearing from someone that can crack this for me :?