Dual Arduino Nano Controlled Robotic Vehicle with NRF24L01 Wireless Communication and Servo Steering
View and Edit Project In Cirkit Designer
Circuit Documentation
Summary
This circuit is designed to control and communicate between various components including two Arduino Nano microcontrollers, two NRF24L01 wireless transceiver modules, a L298N DC motor driver, an analog joystick, a servo motor, two DC motors, and a 12V battery. The Arduinos are responsible for processing inputs from the joystick and controlling the servo and DC motors through the L298N driver. The NRF24L01 modules enable wireless communication between the Arduinos. The 12V battery provides power to the motor driver and indirectly to other components.
Component List
Microcontrollers
- Arduino Nano: A compact board based on the ATmega328 microcontroller, featuring digital and analog I/O pins.
Wireless Modules
- NRF24L01: A 2.4GHz wireless transceiver module used for short-range communication between devices.
Motor Driver
- L298N DC Motor Driver: A module capable of driving two DC motors or one stepper motor, with direction and speed control.
Input Devices
- Analog Joystick (Wokwi Compatible): A two-axis joystick with a push-button, providing analog input signals.
Actuators
- Servo: A rotary actuator or motor that allows for precise control of angular position.
- DC Motor: An electric motor that runs on direct current (DC) electricity.
Power Supply
- 12V Battery: A power source used to supply electrical energy to the circuit.
Miscellaneous
- Comment: A non-electrical component used for adding notes or comments within the circuit design.
Wiring Details
Arduino Nano
- Digital Pins: Used for interfacing with digital sensors, actuators, and communication modules.
- Analog Pins: Used for reading analog sensor values.
- Power Pins (VIN, 5V, 3V3, GND): Used for power supply and grounding.
NRF24L01
- MOSI, MISO, SCK, CSN, CE: SPI communication interface with the Arduino Nano.
- VCC (3V), GND: Power supply and grounding.
L298N DC Motor Driver
- IN1, IN2, IN3, IN4: Control inputs for motor direction from the Arduino Nano.
- ENA, ENB: Enable pins for motor speed control from the Arduino Nano.
- OUT1, OUT2, OUT3, OUT4: Outputs connected to DC motors.
- 12V, GND: Power supply from the 12V battery.
- 5V: Output used to power the servo and Arduino Nano.
Analog Joystick
- VERT, HORZ: Analog outputs connected to the Arduino Nano for reading joystick position.
- SEL: Digital output connected to the Arduino Nano for reading button press.
- VCC, GND: Power supply and grounding.
Servo
- PWM: Pulse Width Modulation input from the Arduino Nano for controlling position.
- VCC, GND: Power supply and grounding.
DC Motor
- Pin 1, Pin 2: Power inputs from the L298N motor driver.
Documented Code
Arduino Nano (First Instance)
void setup() {
// put your setup code here, to run once:
}
void loop() {
// put your main code here, to run repeatedly:
}
Arduino Nano (Second Instance)
void setup() {
// put your setup code here, to run once:
}
void loop() {
// put your main code here, to run repeatedly:
}
Note: The provided code for both Arduino Nano instances is a template with empty setup and loop functions. The actual implementation should include initialization of the pins and the logic for handling inputs, outputs, and communication with the NRF24L01 modules.