Hi,
i have this Motor Controller from DFRobot
PWM Value from 0-127 didn't work (LEDs didn't showing)
PWM Value from 128-255 works fine, but running same fast.
How did it?
Here the code.
int E1 = 13;
int M1 = 12;
int E2 = 11;
int M2 = 10;
void setup()
{
pinMode(E1, OUTPUT);
pinMode(M1, OUTPUT);
pinMode(E2, OUTPUT);
pinMode(M2, OUTPUT);
Serial.begin(9600);
}
void loop()
{
int value;
char val;
while(1)
{
val=Serial.read();
if(val!=-1)
{
switch(val)
{
case '1': value=100; //<------------- PWM didn't work, Motor not running!!!!!!
break;
case '2': value=255;
break;
case 's'://stop
digitalWrite(M1, LOW);
digitalWrite(E1, LOW); //<------------- Motor Speed
digitalWrite(M2, LOW);
digitalWrite(E2, LOW);
break;
case 'q'://Forward left
digitalWrite(M1, HIGH);
analogWrite(E1, value); //<------------- Motor Speed
digitalWrite(M2, LOW);
digitalWrite(E2, HIGH);
break;
case 'w'://Forward
digitalWrite(M1, HIGH);
analogWrite(E1, value); //<------------- Motor Speed
digitalWrite(M2, LOW);
digitalWrite(E2, LOW);
break;
case 'e'://Forward right
digitalWrite(M1, HIGH);
analogWrite(E1, value); //<------------- Motor Speed
digitalWrite(M2, HIGH);
digitalWrite(E2, HIGH);
break;
case 'y'://Backward left
digitalWrite(M1, LOW);
analogWrite(E1, value); //<------------- Motor Speed
digitalWrite(M2, LOW);
digitalWrite(E2, HIGH);
break;
case 'x'://Backward
digitalWrite(M1, LOW);
analogWrite(E1, value); //<------------- Motor Speed
digitalWrite(M2, LOW);
digitalWrite(E2, LOW);
break;
case 'c':// Backward right
digitalWrite(M1, LOW);
analogWrite(E1, value); //<------------- Motor Speed
digitalWrite(M2, HIGH);
digitalWrite(E2, HIGH);
break;
}
}
}
}