hello I know this problem has come up before and i've had a look through at older posts but couldn't see this specific issue. basically I'm just trying to set up 2 sensors (with a veiw to 6) using the ping example.which will ultimately lead to an installation at a local arts festival.
here is my code
const int pingPin1 = 7;
const int pingPin2 = 2;
void setup() {
Serial.begin(9600);
}
void loop()
{
long duration1, inches1, cm1;
long duration2, inches2, cm2;
pinMode(pingPin1, OUTPUT);
digitalWrite(pingPin1, LOW);
pinMode(pingPin2, OUTPUT);
digitalWrite(pingPin2, LOW);
delayMicroseconds(2);
digitalWrite(pingPin1, HIGH);
digitalWrite(pingPin2, HIGH);
delayMicroseconds(5);
digitalWrite(pingPin1, LOW);
digitalWrite(pingPin2, LOW);
pinMode(pingPin1, INPUT);
duration1 = pulseIn(pingPin1, HIGH);
pinMode(pingPin2, INPUT);
duration2 = pulseIn(pingPin2, HIGH);
inches1 = microsecondsToInches1(duration1);
inches2 = microsecondsToInches2(duration2);
cm1 = microsecondsToCentimeters1(duration1);
cm2 = microsecondsToCentimeters2(duration2);
Serial.print(inches1);
Serial.print(inches2);
Serial.print("in, ");
Serial.print(cm1);
Serial.print(cm2);
Serial.print("cm");
Serial.println();
delay(100);
}
long microsecondsToInches1(long microseconds1);
long microsecondsToInches2(long microseconds2);
{
}
long microsecondsToCentimeters1(long microseconds1);
long microsecondsToCentimeters2(long microseconds2);
{
return microseconds1 / 29 / 2;
return microseconds2 / 29 / 2;
}
but I'm getting "microsecondstoinches1 was not declared in this scope." I tired declaring them as ints ( a stab in the dark). but got "microsecondstoinches1 cannot be used as a function".
I also tried
const int pingPin1 = 2;
const int pingPin2 = 7;
void setup() {
Serial.begin(9600);
}
void loop()
{
long duration1, inches1, cm1;
pinMode(pingPin1, OUTPUT);
digitalWrite(pingPin1, LOW);
delayMicroseconds(2);
digitalWrite(pingPin1, HIGH);
delayMicroseconds(5);
digitalWrite(pingPin1, LOW);
pinMode(pingPin1, INPUT);
duration1 = pulseIn(pingPin1, HIGH);
inches1 = microsecondsToInches1(duration1);
cm1 = microsecondsToCentimeters1(duration1);
Serial.print(inches1);
Serial.print("in, ");
Serial.print(cm1);
Serial.print("cm");
Serial.println();
if (inches1 >0.00 && inches1 <=10.00) {
Keyboard.print ("a"); }
delay(100);
}
long microsecondsToInches1(long microseconds1)
{
return microseconds1 / 74 / 2;
}
long microsecondsToCentimeters1(long microseconds1)
{
return microseconds1 / 29 / 2;
long duration2, inches2, cm2;
pinMode(pingPin2, OUTPUT);
digitalWrite(pingPin2, LOW);
delayMicroseconds(2);
digitalWrite(pingPin2, HIGH);
delayMicroseconds(5);
digitalWrite(pingPin2, LOW);
pinMode(pingPin2, INPUT);
duration2 = pulseIn(pingPin2, HIGH);
inches2 = microsecondsToInches2(duration2);
cm2 = microsecondsToCentimeters2(duration2);
Serial.print(inches2);
Serial.print("in, ");
Serial.print(cm2);
Serial.print("cm");
Serial.println();
if (inches2 >0.00 && inches2 <=10.00) {
Keyboard.print ("h"); }
delay(100);
}
long microsecondsToInches2(long microseconds2)
{
return microseconds2 / 74 / 2;
}
long microsecondsToCentimeters2(long microseconds2)
{
return microseconds2 / 29 / 2;
}
but in this scenario only get a reading from pin 2 ?