The obstacle avoiding robot uses the ultrasonic sensor to measure distance. The servo turns the sensor left and right, so Arduino Nano can choose the safer path.
Mode-specific circuit schematic
Connection reference for this build
- Obstacle circuit schematic
- Mode-specific schematic: only the modules needed for this build are shown.
- +5V regulated logic rail
- 7.4V motor rail from 2 x 3.7V Li-ion through switch
- Common GND rail
- Arduino Nano
- D4 Ultrasonic TRIG
- D7 Ultrasonic ECHO
- D12 Servo signal
- D5 L293D ENA PWM
- D6 L293D ENB PWM
- D8-D11 L293D inputs
- L293D
- Pin 1 EN1,2 from D5
- Pin 2 IN1 from D8
- Pin 7 IN2 from D9
- Pin 9 EN3,4 from D6
- Pin 10 IN3 from D10
- Pin 15 IN4 from D11
- Pin 8 VCC2 from 7.4V
- Pin 16 VCC1 from +5V
- Left
- Right
- HC-SR04
- TRIG to Nano D4
- ECHO to Nano D7
- Servo
- Signal to Nano D12
- Blue = Arduino signal, red = power, gray = ground. Arduino GND, L293D GND, battery negative, and module GND must join.
Pin and power rules
Use the Li-ion pack for motor power through L293D VCC2, and regulated 5V for Arduino Nano logic and modules.
All grounds must be common, otherwise the Arduino signal has no reliable reference.
The Arduino programs on this page match this pin plan: D5/D6 PWM, D8-D11 motor direction, D2-D3 Bluetooth, D4/D7 ultrasonic, D12 servo, A0-A5 sensors/RF.
Step-by-step build
- Build the base motor wiring first.
- Mount the ultrasonic sensor on the micro servo.
- Connect TRIG to D4, ECHO to D7, and servo signal to D12.
- Start with a 25 cm stop distance.
- Place books or boxes as obstacles and observe decisions.
Arduino Nano program
Continue in the Arduino workspace
Open the existing protected workspace for code and compilation. Sign in there when required.
Open Arduino workspace →Do and don't
- Use Arduino Nano as the controller.
- Keep battery negative and all module GND pins connected.
- Test motors with wheels lifted first.
- Use a voltage divider for HC-05 RX if Arduino TX is 5 V.
- Power servo from a stable 5 V source.
- Do not short Li-ion cells.
- Do not connect motors directly to Arduino Nano pins.
- Do not mix loose wires without labels.
- Do not run high motor speed during first tests.
- Do not assume every RF module has the same pinout.