آرڈوینو کوڈ اور ویڈیو: ایچ سی-ایس آر04 الٹراسونک فاصلہ سینسر ٹی پی1637 ڈسپلے کے ساتھ
اس ٹیوٹوریل میں، ہم دریافت کریں گے کہ HC-SR04 الٹراسونک فاصلہ سینسر کو TP1637 ڈسپلے کے ساتھ کیسے استعمال کیا جائے تاکہ فاصلے کی پیمائش کو بصری طور پر دکھایا جا سکے۔ یہ پروجیکٹ روبوٹک کاروں اور دیگر فاصلہ سینسنگ کاموں جیسی ایپلیکیشنز کے لیے بہترین ہے۔ اس گائیڈ کے اختتام تک، آپ کے پاس ایک کام کرنے والا سیٹ اپ ہوگا جو فاصلہ ناپتا ہے اور اسے اسکرین پر دکھاتا ہے، جس سے سینسر کی ریڈنگز کی آسانی سے نگرانی ممکن ہوگی۔

ہم دو اہم اجزاء استعمال کریں گے: HC-SR04 الٹراسونک سینسر اور TP1637 ڈسپلے ماجیول۔ HC-SR04 سینسر الٹراسونک لہریں خارج کرتا ہے اور ان کے واپس آنے میں لگنے والے وقت کی پیمائش کرتا ہے، اس وقت کی بنیاد پر فاصلہ شمار کرتا ہے۔ TP1637 ڈسپلے I2C کمیونیکیشن استعمال کرتا ہے تاکہ ناپے گئے فاصلے کو صارف دوست فارمیٹ میں دکھایا جا سکے۔ اضافی وضاحت کے لیے، آپ اجزاء کی بصری وضاحت کے لیے 1:30 پر ویڈیو دیکھ سکتے ہیں۔
ہارڈویئر کی وضاحت
HC-SR04 الٹراسونک سینسر میں چار پن ہیں: VCC، Trig، Echo، اور GND۔ VCC پن پاور سپلائی سے جڑتا ہے، جبکہ GND پن گراؤنڈ سے جڑتا ہے۔ Trig پن الٹراسونک پلس کو متحرک کرنے کے لیے استعمال ہوتا ہے، اور Echo پن منعکس شدہ پلس وصول کرتا ہے۔ یہ سینسر 2 سینٹی میٹر سے 400 سینٹی میٹر تک کے فاصلے ناپ سکتا ہے۔
TP1637 ڈسپلے ماجیول بھی چار پنوں پر مشتمل ہے، جو I2C کمیونیکیشن کے لیے استعمال ہوتے ہیں۔ ان پنوں میں VCC، GND، Clock (CLK)، اور Data (DIO) شامل ہیں۔ اس پروجیکٹ میں، CLK پن Arduino کے ڈیجیٹل پن 2 سے جڑا ہوا ہے، اور DIO پن ڈیجیٹل پن 3 سے جڑا ہوا ہے۔ یہ ڈسپلے الٹراسونک سینسر سے فاصلے کی ریڈنگز کو دیکھنا آسان بناتا ہے۔
ڈیٹاشیٹ کی تفصیلات
| مینوفیکچرر | TM1637 |
|---|---|
| پارٹ نمبر | TM1637 |
| لاجک/آئی او وولٹیج | 3.3 V سے 5.5 V |
| سپلائی وولٹیج | 5 V |
| آؤٹ پٹ کرنٹ (فی چینل) | ~25 mA |
| پیک کرنٹ (فی چینل) | ~50 mA |
| PWM فریکوئنسی رہنمائی | N/A |
| ان پٹ لاجک تھریشولڈز | 0.3VCC زیادہ سے زیادہ |
| وولٹیج ڈراپ / RDS(on) / سنترپتی | N/A |
| تھرمل حدود | 85 °C |
| پیکیج | DIP-16 |
| نوٹس / مختلف قسمیں | عام طور پر 7-سیگمنٹ ڈسپلے میں استعمال ہوتا ہے |
- نقصان سے بچنے کے لیے مناسب کنکشن کو یقینی بنائیں۔
- محفوظ آپریشن کے لیے زیادہ سے زیادہ سپلائی وولٹیج 5 V برقرار رکھیں۔
- ضرورت پڑنے پر I2C کمیونیکیشن کے لیے مناسب پل-اپس استعمال کریں۔
- فاصلہ پیمائش کی حد کو مخصوص حدود (2 سینٹی میٹر - 400 سینٹی میٹر) کے اندر رکھیں۔
- پاور اور گراؤنڈ پنوں کو شارٹ کرنے سے گریز کریں۔
- نمائش کو یقینی بنانے کے لیے ڈسپلے کی چمک کی ترتیبات کو جانچیں۔
- فلوٹنگ ان پٹس کی جانچ کریں جو غلط ریڈنگز کا سبب بن سکتے ہیں۔
CLK = کلاک، DIO = ڈیٹا آؤٹ پٹ
وائرنگ ہدایات

