یکی از سنسور هایی که میتوان از ان در پروژه هایی که نیاز به اندازه گیری فاصله یا مسافت دارند استفاده کرد سنسور التراسونیک میباشد
# | نوع | تعداد | خرید |
---|---|---|---|
1 | esp32 | 1 | |
2 | سیم جامپر | 2 | |
3 | برد بورد | 1 | |
4 | ماژول ultrasonic | 1 |
برای برنامه نویسی این پروژه از نرم افزار اردوینو استفاده میکنیم.
https://dl.espressif.com/dl/package_esp32_index.json, http://arduino.esp8266.com/stable/package_esp8266com_index.json
tools-> manager Library
نحوه عملکرد این سنسور بدین صورت است که این سنسور با ارسال یک موج صوتی در فرکانس بالا و دریافت آن پس از انعکاس از سطح جسم مورد نظر ، زمان رفت و برگشت امواج فراصوت در هوا را محاسبه میکند
و با استفاده از زمان بدست امده،فاصله جسم تا سنسور را با دقت بالا محاسبه میکند
حال به راه اندازی سنسور با اردوینو میپردازیم و فاصله جسم تا سنسور را اندازه میگیریم و در سریال مانیتور نرم افزار اردوینو نمایش میدهیم
ابتدا دو پایه node mcu که به ماژول التراسونیک متصل هستند را مشخص می کنید که پایه D2 و D2 می باشد
ابتدا دو متغییر تعریف میکنیم و اعدادی را به ان اختصاص میدهیم.حال در هر بخش از کد نام هر متغیر اورده شود،کامپایلر بجای ان عدد مرتبط با ان را قرار میدهد
شروع برنامه با این تابع است
چون ماژول التراسونیک از دوبخش فرستنده و گیرنده تشکیل شده است که با ارسال صوت در اقدام به تشخیص فاصله می کند ما نیز میبایست دو پین التراننیک را یکی به عنوان خروجی و یکی به عنوان ورودی در نظر بگیریم
و پورت سریال را نیز مشخص می کنیم
از این رو که التراسونیک بسیار حساس است و با هر پالسی ممکن است صوت ایجاد کند برای اطمینان یک لحظه کوتاه پایه ماژول را low کرده و دوباره می کنیم
در این بخش نیز بعد از فعال کردن پایه و یک مکث کوتاه کمتر از سرعت نور که ما 10 میکرو سکند در نظر گرفتیم اقدام به گرفتن پالس های دریافتی از پایه دوم التراسونیک می کنیم
در ادامه با تقسیم پالس های دریافتی بر سرعت صوت فاصله پیموده شده محاسبه می شود
و فاصله بر روی سریال نمایش داده می شود
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
const int trigPin = 4;
const int echoPin = 2;
long duration;
int distance;
void setup() {
pinMode(trigPin, OUTPUT);
pinMode(echoPin, INPUT);
Serial.begin(115200); // Starts the serial communication
}
void loop() {
// Clears the trigPin
digitalWrite(trigPin, LOW);
delayMicroseconds(2);
// Sets the trigPin on HIGH state for 10 micro seconds
digitalWrite(trigPin, HIGH);
delayMicroseconds(10);
digitalWrite(trigPin, LOW);
// Reads the echoPin, returns the sound wave travel time in microseconds
duration = pulseIn(echoPin, HIGH);
// Calculating the distance
distance = duration * 0.034 / 2;
// Prints the distance on the Serial Monitor
Serial.print("Distance: ");
Serial.println(distance);
}
پروژه مشابه
کامنت ها
هر هفته یک اموزش
هر هفته یک پروژه
هر هفته یک ویجت