Hi, I'm very new to this arduino project. I used mjmcondor's code to interfaced the Ping))) sensors,http://www.arduino.cc/cgi-bin/yabb2/YaBB.pl?num=1236272388.
int ultraSoundSignalPins[] = {2,3,4,5}; // Left,Front, Front Right, Rear Ultrasound signal pins
int farthest_Dist=ping(0);
int pinFWD=7;
int pinREAR=8;
int pinLEFT=9;
int pinRIGHT=10;[/i]
[i]void setup() {
Serial.begin(9600);
pinMode(pinFWD,OUTPUT);
pinMode(pinREAR,OUTPUT);
pinMode(pinLEFT,OUTPUT);
pinMode(pinRIGHT,OUTPUT);[/i]
[i]unsigned long ultrasoundValue;
for(int i=0; i < 4; i++)
{
ultrasoundValue = ping(i);
Serial.print(ultrasoundValue);
Serial.print("in, ");
Serial.println();
}
{
{
if (ping(0)==ping(1)==ping(2)==ping(3))
{
digitalWrite(pinLEFT,LOW);
digitalWrite(pinFWD,LOW);
digitalWrite(pinRIGHT,LOW);
digitalWrite(pinREAR,LOW);
}
else if (ping(2)>ping(0))
{
farthest_Dist=ping(2);
digitalWrite(pinRIGHT,HIGH);
digitalWrite(pinLEFT,LOW);
digitalWrite(pinFWD,LOW);
digitalWrite(pinREAR,LOW);
}
else if (ping(3) > ping(0))
{
farthest_Dist=ping(3);
digitalWrite(pinREAR,HIGH);
digitalWrite(pinLEFT,LOW);
digitalWrite(pinFWD,LOW);
digitalWrite(pinRIGHT,LOW);
}
else if (ping(1) > ping(0))
{
farthest_Dist=ping(1);
digitalWrite(pinFWD,HIGH);
digitalWrite(pinLEFT,LOW);
digitalWrite(pinRIGHT,LOW);
digitalWrite(pinREAR,LOW);
}
else
{
farthest_Dist = ping(0);
digitalWrite(pinLEFT,HIGH);
digitalWrite(pinFWD,LOW);
digitalWrite(pinRIGHT,LOW);
digitalWrite(pinREAR,LOW);
}
Serial.print (farthest_Dist);
Serial.println();
}
}
}
//Ping function
unsigned long ping(int i)
{
unsigned long echo;
pinMode(ultraSoundSignalPins[i], OUTPUT); // Switch signalpin to output
digitalWrite(ultraSoundSignalPins[i], LOW); // Send low pulse
delayMicroseconds(2); // Wait for 2 microseconds
digitalWrite(ultraSoundSignalPins[i], HIGH); // Send high pulse
delayMicroseconds(5); // Wait for 5 microseconds
digitalWrite(ultraSoundSignalPins[i], LOW); // Holdoff
pinMode(ultraSoundSignalPins[i], INPUT); // Switch signalpin to input
digitalWrite(ultraSoundSignalPins[i], HIGH); // Turn on pullup resistor
echo = pulseIn(ultraSoundSignalPins[i], HIGH); //Listen for echo
return (echo / 58.138) * .39; //convert to CM then to inches
However, I got the following errors.
AeroQuad2.cpp: In function 'long unsigned int ping(int)':
Eeprom:24: error: a function-definition is not allowed here before '{' token
float readFloat(int address)
{
union floatStore {
byte floatByte[4];
float floatVal;
} floatOut;
for (int i = 0; i < 4; i++)
floatOut.floatByte[i] = EEPROM.read(address + i);
return floatOut.floatVal;
}
Can someone tell me where I went wrong?
Thanks.