I have a problem with my code it should be a water shooting robot by gravity plus mapping

this is the program and the error is on void loop and this is the error exit status 1
a function-definition is not allowed here before '{' token

void setup() {
// put your setup code here, to run once:
// Includes the Servo library
#include <Servo.h>.
// Defines Tirg and Echo pins of the Ultrasonic Sensor
const int trigPin = 10;
const int echoPin = 11;
// Variables for the duration and the distance
long duration;
int distance;
Servo myServo; // Creates a servo object for controlling the servo motor
void setup() {
pinMode(trigPin, OUTPUT); // Sets the trigPin as an Output
pinMode(echoPin, INPUT); // Sets the echoPin as an Input
Serial.begin(9600);
myServo.attach(12); // Defines on which pin is the servo motor attached
}
void loop() {
// rotates the servo motor from 15 to 165 degrees
for(int i=15;i<=165;i++){
myServo.write(i);
delay(30);
distance = calculateDistance();// Calls a function for calculating the distance measured by the Ultrasonic sensor for each degree

Serial.print(i); // Sends the current degree into the Serial Port
Serial.print(","); // Sends addition character right next to the previous value needed later in the Processing IDE for indexing
Serial.print(distance); // Sends the distance value into the Serial Port
Serial.print("."); // Sends addition character right next to the previous value needed later in the Processing IDE for indexing
}
// Repeats the previous lines from 165 to 15 degrees
for(int i=165;i>15;i--){
myServo.write(i);
delay(30);
distance = calculateDistance();
Serial.print(i);
Serial.print(",");
Serial.print(distance);
Serial.print(".");
}
}
// Function for calculating the distance measured by the Ultrasonic sensor
int calculateDistance(){

digitalWrite(trigPin, LOW);
delayMicroseconds(2);
// Sets the trigPin on HIGH state for 10 micro seconds
digitalWrite(trigPin, HIGH);
delayMicroseconds(10);
digitalWrite(trigPin, LOW);
duration = pulseIn(echoPin, HIGH); // Reads the echoPin, returns the sound wave travel time in microseconds
distance= duration*0.034/2;
return distance;
}

It's much better to post the whole of the error message exactly as it appears on your screen, using copy-and-paste - the IDE provides a single control to help you with this.
It is important because the full error message contains important information.
Also, please remember to use code tags when posting code - you can go back to your post and edit them in.
I can see at least one potential scope issue (the pin definitions inside setup() ) that are likely to bite you on the derriere in future, and you have at least the start of two setup functions.

This is not an installation or troubleshooting issue.

Your topic was MOVED to its current forum category as it is more suitable than the original

Please follow the advice given in the link below when posting code, in particular the section entitled 'Posting code and common code problems'

Use code tags (the </> icon above the compose window) to make it easier to read and copy for examination

There is a lot wrong with the code starting with the fact that you have two setup() functions

easy to follow and detailed description how to post all the information needed to analyse a compiler-error

easy to follow and detailed description how to post code as a code-section

Be the change you want to see in the world
best regards Stefan

Hi, @ivan266
Welcome to the forum.

Please explain what your code is supposed to do?
Please explain what your hardware is?

Did you write your code in stages?
Have you got separate bits of code that demonstrate each input and output separately works BEFORE putting it together, ONE bit of code at a time?

What model Arduino are you using?

Tom... :smiley: :+1: :coffee: :australia:

Post#7 requesting that the code be posted in code tags.

Did you do an autoformatting your code to see where the extra or missing or misplaced { or } is located?

what the heck is "by gravity plus mapping"????

Did you have - accidently - used the arduino-user-forum instead of WhatsApp to prank somebody?

Remove the first two lines and the '.' at the end of the 4th line. After making those changes it compiled with no errors or warnings.

This topic was automatically closed 180 days after the last reply. New replies are no longer allowed.