Arduino Mega Fire Fighting Robot with Flame and Ultrasonic Sensors
View and Edit Project In Cirkit Designer
Fire Fighting Robot Circuit Documentation
Summary
This document provides a detailed overview of a fire-fighting robot circuit. The robot is designed to detect fire using flame sensors and navigate towards the fire using ultrasonic sensors. It then extinguishes the fire using a water pump controlled by a motor driver. The robot is powered by a combination of 9V and 12V batteries, and an Arduino Mega ADK microcontroller is used to control the various components.
Component List
9V Battery
- Description: Provides 9V power supply.
- Pins: +, -
KY-026 Flame Sensor
- Description: Detects the presence of fire.
- Pins: A0, GND, VCC, D0
HC-SR04 Ultrasonic Sensor
- Description: Measures distance to objects.
- Pins: VCC, TRIG, ECHO, GND
Step Up Boost Power Converter, Adjustable Voltage Regulator
- Description: Boosts voltage to a required level.
- Pins: VOUT+, VOUT-, VIN+, VIN-
Rocker Switch (SPST)
- Description: Simple on/off switch.
- Pins: 1, 2
Tower Pro SG90 Servo
- Description: Small servo motor for precise control.
- Pins: Signal, +5V, GND
Water Pump
- Description: Pumps water to extinguish fire.
- Pins: VCC, GND
Battery 12V
- Description: Provides 12V power supply.
- Pins: +, -
Motor Driver (L298N)
- Description: Controls the motors and water pump.
- Pins: OUT 1, OUT 2, OUT 3, OUT 4, +12V INPUT, GND, +5V OUTPUT, ENA, IN 1, IN 2, IN 3, IN 4, ENB
DC Motor with Encoder
- Description: Motor with encoder for precise control.
- Pins: Encoder B, Encoder A, GND, VCC, Motor +ve, Motor -ve
Arduino Mega ADK (Rev3)
- Description: Microcontroller for controlling the robot.
- Pins: A0-A15, D0-D53, ICSP, RESET, 3V3, 5V, GND, VIN, USB
Wiring Details
9V Battery
- + connected to Rocker Switch (SPST) pin 2
- - connected to GND net
KY-026 Flame Sensor
- GND connected to GND net
- VCC connected to 5V net
- D0 connected to:
- Arduino Mega ADK pin D22
- Arduino Mega ADK pin D23
- Arduino Mega ADK pin D24
HC-SR04 Ultrasonic Sensor
- GND connected to GND net
- VCC connected to 5V net
- TRIG connected to:
- Arduino Mega ADK pin D47
- Arduino Mega ADK pin D49
- ECHO connected to:
- Arduino Mega ADK pin D46
- Arduino Mega ADK pin D48
Step Up Boost Power Converter, Adjustable Voltage Regulator
- VIN+ connected to 12V Battery +
- VIN- connected to GND net
- VOUT+ connected to +5V net
- VOUT- connected to GND net
Rocker Switch (SPST)
- 1 connected to 5V net
- 2 connected to 9V Battery +
Tower Pro SG90 Servo
- GND connected to GND net
- +5V connected to +5V net
- Signal connected to:
- Arduino Mega ADK pin D11
- Arduino Mega ADK pin D13
Water Pump
- VCC connected to Motor Driver (L298N) pin OUT 1
- GND connected to Motor Driver (L298N) pin OUT 2
Battery 12V
- + connected to:
- Motor Driver (L298N) +12V INPUT
- Step Up Boost Power Converter, Adjustable Voltage Regulator VIN+
- - connected to GND net
Motor Driver (L298N)
- OUT 1 connected to:
- Water Pump VCC
- DC Motor with Encoder Motor +ve
- OUT 2 connected to:
- Water Pump GND
- DC Motor with Encoder Motor -ve
- OUT 3 connected to DC Motor with Encoder Motor +ve
- OUT 4 connected to DC Motor with Encoder Motor -ve
- +12V INPUT connected to 12V Battery +
- GND connected to GND net
- ENA connected to Arduino Mega ADK pin D9
- ENB connected to Arduino Mega ADK pin D10
- IN 1 connected to:
- Arduino Mega ADK pin D7
- Arduino Mega ADK pin D36
- IN 2 connected to:
- Arduino Mega ADK pin D6
- Arduino Mega ADK pin D38
- IN 3 connected to Arduino Mega ADK pin D5
- IN 4 connected to Arduino Mega ADK pin D4
DC Motor with Encoder
- Encoder B connected to:
- Arduino Mega ADK pin D3
- Arduino Mega ADK pin D19
- Encoder A connected to:
- Arduino Mega ADK pin D2
- Arduino Mega ADK pin D18
- GND connected to GND net
- VCC connected to 5V net
- Motor +ve connected to Motor Driver (L298N) pin OUT 1
- Motor -ve connected to Motor Driver (L298N) pin OUT 2
Arduino Mega ADK (Rev3)
- GND connected to GND net
- 5V connected to 5V net
- D2 connected to DC Motor with Encoder Encoder A
- D3 connected to DC Motor with Encoder Encoder B
- D4 connected to Motor Driver (L298N) IN 4
- D5 connected to Motor Driver (L298N) IN 3
- D6 connected to Motor Driver (L298N) IN 2
- D7 connected to Motor Driver (L298N) IN 1
- D8 connected to Motor Driver (L298N) ENA
- D9 connected to Motor Driver (L298N) ENA
- D10 connected to Motor Driver (L298N) ENB
- D11 connected to Tower Pro SG90 Servo Signal
- D13 connected to Tower Pro SG90 Servo Signal
- D18 connected to DC Motor with Encoder Encoder A
- D19 connected to DC Motor with Encoder Encoder B
- D22 connected to KY-026 Flame Sensor D0
- D23 connected to KY-026 Flame Sensor D0
- D24 connected to KY-026 Flame Sensor D0
- D36 connected to Motor Driver (L298N) IN 1
- D38 connected to Motor Driver (L298N) IN 2
- D46 connected to HC-SR04 Ultrasonic Sensor ECHO
- D47 connected to HC-SR04 Ultrasonic Sensor TRIG
- D48 connected to HC-SR04 Ultrasonic Sensor ECHO
- D49 connected to HC-SR04 Ultrasonic Sensor TRIG
Documented Code
// Fire Fighting Robot Code
#include <Servo.h>
// Define pins for Motor Driver (L298N)
#define ENA 9
#define ENB 10
#define IN1 7
#define IN2 6
#define IN3 5
#define IN4 4
// Define pins for Encoders
#define ENCODER_A1 2
#define ENCODER_B1 3
#define ENCODER_A2 18
#define ENCODER_B2 19
// Define pins for Flame Sensors
#define FLAME_SENSOR_1 22
#define FLAME_SENSOR_2 23
#define FLAME_SENSOR_3 24
// Define pins for Ultrasonic Sensors
#define TRIG_1 49
#define ECHO_1 48
#define TRIG_2 47
#define ECHO_2 46
// Define pins for Servo Motors
#define SERVO_VERTICAL 11
#define SERVO_HORIZONTAL 13
// Define pins for Water Pump
#define PUMP_ENA 8
#define PUMP_IN1 36
#define PUMP_IN2 38
// Servo objects
Servo verticalServo;
Servo horizontalServo;
// Function to read distance from ultrasonic sensor
long readUltrasonicDistance(int trigPin, int echoPin)