By ricky
#5969
Hello,

I have bought the robot kit ''4WD Mobile Platform (Arduino Controller)'' with a Romeo All-in-one controller.  I assembled it using the video tutorial linked on your website and programmed it and everything was working fine.

Recently, the motors were barely working, so I thought it was just that the batteries needed to be changed, but when I put new batteries in, it was still barely working.  The motors work so slow that when i put the vehicle on the floor, it cant even move because of its own weight. 

I unplugged the motors from the Romeo board and plugged them to an outside voltage source and as I turned up the voltage, the motors were responding great.  I'm wondering if my problem might be the input voltage I use to power the Romeo board and the motors.  As per the video tutorial, I used the included 5 x AA battery holder connected to the switch and then to the Romeo board motor power input, being careful to connect the ground to ''GND'' and positive wire to ''Vin''.  Then I connected the motors by pairs on the motor terminals A and B, again like the tutorial said.  Is that the proper way to connect it?  What could be my problem?  Did I somehow ''fried'' a chip or damaged the Romeo board? How can I test to know what the problem is?  And also, how can I avoid this from happenning.

I should mention that in my code, when I set the speed of the motors, using the PWM that are located on pins 5 and 6, i used a value of 200.  On the sample code, there's a value of 100, but at that intensity the vehicle was going much slower than the 90cm/s it's rated for... but what is the limit value we can use with the PWM without driving too much current through the Motor terminals?




Thanks a lot,
Samuel Lassonde
By Lauren
#5970
int E1 = 5;
int E2 = 6;
int M1 = 4;
int M2 = 7; 

void advance(char a,char b)
        {
          analogWrite(E1,a);
          digitalWrite(M1,HIGH);   
          analogWrite(E2,b);   
          digitalWrite(M2,HIGH);
        } 

void setup()
{
    for(int i=4;i<=7;i++)
    pinMode(i, OUTPUT);
}

void loop()
{
int value = 150;
advance(value,value);
delay(500);
if(value <= 240) value += 10;
else value = 150;
}

Try the code and observe the responding of motor.

Maybe your problem is not caused by the connection and the wiring of hardware.

If the input power is 6 volts , the PWM value is about 120 at least to drive the motors working slowly. So the input power for the sample code maybe higher.

And you could use a value of 255, then using a voltmeter to measure the volt between motor terminals A and B to find out whether the problem is caused by Romeo or motor.

output = value/255 * input

input: input power
value: the PWM value
output: output power



Lauren
By mobilewill
#5971
Did you get this working? I ordered the kit and hope I don't run into something like this. I am going to use a lithpoly 6Ah battery from sparkrun and a step-up to power it.