Finally I put together my 4WD Robotic car. Thanks to Hercules Motor controller it’s doing what I am expecting of it. My self challenge was to make it carry 5 gallon water bottle. Few attempts failed as the motor was starting and stoping fast and the bottle was jumping out of the car. So I had to increase and reduce the speed slowly.
Parts used in this test
- Hercules Dual 15A 6-20V Motor Controller
- UartSBee V4
- Vex 7.2V. 2000mAH NiMH Battery Pack
- Makeblock Robot Kits
Source code used for this experiment 😉
// pin ctrl
#define PINCS 6 // all mos cs
#define PINM1F 4
#define PINM1R 5
#define PINM2F 7
#define PINM2R 8
#define PINPWMA 9 // PWM channel A (motor A speed)
#define PINPWMB 10 // PWM channel B (motor B speed)
int motorSpeed=0;
void setup()
{
Serial.begin(19200);
Serial.println("HERCULES 4WD TEST");
pinMode(PINCS, OUTPUT);
pinMode(PINM1F, OUTPUT);
pinMode(PINM1R, OUTPUT);
pinMode(PINM2F, OUTPUT);
pinMode(PINM2R, OUTPUT);
motorStop(100);
}
void loop()
{
for (int i=0;i<=255;i=i+5){
motorSetSpeed(i);
motorForward(20);
}
motorSetSpeed(255);
motorForward(1000);
for (int i=255;i>=0;i=i-5){
motorSetSpeed(i);
motorForward(20);
}
motorStop(2000);
for (int i=0;i<=255;i=i+5){
motorSetSpeed(i);
motorReverse(20);
}
motorSetSpeed(255);
motorReverse(1000);
for (int i=255;i>=0;i=i-5){
motorSetSpeed(i);
motorReverse(20);
}
motorStop(2000);
}
void motorSetSpeed(int power)
{
motorSpeed=power;
analogWrite(PINPWMA,motorSpeed);
analogWrite(PINPWMB,motorSpeed);
}
void motorStop(int duration)
{
digitalWrite(PINCS,LOW);
digitalWrite(PINM1F,LOW);
digitalWrite(PINM1R,LOW);
digitalWrite(PINM2F,LOW);
digitalWrite(PINM2R,LOW);
delay(duration);
}
void motorForward(int duration)
{
digitalWrite(PINM1F,LOW);
digitalWrite(PINM1R,HIGH);
digitalWrite(PINM2F,LOW);
digitalWrite(PINM2R,HIGH);
digitalWrite(PINCS,HIGH);
delay(duration);
}
void motorReverse(int duration)
{
digitalWrite(PINM1F,HIGH);
digitalWrite(PINM1R,LOW);
digitalWrite(PINM2F,HIGH);
digitalWrite(PINM2R,LOW);
digitalWrite(PINCS,HIGH);
delay(duration);
}
Watch out for next update with remote control 😀





