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 😀