👤

LA CODUL ACESTA ***
#include <ArduinoRobot.h>#include <Arduino_LCD.h>#include <Compass.h>#include <EasyTransfer2.h>#include <EEPROM_I2C.h>#include <Fat16.h>#include <Fat16Config.h>#include <Fat16mainpage.h>#include <Fat16util.h>#include <FatStructs.h>#include <Multiplexer.h>#include <SdCard.h>#include <SdInfo.h>#include <Squawk.h>#include <SquawkSD.h> int lastError = 0;
int MOTOR_DREAPTA_PIN1=3;
int MOTOR_DREAPTA_PIN2=5;
int MOTOR_STANGA_PIN1=6;
int MOTOR_STANGA_PIN2=9;
int m1Speed=0;
int m2Speed=0;
int error;
int cnt;
double KP=0.25;
double KD=0.25;
int M1=130;
int M2=130;

double motorSpeed=0;
QTRSensorsRC ir((unsigned char[]) {14, 15, 16, 17, 18, 19},6);
unsigned int sensors[6];
void setup() {
Robot.begin();
Serial.begin(9600);

pinMode(MOTOR_DREAPTA_PIN1,OUTPUT);
pinMode(MOTOR_DREAPTA_PIN2,OUTPUT);
pinMode(MOTOR_STANGA_PIN1,OUTPUT);
pinMode(MOTOR_STANGA_PIN2,OUTPUT);


int i;
for (i = 0; i < 100; i++)
{
ir.calibrate();
delay(20);
}

}

void mers(int m1speed,int m2speed)
{
if (m1Speed>=0)
{
analogWrite(MOTOR_STANGA_PIN1,m1Speed);
analogWrite(MOTOR_STANGA_PIN2,0);
}
else
{
analogWrite(MOTOR_STANGA_PIN1,0);
analogWrite(MOTOR_STANGA_PIN2,-m1Speed);
}
if (m2Speed>=0)
{
analogWrite(MOTOR_DREAPTA_PIN1,m2Speed);
analogWrite(MOTOR_DREAPTA_PIN2,0);
}
else
{
analogWrite(MOTOR_DREAPTA_PIN1,0);
analogWrite(MOTOR_DREAPTA_PIN2,-m2Speed);
}
}

void loop() {

int position = ir.readLine(sensors);
int error = position - 2500;
double motorSpeed = round(KP * error + KD * (error - lastError));
lastError = error;
/*Serial.print("MOTOR SPEED E");
Serial.println(motorSpeed);*/
m1Speed = M1 + motorSpeed;
m2Speed = M2 - motorSpeed;

/*Serial.print("VITEZA MOTOR 1 E");
Serial.println(m1Speed);
Serial.print("VITEZA MOTOR 2 E");
Serial.println(m2Speed);*/

if (m1Speed < -200)
m1Speed = -200;
if (m2Speed < -200)
m2Speed = -200;
if (m1Speed > 200)
m1Speed = 200;
if (m2Speed > 200)
m2Speed = 200;
if ((position==0) || (position==5000)) {
cnt++;
if(cnt>90){
m1Speed=0;
m2Speed=0;
}
}
else {
cnt=0;
}

if (sensors[5]==1 && sensors[4]==1)
{
Robot.turn(90);
}

if (sensors[0]==1 && sensors[1]==1)
{ Robot.turn(-90) ;
}

if (sensors[5]==1 && sensors[4]==1 && sensors[0]==1 && sensors[1]==1)
{
Robot.motorsWrite(100,100);
}
if (sensors[5]==0 && sensors[4]==0 && sensors[3]==0 && sensors[2]==0 && sensors[0]==0 && sensors[1]==0)
{Robot.motorsWrite(100,100); }
mers(m1Speed,m2Speed);
}
***
IMI DA URMATOAREA EROARE, CE POT SA FAC ?


In file included from C:\Users\edymo\Desktop\ROBOT_COD_MOCANU\ROBOT_COD_MOCANU.ino:1:0:

C:\Users\edymo\Documents\Arduino\libraries\Robot_Control\src/ArduinoRobot.h:98:13: error: expected unqualified-id before numeric constant

#define TK1 101

^

C:\Users\edymo\Documents\Arduino\libraries\Robot_Control\src/ArduinoRobot.h:107:12: note: in expansion of macro 'TK1'

#define M1 TK1

^

C:\Users\edymo\Desktop\ROBOT_COD_MOCANU\ROBOT_COD_MOCANU.ino:30:5: note: in expansion of macro 'M1'

int M1=130;

^

C:\Users\edymo\Documents\Arduino\libraries\Robot_Control\src/ArduinoRobot.h:99:13: error: expected unqualified-id before numeric constant

#define TK2 102

^

C:\Users\edymo\Documents\Arduino\libraries\Robot_Control\src/ArduinoRobot.h:108:12: note: in expansion of macro 'TK2'

#define M2 TK2

^

C:\Users\edymo\Desktop\ROBOT_COD_MOCANU\ROBOT_COD_MOCANU.ino:31:5: note: in expansion of macro 'M2'

int M2=130;

^

exit status 1
Error compiling for board Arduino/Genuino Uno.


Răspuns :

Mamaaaa, Arduino? Bv ma.

In primul rand, pot sa spuna ca daca folosesti o librarie externa, e stricata.

#define TK1 101
#define M1 TK1
int M1=130

Nu au sens. La fel si cu TK2 si M2.
Prima definitie are sens, dar presupun ca TK1 este deja o variabila deci iti da eroare.
A doua si a treia linie... Ce naiba e asta???? Ori vrei ca M1 sa fie TK1 si ai M1=TK1, ori sa il initializezi ca fiind 130.

Daca tot codul si librariile sunt luate cu copy-paste mai inteleg de erori, dar daca nu, iti recomand sa te uiti in documentatiile Arduino si C si apoi sa te apuci sa rescrii tot codul.
Vă mulțumim că ați ales să vizitați site-ul nostru dedicat Informatică. Sperăm că informațiile prezentate v-au fost utile. Dacă aveți alte întrebări sau aveți nevoie de asistență suplimentară, nu ezitați să ne contactați. Vă așteptăm cu drag să reveniți și nu uitați să ne salvați în lista de favorite!


Ze Teaching: Alte intrebari