Wednesday, Jan 16 Week 3

4WD Robot Vehicle 24v

Large robotic vehicle for outdoor use.
2x 24 VDC electric scooter motors (400 watt) controlled by an Arduino and a remote controller.
Motor controller made from MOSFET transistors and relays.
Sprockets and chains from pocket bike/mini crosser.

Mechanical parts

The frame was made from squared metal pipe from a furniture.
Wheels originally for handtruck and therefore cheap and easy to replace.
Shaft is massive 20 mm round steel.
Sprockets and chain from electric scooter and pocket bike.

Qty Title Description
1 Robot body metal skeleton from a furniture
4 Wheel for handtruck
4 Rear sprocket for thin chain
4 Thin chain for pocket bike/mini crosser
4 Connecting joints for thin chain
2 Round steel 20 mm for shaft, S 235 JRG2, 20 mm

Electrical parts


Qty Title Description
2 Currie Technologies XYD-6D motor 24 VDC 400W 22A
2 Battery GF 12 22Y from electric fork lift
1 Arduino Mega for controlling
1 E-Fly 2.4 GHz DSM transmitter
1 E-Fly er61-2.4 GHz DSM 6ch receiver uses 4 af 6 channels
1 24 VDC motor controller

Motor control and parts

Qty Title Description
1 Power inverter cabinet Aluminum box
2 ch. PWM/Analog circuit Controlling motor speed from PWM signals
2 ch. Relay H-Bridge For motor reversing (only)
16 ch. 5v to 12v switching Controlling relays and other 12 VDC equipment

The motor controller works for two motors.
For each motor there is a function to control the speed and a function to invert the power for reverse.
The speed is controlled by a PWM-signal and for reversing a digital on/off signal is used.

Motor controller

For a single motor the schematic looks like this:
So were using two bistable relays for reversing (only).
Used two 70 amp MOSFET transistors (not long term sufficient) to control the speed.
Also a PNP-transistor to control the MOSFET's, and a NPN-transistor to convert from 5 VDC to ground.
Resistors named R2 is transistor pull-down (when no signal coming).
Diodes on input signals to protect behind in the circuit (back to the Arduino).
Diodes on MOSFET outputs goes to 24 VDC to redirect motor noise away from the transistor.
Small transistors used is BC547 NPN and BC557 PNP general purpose transistors.

Remote controller

The Arduino source-code works in such a way that both motors is controlled from the left joystick.
If the joystick is moved up/down both motors drives forwards/backwards.
When also moving the stick to a side, less power is given to one motor, making the vehicle turn gradually.
When the stick is only moved to a side (no longer up/down) the motors runs in opposite direction gradually,
making the vehicle rotate (as seen in video above).
The right side joystick is reserved for attachment to be mounted on the vehicle later.

Wiring etc.

The Arduino-code has constants to assign the correct pins, and there is a reserved digital pin for safety switch,
when the remote controller is turned on.
In that way the 24 VDC power supply is disconnected when the remote controller is turned off or at signal loss.

Arduino PIN assignments, Arduino Duemilanove (Uno)

While building the robotic vehicle, I used an Arduino Duemilanove (Uno) for testing.
Using the smaller Arduino type, only enough pins to connect the most important functions to the motor and remote controller.

Subject Pin Wire Type Range Destination
-Unassigned- 2 - - - -
RMT Axis AH 3 - PWM input WORD, 16-Bit A: Horizontal
-Unassigned- 4 - - - -
RMT Axis AV 5 - PWM input WORD, 16-Bit A: Vertical
RMT Axis BV 6 - PWM input WORD, 16-Bit B: Vertical
RMT Axis BH 7 - PWM input WORD, 16-Bit B: Horizontal
Security SW (Remote) 8 Black @ green (Blue) Digital output BOOL, no/yes 24v 70A relay
Motor R speed 9 Green (Orange/white) PWM output BYTE, 8-Bit Motor R analog circuit
Motor L speed 10 Light green (Orange) PWM output BYTE, 8-Bit Motor L analog circuit
Horn (Buzzer) 11 - Digital output BOOL, no/yes Buzzer
Motor R reverse 12 Red (Brown) Digital output BOOL, no/yes Motor R H-Bridge
Motor L reverse 13 White @ red (Brown/white) Digital output BOOL, no/yes Motor L H-Bridge

Lights and buzzer (horn)

To indicate status from the Arduino-program there is mounted lights on the vehicle and a small buzzer for horn.
Front and rear lights is activated on the safety switch when the remote controller and 24 VDC power supply is turned on.
Parking lights is active when the remote controller and 24 VDC power supply is turned off but the main switch is still turned on.
Parking lights also turned on when charging.
Flash lights left/right side turns on automatically when the vehicle is turning or rotating.
Far head-lights turns on automatically at high speed driving.


The two 12 VDC batteries is connected in series to acheive the 24 VDC required for the motors.
By using relays the can be disconnected from each other and charged individually with a 12 VDC input supply (shown below).
The relays swithes automatically when 12 VDC charger power is connected.

Related pages of 4WD Robot Vehicle 24v

Resistor color values
Simple walking robot
LPT relay-board circuits