Icon Concept (For Designer)
Ek Ultrasonic Sensor kisi cheez ki doori naap raha hai. Paas mein 7-Segment Display par number '4' likha hai. Neeche ek Ruler (Scale) bana ho.
What It Does (Yeh Kya Karta Hai?)
Yeh robot aapko batayega ke koi cheez kitni door hai.
- Agar aap haath 5 feet door rakhenge, toh screen par '5' likha aayega.
- Agar 2 feet door rakhenge, toh '2' likha aayega. (Kyunki humare paas sirf 1 digit hai, hum sirf 0 se 9 feet tak hi dikha sakte hain).
Components Required
-
Microcontroller: Arduino Uno
-
7-Segment Display (1 Digit, 10 Pins wala)
- Ultrasonic Sensor (HC-SR04).
- Jumper Wires (Kam se kam 8)
Wiring (Taarein Jorna)
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
Ultrasonic Sensor (Naya Connection):
- VCC: → Arduino 5V.
- GND: → Arduino GND.
- Trig: → Arduino Pin 10.
- Echo: → Arduino Pin 11.
Code
// PlzPapa Project: Digital Foot Ruler (Final Version)
// Wiring: A=2, B=3, C=4, D=5, E=6, F=7, G=8
// Ultrasonic: Trig=10, Echo=11
const int trigPin = 10;
const int echoPin = 11;
// 7-Segment Patterns (0-9 aur Dash)
// A, B, C, D, E, F, G (1 = ON, 0 = OFF)
byte numbers[11][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
{0,0,0,0,0,0,1} // 10 (Dash '-' for empty/out of range)
};
void setup() {
pinMode(trigPin, OUTPUT);
pinMode(echoPin, INPUT);
// Segment Pins 2 se 8 tak Output set karein
for(int i=2; i<=8; i++) {
pinMode(i, OUTPUT);
}
Serial.begin(9600);
}
// Function to display number on 7-segment
void showDigit(int num) {
int pin = 2; // Starting from Pin 2 (Segment A)
for(int i=0; i<7; i++) {
digitalWrite(pin, numbers[num][i]);
pin++;
}
}
void loop() {
long duration;
int distanceCm;
int feet;
// Ultrasonic Trigger
digitalWrite(trigPin, LOW);
delayMicroseconds(2);
digitalWrite(trigPin, HIGH);
delayMicroseconds(10);
digitalWrite(trigPin, LOW);
// Read Echo
duration = pulseIn(echoPin, HIGH);
// Convert to CM
distanceCm = duration * 0.034 / 2;
// Convert CM to Feet (1 Foot = 30.48 cm)
// Example: Agar 185 cm hai to 185 / 30.48 = 6.06 (Screen par 6 ayega)
feet = distanceCm / 30.48;
// --- Serial Monitor Debugging ---
Serial.print("Distance CM: ");
Serial.print(distanceCm);
Serial.print(" ---> FEET: ");
Serial.println(feet); // Yeh check karein monitor par
// --- Display Logic ---
// Agar 9 feet se zyada ho ya sensor bohot qareeb ho (error) -> Dash (-)
if (feet > 9 || distanceCm > 300 || distanceCm < 2) {
showDigit(10); // Show Dash
} else {
showDigit(feet); // Show Feet Number (0-9)
}
delay(250); // Thora wait taake numbers jaldi jaldi change na hon
}
Test Kaise Karein:
- Code upload karein.
- Ab Sensor ke aage haath bohot qareeb rakhein -> '0' aayega.
- Thoda peeche jayen (taqreeban 1 foot/12 inch) -> '1' aayega.
- Aur peeche jayen -> 2, 3, 4... aata jayega.
-
9 Feet se door hote hi '-' aa jayega.