Hi! I'm working on the project for university and I'm getting this error no matter how many times I check for missing brackets { } / [ ].. I get the a function-definition is not allowed here before '{' token in line where it says :
*// if (scanStopDistances[scanPosition] > longestDistance) {
- void setup() { //
const int myServoPin= 12;
const int leftForwardPin=10;
const int leftReversePin=11;
const int rightForwardPin=8;
const int rightReversePin=9;
const int triggerPin=7;
const int echoPin=6;
const int minimumDistance=400;
int runningScanPositions[3] = {83 ,90, 97};
int stoppedScanPositions[13] = {30, 40, 50, 60, 70, 80, 90, 100, 110, 120, 130, 140, 150};
int scanPosition;
int scanRunDistances[3];
int scanStopDistances[13];
int okToDrive = 0; //=stop if =1 no obstacle detected
#include "Servo.h"
Servo myServo;
void forwardRight() {
Serial.println("left motor forwards, turn right");
digitalWrite(leftForwardPin,HIGH);
digitalWrite(leftReversePin,LOW);
digitalWrite(rightForwardPin,LOW);
digitalWrite(rightReversePin,LOW);
}
void reverseRight() {
Serial.println("Reverse left motor, reverse right");
digitalWrite(leftForwardPin,LOW);
digitalWrite(leftReversePin,HIGH);
digitalWrite(rightForwardPin,LOW);
digitalWrite(rightReversePin,LOW);
}
void forwardLeft() {
Serial.println("right motor forwards, turn left");
digitalWrite(leftForwardPin,LOW);
digitalWrite(leftReversePin,LOW);
digitalWrite(rightForwardPin,HIGH);
digitalWrite(rightReversePin,LOW);
}
void reverseLeft() {
Serial.println("reverse right motor, reverse left");
digitalWrite(leftForwardPin,LOW);
digitalWrite(leftReversePin,LOW);
digitalWrite(rightForwardPin,LOW);
digitalWrite(rightReversePin,HIGH);
}
void stopMotors() {
Serial.println("Stop motors");
digitalWrite(leftForwardPin,LOW);
digitalWrite(leftReversePin,LOW);
digitalWrite(rightForwardPin,LOW);
digitalWrite(rightReversePin,LOW);
}
void driveForward() {
Serial.println("Both motors forwards");
digitalWrite(leftForwardPin,HIGH);
digitalWrite(leftReversePin,LOW);
digitalWrite(rightForwardPin,HIGH);
digitalWrite(rightReversePin,LOW);
}
void driveReverse() {
Serial.println("Both motors reverse");
digitalWrite(leftForwardPin,LOW);
digitalWrite(leftReversePin,HIGH);
digitalWrite(rightForwardPin,LOW);
digitalWrite(rightReversePin,HIGH);
}
int getDistanceHCSSR04(int funcTriggerPin, int funcEchoPin) {
unsigned long duration;
int myDistance;
digitalWrite(funcTriggerPin,LOW);
delayMicroseconds(2);
digitalWrite(funcTriggerPin,HIGH);
delayMicroseconds(10);
digitalWrite(funcTriggerPin,LOW);
duration = pulseIn(funcEchoPin, HIGH);
myDistance= duration * 0.34 /2;
return myDistance;
}
void findStoppedBestDirection() {
Serial.println("Doing Full Scan");
int steerDelay = 10;
int bestDirection=0;
int longestDistance=0;
for (scanPosition = 0; scanPosition < 13; scanPosition++) {
myServo.write(stoppedScanPositions[scanPosition]);
delay(250);
scanStopDistances[scanPosition]= getDistanceHCSSR04(triggerPin, echoPin);
if(scanStopDistances[scanPosition]> 5000) {
scanStopDistances[scanPosition] = 0;
}
Serial.println(scanPosition);
Serial.println(scanStopDistances[scanPosition]);
}
if (scanStopDistances[scanPosition] > longestDistance) {
void setup() {
Serial.begin(9600);
Serial.println("RobotCarSingleSensorv1....");
Serial.println(" ");
Serial.println("L298N Pins set");
pinMode(leftForwardPin, OUTPUT);
pinMode(leftReversePin, OUTPUT);
pinMode(rightForwardPin, OUTPUT);
pinMode(rightReversePin, OUTPUT);
Serial.println("HC-SR04 Ultrasonic Sensor pins set");
pinMode(triggerPin, OUTPUT);
pinMode(echoPin, INPUT);
myServo.attach(myServoPin);
Serial.println("Testing Servo");
myServo.write(30);
delay(500);
myServo.write(150);
delay(500);
myServo.write(90);
delay(500);
Serial.println("Servo Ready");
}
}
}
void loop() {
okToDrive =1; //set to drive
for (scanPosition=0; scanPosition < 3; scanPosition++) {
myServo.write(runningScanPositions[scanPosition]);
delay(100);
scanRunDistances[scanPosition]=getDistanceHCSSR04(triggerPin, echoPin);
Serial.println(scanRunDistances[scanPosition]);
if (scanRunDistances[scanPosition] < minimumDistance) {
okToDrive = 0;
Serial.println("Normal path blocked");
}
}
if (okToDrive < 1) {
stopMotors();
findStoppedBestDirection();
}
else {
driveForward();
}
}