مقدمه
در بعضیاز مواقع در انجام پروژههای مختلف از قبیل صنعتی و یا آزمایشگاهی ممکناست که نیازبه اندازهگیری مسافت داشتهباشید. در این مواقع راهحلی که به ذهن اکثریت مهندسین الکترونیک میرسد استفادهاز سنسورها است، که در این مقاله میخواهیم یکیاز همین سنسورها را که سنسور معروف آلتراسونیک SR04 است، را به همراه سختافزار آردوینو راهاندازی کنیم و نحوه عملکرد سنسور آلتراسونیک SR04 را در سریال مانیتور آردوینو مشاهدهکنیم.
خب قبلاز اینکه وارد بحث شماتیک و کدنویسی شویم نیاز است که بهصورت کاملا مختصر، به عملکرد این سنسور بپردازیم (باورکنید دید بهتری رو میده بهتون از من گفتن بود.)
سنسور آلتراسونیک چیست؟
اساس کار حسگرهای فراصوت(آلتراسونیک) مشابه رادار یا ردیاب صوتی، تشخیص ویژگیهای هدف ازطریق تحلیل بازتاب امواج رادیویی یا صوتی میباشد. حسگرهای فراصوت امواج صوتی با فرکانس بالا ایجاد میکنند و موج بازتابشده را دریافت و تحلیل میکنند. این حسگرها با محاسبهٔ زمان بین فرستادن سیگنال و گرفتن بازتاب، فاصلهٔ جسم را محاسبه میکنند. از این فناوری میتوان در اندازهگیری سرعت و جهت باد یا میزان پربودن یک مخزن استفادهکرد. برای اندازهگیری سرعت و جهت، یک دستگاه از چندین گیرنده استفاده میکند و از روی فاصلهٔ نسبی آنها سرعت را اندازه میگیرد. برای اندازهگیری میزان مایع داخل یک مخزن نیز کافیست فاصله از سطح مایع اندازه گرفتهشود. کاربردهای دیگر شامل ردیابهای صوتی(sonar)، بخورها (Humidifier)، فراوانگاری (سونوگرافی فراصوت)، دزدگیرها و آزمایشهای غیرمخرب میشود.
بهطورمعمول از فرستنده و گیرندههایی استفاده میشود که با تبدیل انرژی الکتریکی به صوتی امواج صوتی بالاتر از ۲۰کیلوهرتز ایجاد میکنند و با دریافت بازتاب امواج، صوت را بار دیگر به انرژی الکتریکی تبدیل میکنند تا قابل اندازهگیری و نمایش باشند.
خب پساز اینکه متوجهشدیم تقریبا چه اتفاقی درون این سنسورها ازجمله سنسور SR04 میافتد نوبتبه راهاندازی این سنسور توسط سختافزار آردوینو میرسد. برای این کار ابتدا پروژه را به دو بخش سختافزار و نرمافزار تقسیم میکنیم.
سختافزاری که برای راهاندازی سنسور آلتراسونیک SR04 نیاز داریم شامل مواردزیر میشود.
- سنسور آلتراسونیک SR04
- برد آردوینو (نوع برد مهم نیست از هرنوعی که دارید اشکالینداره)
- ترجیحا بردبرد و چند عدد سیم بردبردی
تا اینجا بخش سختافزار پروژه به اتمام رسید.
نرمافزاری که برای این پروژه موردنیاز است فقط نصب نرمافزار آردوینو است. که اگر باعنوان ”دانلود نرمافزار آردوینو” در گوگل سرچکنید بهراحتی میتوانید این نرمافزار را دانلود و نصب کنید.
پساز فراهمکردن مواردی که گفتهشد نوبتبه راهاندازی سنسور توسط برد آردوینو میرسد.
شماتیک سنسور آلتراسونیک SR04
پساز اینکه نحوه اتصالات را بهدرستی انجامدادیم حال نوبتبه نوشتن کد موردنظر برای سختافزار موردنظرمان میرسد.
کدنویسی سنسور SR04
int trigPin = 9; //Trig - green Jumper int echoPin = 12; //Echo - yellow Jumper long duration, cm, inches; void setup() { //Serial Port begin Serial.begin (9600); //Define inputs and outputs pinMode(trigPin, OUTPUT); pinMode(echoPin, INPUT); } void loop() { // The sensor is triggered by a HIGH pulse of 10 or more microseconds. // Give a short LOW pulse beforehand to ensure a clean HIGH pulse: digitalWrite(trigPin, LOW); delayMicroseconds(5); digitalWrite(trigPin, HIGH); delayMicroseconds(10); digitalWrite(trigPin, LOW); // Read the signal from the sensor: a HIGH pulse whose // duration is the time (in microseconds) from the sending // of the ping to the reception of its echo off of an object. pinMode(echoPin, INPUT); duration = pulseIn(echoPin, HIGH); // convert the time into a distance cm = (duration/2) / 29.1; inches = (duration/2) / 74; Serial.print(inches); Serial.print("in, "); Serial.print(cm); Serial.print("cm"); Serial.println(); delay(250); }
عملکرد کد بهنحوی است که دو پین از آردوینو یکی ورودی و دیگری خروجی تعریفشدهاست چرا؟ برای اینکه اگر به توضیحاتی که دادیم یکی زمان رفت و یکی زمان برگشت را اندازهگیری میکند و درنهایت میتوان توسط پالسی که ایجاد میکند تشخیص دهد که آیا مانعی وجود دارد یا خیر؟
و درواقع مهمترین کاری که برنامهنویس باید در این پروژه باید انجامدهد محاسبه تبدیلات است.(حالا بگید تئوری کاربرد نداره) که این کار برای دو واحد سانتیمتر و اینچ نوشتهشدهاست.(برای تمرین میتونید تبدیلات واحدهای دیگه رو هم انجامبدید.)
درنهایت هم اگر دقتکنید واحدهای in و cm نمایش داده میشود.
خب حالا وقت تست سختافزار به همراه کدی است که نوشتهایم. اگر تمامی مواردی که گفتیم بهدرستی صورتگرفتهباشد باید به خروجی زیر برسید.
1000in, 2545cm 1001in, 2547cm 1001in, 2547cm 1001in, 2546cm 1001in, 2547cm 1001in, 2546cm 1001in, 2547cm 12in, 31cm 12in, 31cm 7in, 19cm 5in, 15cm 23in, 59cm 7in, 18cm 6in, 15cm 4in, 10cm 1004in, 2554cm 1006in, 2559cm 1006in, 2560cm 1006in, 2559cm 1002in, 2549cm 12in, 31cm 13in, 33cm 1001in, 2546cm 1001in, 2546cm 1000in, 2545cm 1001in, 2545cm 1000in, 2543cm 1000in, 2543cm 1000in, 2543cm
امیدوارم که این آموزش هم برای شما مفید واقعشدهباشد.
منبع:سیسوگ