What It Does (Yeh Kya Karta Hai?)
Is project mein Ultrasonic Sensor aankhon ka kaam karega aur 7-Segment Display screen ka kaam karega.
- Door (Far): Screen par '9' show hoga (Matlab safe hai).
- Qareeb (Near): Jaise jaise haath ya deewar qareeb aayegi, number kam hota jayega (8, 7, 6... 1).
- Bilkul Qareeb (Danger): Screen par '0' show hoga (Matlab Takkar!).
Components Required
-
Microcontroller: Arduino Uno
- Breadboard
- Ultrasonic Sensor (HC-SR04)
- 7-Segment Display (1-Digit)
- 220 ohm Resistor (Red-Red-Brown) - Display ko protect karne ke liye
- Jumper Wires
Wiring (Taarein Jorna)
Wiring thori dhiyaan se karein kyun ke taarein (wires) zyada hain.
A. Ultrasonic Sensor:
- VCC: Arduino 5V
- GND: Arduino GND
- Trig: Arduino Pin 10
- Echo: Arduino Pin 11
B. 7-Segment Display (Important!)
Step 1: Common Connection (Resistor Yahan Lagega)
Display ki Neeche wali line mein jo Beech wala Pin (Pin 3) hai:
- Us Pin se Resistor jodein.
- Resistor ka doosra sira Arduino GND mein lagayen. (Is se sab LEDs safe rahengi).
Step 2: Segments Connection (A to G)
🔻 Neeche Wali Line (Left se shuru karein):
-
Pehli Pin (E): → Arduino Pin 6
-
Dusri Pin (D): → Arduino Pin 5
-
Teesri (Common): → Yeh humne Resistor/GND se jod di hai.
-
Chothi Pin (C): → Arduino Pin 4
- Paanchvi (Dot): → Khali chhor dein.
🔺 Upar Wali Line (Left se shuru karein):
-
Pehli Pin (G): → Arduino Pin 8
-
Dusri Pin (F): → Arduino Pin 7
-
Teesri (Common): → Khali chhor dein (Neeche wali ground kaafi hai).
-
Chothi Pin (A): → Arduino Pin 2
- Paanchvi Pin (B): → Arduino Pin 3
Code
/*
* Project 32: Reverse Parking Sensor
* Platform: PlzPapa Robotic Kit
* * Logic:
* Distance > 30cm = Show 9 (Safe)
* Distance < 5cm = Show 0 (Danger)
*/
// Ultrasonic Pins
const int trigPin = 10;
const int echoPin = 11;
// 7-Segment Pins (a,b,c,d,e,f,g)
int segPins[] = {2, 3, 4, 5, 6, 7, 8};
// Numbers 0-9 ka pattern (1 = ON, 0 = OFF) for Common Cathode
byte numbers[10][7] = {
{1, 1, 1, 1, 1, 1, 0}, // 0
{0, 1, 1, 0, 0, 0, 0}, // 1
{1, 1, 0, 1, 1, 0, 1}, // 2
{1, 1, 1, 1, 0, 0, 1}, // 3
{0, 1, 1, 0, 0, 1, 1}, // 4
{1, 0, 1, 1, 0, 1, 1}, // 5
{1, 0, 1, 1, 1, 1, 1}, // 6
{1, 1, 1, 0, 0, 0, 0}, // 7
{1, 1, 1, 1, 1, 1, 1}, // 8
{1, 1, 1, 1, 0, 1, 1} // 9
};
void setup() {
pinMode(trigPin, OUTPUT);
pinMode(echoPin, INPUT);
// Saari segment pins ko OUTPUT banao
for (int i = 0; i < 7; i++) {
pinMode(segPins[i], OUTPUT);
}
Serial.begin(9600);
}
void loop() {
// 1. Distance Measure karo
long duration, distance;
digitalWrite(trigPin, LOW);
delayMicroseconds(2);
digitalWrite(trigPin, HIGH);
delayMicroseconds(10);
digitalWrite(trigPin, LOW);
duration = pulseIn(echoPin, HIGH);
distance = (duration / 2) / 29.1; // cm mein convert
Serial.print("Distance: ");
Serial.println(distance);
// 2. Distance ko 0 se 9 ke number mein convert karo
int displayNum;
if (distance > 30) {
displayNum = 9; // Bohat door hai (Safe)
} else if (distance < 5) {
displayNum = 0; // Takkar honay wali hai!
} else {
// 5cm se 30cm ke beech map karo (reverse order mein)
displayNum = map(distance, 5, 30, 0, 9);
}
// 3. Screen par number dikhao
showNumber(displayNum);
delay(100);
}
// Number dikhane ka function
void showNumber(int num) {
for (int i = 0; i < 7; i++) {
digitalWrite(segPins[i], numbers[num][i]);
}
}