د آردوینو کوډ او ویډیو: HC-SR04 الټراسونیک واټن سینسر د TP1637 ښودونکي سره
په دې ټیوټوریل کې به موږ وپلټو چې څنګه د 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 |
| منطق/IO ولټاژ | 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 پن (ژیړ تار) ځمکې سره وصل کړئ. د Trigger پن (نیلي تار) باید د ډیجیټل پن 12 سره وصل شي، پداسې حال کې چې د Echo پن (شین تار) باید د ډیجیټل پن 11 سره وصل شي. ډاډ ترلاسه کړئ چې دا اړیکې خوندي دي ترڅو سم عملیات ډاډمن شي.
د TP1637 ډسپلې لپاره، د VCC پن (سور تار) د Arduino په 5V پن سره وصل کړئ او د GND پن (ژیړ تار) ځمکې سره وصل کړئ. د Clock پن (نیلي تار) باید ډیجیټل پن 2 ته لاړ شي، او د Data پن (سپین تار) باید ډیجیټل پن 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);
دلته، موږ د الټراسونیک سینسر د trigger او echo لپاره پنونه تعریف کوو او اعظمي واټن 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 الټراسونیک سینسر Arduino کتابتون
robojax-HC-SR04-ultrasonic-Library.zip0.02 MB