46 lines
1.0 KiB
C++
46 lines
1.0 KiB
C++
/*
|
|
*@author James McKenzie
|
|
*@lang C89 Based
|
|
*@contact lunarised@outlook.com
|
|
*/
|
|
int mode;
|
|
void setup() {
|
|
pinMode(0, INPUT_PULLUP);
|
|
pinMode (13, OUTPUT);
|
|
pinMode(8, OUTPUT);
|
|
Serial.begin (9600); //set up a serial connection with the computer
|
|
|
|
pinMode(11, OUTPUT); //the trigger pin
|
|
pinMode(12, INPUT); //echo pin
|
|
if (digitalRead(0) ==HIGH){
|
|
mode = 0;
|
|
mode = 1;
|
|
}
|
|
}
|
|
|
|
void loop() {
|
|
if (mode == 0){
|
|
digitalWrite(13, HIGH);
|
|
tone(8, getNote());
|
|
}
|
|
}
|
|
float getNote()
|
|
{
|
|
float echoTime;
|
|
float calculatedDistance;
|
|
digitalWrite(11, HIGH);
|
|
delayMicroseconds(20);
|
|
digitalWrite(11, LOW);
|
|
|
|
echoTime = pulseIn(12, HIGH);
|
|
calculatedDistance = echoTime / 8;
|
|
calculatedDistance += 110;
|
|
if (calculatedDistance > 1760){ //
|
|
|
|
calculatedDistance = 1760;
|
|
}
|
|
Serial.print(calculatedDistance); //print units after the distance
|
|
Serial.println(" hz"); //print units after the distance
|
|
return calculatedDistance;
|
|
}
|