این پروژه در مورد ساخت ضدعفونی کننده خودکار با استفاده از ultrasonic و آردوینو است. مشکل اصلی ضد عفونی کننده دست بر اساس سنسور IR این است که نمی توانند آنها را زیر نور مستقیم خورشید قرار دهند زیرا نور خورشید با سنسور IR تداخل دارد. همچنین، فاصله سنسور IR برای تشخیص دست کمتر از 10 سانتی متر است اما در یک ضد عفونی کننده دست با حسگر ultrasonic می توان فاصله را بیش از 10 سانتی متر تنظیم کرد. از این رو ادامه این مطلب را جهت آموزش ساخت دستگاه ضد عفونی کننده دست هوشمند با آردوینو بخوانید.
آموزش ساخت دستگاه ضد عفونی کننده دست هوشمند با آردوینو
ابزار مورد نیاز
- آردوینو uno
- سنسور اولتراسونیک Hc-SR04
- ترانزیستور TIP41c
- پمپ آب DC
- آداپتور 12v
سنسور ultrasonic چیست و چگونه کار می کند؟
سنسور ultrasonic نوعی حسگر صوتی است که از یک مبدل پیزو الکتریک برای فرستادن و گرفتن امواج صوتی استفاده میکند.هنگامی که شی در محدوده امواج سنسور قرار میگیرد، امواج به آن برخورد کرده و اکو تولید می شود. این اکو به سمت سنسور برگشته و خروجی سنسور را فعال میکند. این حسگرها با محاسبهٔ زمان بین فرستادن امواج صوت و گرفتن اکو، فاصلهٔ جسم را محاسبه میکنند.فرکانس مورد استفاده در این سنسور معمولا بین 60-40 کیلوهرتز میباشد که خارج از بازه شنوایی انسان میباشد. مزیت اصلی این سنسورها، تشخیص اجسام صرف نظر از رنگ و شکل به وسیله امواج ما فوق صوت است.
نحوه ی کار ضدعفونی کننده
ما از سنسور ultrasonic برای تشخیص دست استفاده می کنیم.به صورتی که هنگامی که سنسور دست را تشخیص داد ضدعفونی کننده ی دست روشن شود . برای این منظور از پمپ آب DC استفاده می کنیم. چون از یک پمپ 12 ولتی DC استفاده کرده ایم برای درایو کردن آن از یک ترانزیستور TIP41C استفاده می کنیم زیرا pinout خروجی آردوینو 5 ولت است.
بلوک دیاگرام دستگاه ضدعفونی کننده دست
اندازه گیری غلظت CO2 هوا با استفاده از آردوینو و سنسور MQ-135
دیاگرام مدار دستگاه ضد عفونی کننده دست
کد آردوینو
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 29 30 31 32 33 |
int pump=2; int trig_Pin=3; int echo_Pin=4; long Time; int distance; void setup() { Serial.begin(9600); pinMode(trig_Pin,OUTPUT); pinMode(echo_Pin,INPUT); pinMode(pump,OUTPUT); } void loop() { digitalWrite(trig_Pin,LOW); delayMicroseconds(2); digitalWrite(trig_Pin,HIGH); delayMicroseconds(10); digitalWrite(trig_Pin,LOW); Time=pulseIn(echo_Pin,HIGH); distance=Time*0.034/2; Serial.print("Distance:"); Serial.println(distance); if(distance<15) { digitalWrite(pump,HIGH); } else { digitalWrite(pump,LOW); } } |
کد توضیحات
1 2 3 |
int pump=2; int trig_Pin=3; int echo_Pin=4; |
در ابتدای کد تعیین می کنیم پین های Trig و Echo و پمپ آب به کدام پین های آردوینو متصل هستند.
1 2 |
long Time; int distance; |
یک متغیر برای ذخیره زمان (time)و یک متغیر برای ذخیره فاصله (distance) ایجاد می کنیم.
1 2 3 4 5 6 7 |
void setup() { Serial.begin(9600); pinMode(trig_Pin,OUTPUT); pinMode(echo_Pin,INPUT); pinMode(pump,OUTPUT); } |
پین trig را به عنوان خروجی تنظیم کرده زیرا از این پین برای فعال کردن سنسور استفاده می کنیم. سپس پین echo را به عنوان ورودی تنظیم کرده زیرا از این پین برای دریافت داده های زمان از سنسور استفاده می کنیم.
1 2 3 4 5 6 |
void loop() { digitalWrite(trig_Pin,LOW); delayMicroseconds(2); digitalWrite(trig_Pin,HIGH); delayMicroseconds(10); digitalWrite(trig_Pin,LOW); |
برای فعال کردن سنسور، باید منطق HIGH به مدت 10 میکرو ثانیه روی پین trig ارسال کنیم. ماژول 8 عدد پالس با فرکانس 40 کیلو هرتز ارسال میکند
وقتی که پالس ها ارسال شد پایه ECHO یک میشه و تا زمانی که پالس برگشت از جسم را دریافت نکند این پایه یک باقی می ماند.
1 2 |
Time=pulseIn(echo_Pin,HIGH); distance=Time*0.034/2; |
تابع ()pulsln مدت زمانی که پایه Echo در سطح منطقی 1 میماند را اندازه میگیرد. که در واقع برابر با مدت زمان رفت و برگشت صوت از ماژول به دست میباشد. پس از آن ، زمان رفت وبرگشت صوت را در سرعت صوت ضرب می کنیم تا فاصله ی آن را به دست بیاوریم چون ما زمان رفت +برگشت را داریم تقسیم به 2 می کنیم. 0.034 سرعت صوت برحسب سانتی متر به میکروثانیه است .
1 2 |
Serial.print("Distance:"); Serial.println(distance); |
با استفاده از دستور print ، فاصله را در مانیتور سریال چاپ می کنیم.
1 2 3 4 |
if(distance<15) { digitalWrite(pump,HIGH); } |
حال در این مرحله فاصله ی دست را تعیین می کنیم اگر فاصله ی دست کمتر از15cm بود پمپ ضدعفونی کننده روشن شود.
1 2 3 4 |
else { digitalWrite(pump,LOW); } |
اگر فاصله ی دست ما بیشتر از 15cm بود و یا اگر چیزی در جلوی سنسور وجود نداشت پمپ ضدعفونی کننده خاموش شود.
ارسال پاسخ