code_robot_sa_mere.ino: In function 'void loop()': code_robot_sa_mere:68: error: 'else' without a previous 'if' code_robot_sa_mere:72: error: 'else' without a previous 'if' code_robot_sa_mere.ino: In function 'void clockwiseD()': code_robot_sa_mere:101: error: a function-definition is not allowed here before '{' token code_robot_sa_mere:133: error: expected `}' at end of input
Voila le code( sachant que le robot se mouvoit grâce a 2 moteurs pas a pas et se repère grâce a 2 capteurs US placé a 45° a l'avant):
#define trigPinD 2 #define echoPinD 3 #define trigPinG 4 #define echoPinG 5 //declare variables for the motor pins int motorPin1D = 6; // Blue - 28BYJ48 pin 1 int motorPin2D= 7; // Pink - 28BYJ48 pin 2 int motorPin3D = 8; // Yellow - 28BYJ48 pin 3 int motorPin4D = 9; // Orange - 28BYJ48 pin 4 int motorPin1G = 10; // Blue - 28BYJ48 pin 1 int motorPin2G= 11; // Pink - 28BYJ48 pin 2 int motorPin3G = 12; // Yellow - 28BYJ48 pin 3 int motorPin4G = 13; // Orange - 28BYJ48 pin 4 // Red - 28BYJ48 pin 5 (VCC) int motorSpeed = 1200; //variable to set stepper speed int lookupD[8] = {B01000, B01100, B00100, B00110, B00010, B00011, B00001, B01001}; int lookupG[8] = {B01000, B01100, B00100, B00110, B00010, B00011, B00001, B01001}; ////////////////////////////////////////////////////////////////////////////// void setup() { //declare the motor pins as outputs pinMode(trigPinD, OUTPUT); pinMode(echoPinD, INPUT); pinMode(trigPinG, OUTPUT); pinMode(echoPinG, INPUT); pinMode(motorPin1D, OUTPUT); pinMode(motorPin2D, OUTPUT); pinMode(motorPin3D, OUTPUT); pinMode(motorPin4D, OUTPUT); pinMode(motorPin1G, OUTPUT); pinMode(motorPin2G, OUTPUT); pinMode(motorPin3G, OUTPUT); pinMode(motorPin4G, OUTPUT); Serial.begin(9600); } ////////////////////////////////////////////////////////////////////////////// void loop(){ int durationD, distanceD; digitalWrite(trigPinD, LOW); delayMicroseconds(2); digitalWrite(trigPinD, HIGH); delayMicroseconds(10); digitalWrite(trigPinD, LOW); durationD = pulseIn(echoPinD, HIGH); distanceD = (durationD/2) / 29.1; Serial.print(distanceD); Serial.println(" cm"); int durationG, distanceG; digitalWrite(trigPinG, LOW); delayMicroseconds(2); digitalWrite(trigPinG, HIGH); delayMicroseconds(10); digitalWrite(trigPinG, LOW); durationG = pulseIn(echoPinG, HIGH); distanceG = (durationD/2) / 29.1; Serial.print(distanceG); Serial.println(" cm"); if (distanceG < 10 ) clockwiseG(); anticlockwiseD(); else if ( distanceD < 10 ) anticlockwiseG(); clockwiseD(); else ; clockwiseD(); clockwiseG(); } ////////////////////////////////////////////////////////////////////////////// //set pins to ULN2003 high in sequence from 1 to 4 //delay "motorSpeed" between each pin setting (to determine speed) void anticlockwiseD() { for(int iD = 0; iD < 8; iD++) { setOutputD(iD); delayMicroseconds(motorSpeed); } } void clockwiseD() { for(int iD = 7; iD >= 0; iD--) { setOutputD(iD); delayMicroseconds(motorSpeed); } void anticlockwiseG() { for(int iG = 0; iG < 8; iG++) { setOutputG(iG); delayMicroseconds(motorSpeed); } } void clockwiseG() { for(int iG = 7; iG >= 0; iG--) { setOutputG(iG); delayMicroseconds(motorSpeed); } } void setOutputD(int out) { digitalWrite(motorPin1, bitRead(lookup[out], 0)); digitalWrite(motorPin2, bitRead(lookup[out], 1)); digitalWrite(motorPin3, bitRead(lookup[out], 2)); digitalWrite(motorPin4, bitRead(lookup[out], 3)); } void setOutputG(int out) { digitalWrite(motorPin1, bitRead(lookup[out], 0)); digitalWrite(motorPin2, bitRead(lookup[out], 1)); digitalWrite(motorPin3, bitRead(lookup[out], 2)); digitalWrite(motorPin4, bitRead(lookup[out], 3)); }