HC-SR04 الٹراسونک سینسر کو وائر کرنے کے لیے، VCC پن (سرخ تار) کو Arduino کے 5V پن سے جوڑیں، اور GND پن (پیلی تار) کو گراؤنڈ سے جوڑیں۔ ٹرگر پن (نیلی تار) کو ڈیجیٹل پن 12 سے جوڑا جانا چاہیے، جبکہ ایکو پن (سبز تار) کو ڈیجیٹل پن 11 سے جوڑا جانا چاہیے۔ مناسب آپریشن کو یقینی بنانے کے لیے ان کنکشنز کو محفوظ بنائیں۔
TP1637 ڈسپلے کے لیے، VCC پن (سرخ تار) کو Arduino کے 5V پن سے اور GND پن (پیلی تار) کو گراؤنڈ سے جوڑیں۔ کلاک پن (نیلی تار) ڈیجیٹل پن 2 پر جانا چاہیے، اور ڈیٹا پن (سفید تار) ڈیجیٹل پن 3 سے جڑنا چاہیے۔ یہ سیٹ اپ Arduino کو ڈسپلے کے ساتھ بات چیت کرنے اور تصور کے لیے فاصلے کا ڈیٹا بھیجنے کی اجازت دیتا ہے۔
کوڈ مثالیں اور واک تھرو
درج ذیل کوڈ اقتباس الٹراسونک سینسر اور ڈسپلے کو ابتدائی شکل دیتا ہے:
#define TRIGGER_PIN 12
#define ECHO_PIN 11
#define MAX_DISTANCE 200
NewPing sonar(TRIGGER_PIN, ECHO_PIN, MAX_DISTANCE);
TM1637Display display(CLK, DIO);
یہاں، ہم الٹراسونک سینسر کے ٹرگر اور ایکو کے لیے پنوں کی وضاحت کرتے ہیں اور زیادہ سے زیادہ فاصلہ 200 سینٹی میٹر مقرر کرتے ہیں۔ NewPing لائبریری سینسر کو سنبھالنے کے لیے استعمال ہوتی ہے، جبکہ TM1637Display آبجیکٹ ڈسپلے کا انتظام کرتا ہے۔
مرکزی لوپ میں، ہم مسلسل فاصلہ پڑھتے اور دکھاتے ہیں:
int distance = sonar.ping_cm(); // فاصلہ حاصل کریں
display.showNumberDec(distance, false, 3, 1);
کوڈ کا یہ حصہ سینسر سے فاصلے کی پیمائش حاصل کرتا ہے اور اسے TP1637 ڈسپلے پر دکھاتا ہے۔ showNumberDec فنکشن فاصلے کو اعشاریہ نمبر کے طور پر ظاہر کرنے کے لیے فارمیٹ کرتا ہے۔
مکمل کوڈ کے لیے، براہ کرم مضمون کے نیچے والے حصے کا حوالہ دیں۔
مظاہرہ / کیا توقع کریں
ایک بار جب سب کچھ سیٹ ہو جائے اور کوڈ اپ لوڈ ہو جائے، آپ کو TP1637 ڈسپلے پر فاصلے کی ریڈنگز نظر آئیں گی۔ ریڈنگز تقریباً ہر 50 ملی سیکنڈ میں اپ ڈیٹ ہوں گی، جو الٹراسونک سینسر کے ذریعے ناپے گئے فاصلے پر قریب قریب ریئل ٹائم فیڈ بیک فراہم کرتی ہیں۔ اگر آپ کو کوئی غیر متوقع قدر نظر آئے تو یقینی بنائیں کہ سینسر صحیح سمت میں ہے اور اس کے راستے میں کوئی رکاوٹ نہیں ہے (ویڈیو میں 6:15 پر)۔
ویڈیو ٹائم اسٹیمپس
- 00:00 - تعارف
- 01:30 - اجزاء کا جائزہ
- 02:45 - وائرنگ ہدایات
- 04:00 - کوڈ کی وضاحت
- 06:15 - مظاہرہ
/*
* This is the Arduino code for the HC-SR04 Ultrasonic Distance Sensor with TP1637 Display
* to measure the distance using Arduino for a robotic car and other applications
* Watch the video https://youtu.be/SlgLj_T5GaY
*
* Written by Ahmad Shamshiri for Robojax Video
* Date: December 21, 2017, in Ajax, Ontario, Canada
* Permission granted to share this code given that this
* note is kept with the code.
* Disclaimer: this code is "AS IS" and for educational purposes only.
*
*/
/* Original Code
from https://github.com/avishorp/TM1637
// https://playground.arduino.cc/Code/NewPing
* Modified for Robojax video on December 21, 2017
// ---------------------------------------------------------------------------
// Example NewPing library sketch that does a ping about 20 times per second.
// ---------------------------------------------------------------------------
*/
#include <NewPing.h>
#define TRIGGER_PIN 12 // Arduino pin tied to trigger pin on the ultrasonic sensor.
#define ECHO_PIN 11 // Arduino pin tied to echo pin on the ultrasonic sensor.
#define MAX_DISTANCE 200 // Maximum distance we want to ping for (in centimeters). Maximum sensor distance is rated at 400-500cm.
NewPing sonar(TRIGGER_PIN, ECHO_PIN, MAX_DISTANCE); // NewPing setup of pins and maximum distance.
////////////////////////////
#include <Arduino.h>
#include <TM1637Display.h>
// Module connection pins (Digital Pins)
#define CLK 2
#define DIO 3
// The amount of time (in milliseconds) between tests
#define TEST_DELAY 500
TM1637Display display(CLK, DIO);
/////////////////////////
void setup() {
Serial.begin(115200); // Open serial monitor at 115200 baud to see ping results.
}
void loop() {
display.setBrightness(0x0f);
uint8_t data[] = { 0x0, 0x0, 0x0, 0x0 };
display.setSegments(data);
int distance = sonar.ping_cm();// get the distance and store it in "distance" variable
// Wait 50ms between pings (about 20 pings/sec). 29ms should be the shortest delay between pings.
Serial.print("Ping: ");
Serial.print(sonar.ping_cm()); // Send ping, get distance in cm and print result (0 = outside set distance range)
Serial.println("cm");
display.showNumberDec(distance, false, 3,1);
delay(50);
}
آپ کو جن چیزوں کی ضرورت ہو سکتی ہے
-
ای بے
وسائل اور حوالہ جات
-
باہرونیHC-SR04 Ultrasonic Library from the Arduino official websiteplayground.arduino.cc
-
اندرونی
فائلیں📁
دیگر فائلیں
-
HC-SR04 الٹراسونک سینسر آرڈینو لائبریری
robojax-HC-SR04-ultrasonic-Library.zip0.02 MB