Error

Hallo,

ik ben nieuw in het programmeren en blijf steeds deze error krijgen: expected primary-expression before ‘>’ token.

Weet iemand hoe dit komt en hoe ik het kan oplossen?
Hier staat mijn code:

//Include Wire Libary for I2C communications
#include <Wire.h>


// Adafruit PWM Servo Driver Library - Version: Latest 
#include <Adafruit_PWMServoDriver.h>


#define SERVOMIN    600 //Minimum Pulse Width
#define SERVOMAX    2000 //Maximum Pulse Width


#define FREQUENTY   60 //Hz


//Define EMG Input
int ControlEMG = A0;


//Define Output on PCA9685
int servo1 = 0;
int servo2 = 1;
int servo3 = 2;
int servo4 = 3;
int servo5 = 4;


//Define Motor Position Variable
int srvDeg1;
int srvDeg2;
int srvDeg3;
int srvDeg4;
int srvDeg5;


int MyFingers = servo2 + servo3 + servo4 + servo5; //MyFingers
int MyFingersDeg = srvDeg2 + srvDeg3 + srvDeg4 + srvDeg5; //MyFingersDeg


int MyWrist = servo1; //MyWrist
int MyWristDeg = srvDeg1; //MyWristDeg


Adafruit_PWMServoDriver pwm = Adafruit_PWMServoDriver();


void setup() 
{
 //Setup PWM Controller object
 pwm.begin();
 pwm.setPWMFreq(FREQUENTY);
}


//Function to move Motor to specific Position
void moveServoDeg(int moveDeg, int servoOut)
{
 int pulse_wide, pulse_width;
 
 //Convert to pulse witdh
 pulse_wide = map(moveDeg, 0, 180, SERVOMIN, SERVOMAX);
 pulse_width = int (float (pulse_wide) / 1000000 * FREQUENTY * 4096);
 
 //Control Motor
 pwm.setPWM(servoOut, 0, pulse_width);
}


//Function to convert Potentiometer Position into Servo Angle
int getDeg(int controlIn)
{
 int EMGVal, srvDeg;
 
 int Value = analogRead(ControlEMG);
 
 int Low = 0;
 int High = 1023;
 if (Value <=40){ Low;
 }
 else (Value => 120){ High;
 }
 
 //Read Values from Potentiometer
 EMGVal = analogRead(controlIn);
 
 //Calculate Angle in Degrees
 srvDeg = map(EMGVal, Low, High, 0, 180);
 
 //Return Angle in Degrees
 return srvDeg;
}




void loop()
{
 //Control MyFingers
   //Get desired Position
 MyFingersDeg = getDeg(ControlEMG);
 
 //Move Motor
 moveServoDeg(MyFingersDeg, MyFingers);
 
 
 //Control MyWrist
   //Get desired Position
 MyWristDeg = getDeg(ControlEMG);
 
 //Move Motor
 moveServoDeg(MyWristDeg, MyWrist);
 
 //Short Delay
 delay(20);
}

Ha, beter!

Ik zie nu een heleboel fouten… Die ene die je meldt komt voort uit deze regel:

else (Value => 120){ High;

Als je >= schrijft ipv. => is het in orde.

Maar dan… Diezelfde regel zal ook een andere foutmelding geven, omdat else al fout is; dat moet else if zijn.

En ik weet niet wat de bedoeling is van Low resp. High in deze regels, maar dit gaat niet werken:

if (Value <=40){ Low;
 }
 else (Value => 120){ High;
 }

Zijn het variabelen (nog niet gedeclareerd), waardes, functies … ?

En ik zie nog een paar variabelen die niet gedeclareerd zijn, maar dat kan komen doordat ik jouw servo-library niet heb. Enfin, die kom je vanzelf tegen… :wink:

Heel erg bedankt! Ik had mijn code opnieuw geschreven en met deze hulp klopt hij helemaal.