آردوینو, پروژه آردوینو

کنترل نور اتاق با ماژول SRF04

کنترل نور اتاق با ماژول SRF04

در فضاهایی مانند انباری یا حیاط خلوت که معمولاً برای مدت کوتاهی می‌رویم، بهتر است از لامپ‌هایی استفاده کنیم که به صورت خودکار خاموش و روشن می‌شوند تا وقتی وارد شدیم، چراغ روشن و وقتی خارج شدیم، چراغ خاموش شود. از این رو، برای انجام این کار می‌بایست پروژه کنترل نور اتاق با ماژول SRF04 را آموزش ببینید؛ پس با بلاگ بهنام رباتیک همراه باشید.

فهرست مطالب

لوازم مورد نیاز برای پروژه کنترل نور اتاق با ماژول SRF04

آشنایی با پین‌های ماژول SRF04

  • VCC: برای تأمین انرژی. قابل اتصال به خط قرمز روی برد بورد با سیم جامپر قرمز.
  • Trig: پین محرک. قابل اتصال به پین شماره 6 آردوینو. این پین برای ارسال امواج صوتی استفاده می‌شود.
  • Echo: پین گیرنده. قابل اتصال به پین شماره 5 آردوینو. این پین برای دریافت امواج صوتی ارسال شده توسط پین محرک استفاده می‌شود.
  • GND: پین اتصال به زمین. قابل اتصال به خط آبی روی برد بورد با سیم جامپر مشکی.

اتصال لوازم پروژه کنترل نور اتاق با ماژول SRF04 به آردوینو و برد بورد

در اولین مرحله از این پروژه و با استفاده از آردوینو و برد بورد، میان لوازم گفته شده اتصال برقرار می‌کنیم.

برای انجام این کار، می‌توانید از سیم جامپر قرمز برای وصل کردن پین 5 ولتی آردوینو به خط قرمز برد بورد بهره ببرید و از سیم جامپر مشکی نیز استفاده کنید تا پین اتصال به زمین (GND) آردوینو را به خط آبی برد بورد بزنید.

برای اینکه موضوع را بهتر متوجه شوید، تصویر زیر را مشاهده کنید.

وصل کردن آردوینو به برد بورد
وصل کردن آردوینو به برد بورد

اتصال ماژول اولتراسونیک SRF04 به آردوینو و برد بورد

مطابق تصویر زیر، ماژول SRF04 را به گونه‌ای روی برد بورد بگذارید که سنسورهای آن به طرف لبه‌ها قرار گرفته‌اند.

وصل کردن آردوینو و رله پاور به برد بورد
وصل کردن آردوینو و رله پاور به برد بورد

اتصال رله پاور به آردوینو و برد بورد

رله‌ای که برای انجام این پروژه آردوینو استفاده شده، سه پین در یک طرف و سه پیچ ترمینال در طرف دیگر دارد. این پین‌ها با علائم s، + و – قابل مشاهده هستند.

پین s همان پین سیگنال است و به پین شماره 9 آردوینو وصل می‌شود. پین + نیز همان پین 5 ولت یا VCC است و با یک سیم جامپر قرمز به خط قرمز روی برد بورد وصل می‌شود. در نهایت، پین – نیز همان پین GND یا اتصال به زمین است که با سیم مشکی به خط آبی روی برد بورد وصل می‌شود.

در آن طرف رله که پیچ ترمینال وجود دارد، شاهد علائم left NC، middle nothing و right NO هستیم. شما در اینجا می‌توانید سیمی که با استفاده از آن می‌خواهید چراغ را مستقیماً به برق بزنید را وصل کنید. توجه داشته باشید که یک سر سیم به پیچ وسط و سر دیگر آن به پیچ NO متصل گردد.

  • NO: مخفف واژه‌های Naturally Open و به معنای باز بودن مدار و نداشتن جریان می‌باشد.
  • NC: مخفف واژه‌های Naturally Close و به معنای بسته بودن مدار و داشتن جریان می‌باشد.

در این مرحله کار خود را با مدار باز شروع می‌کنیم که در این حالت چراغ خاموش است. در سمت دیگر، وقتی رله از آردوینو روی پین s سیگنال دریافت می‌کند، چراغ را روشن خواهد کرد و ما می‌توانیم نوعی صدای کلیک را از رله پاور بشنویم.

کدنویسی پروژه کنترل نور اتاق با ماژول SRF04

کدهایی که در ادامه آمده‌اند را می‌بایست در نرم‌افزار Arduino IDE آپلود کنید.

				
					#define trigPin 6 //Define the HC-SE04 triger on pin 6 on the arduino
#define echoPin 5 //Define the HC-SE04 echo on pin 5 on the arduino

#define bulb 9 //Define the relay signal on pin 9 on the arduino

void setup()

{

Serial.begin (9600); //Start the serial monitor

pinMode(trigPin, OUTPUT); //set the trigpin to output

pinMode(echoPin, INPUT); //set the echopin to input

pinMode (bulb, OUTPUT); //set the bulb on pin 9 to output

}

void loop()

{

int duration, distance; //Define two intregers duration and distance to be used to save data

digitalWrite(trigPin, HIGH); //write a digital high to the trigpin to send out the pulse

delayMicroseconds(500); //wait half a millisecond

digitalWrite(trigPin, LOW); //turn off the trigpin

duration = pulseIn(echoPin, HIGH); //measure the time using pulsein when the echo receives a signal set it to high

distance = (duration/2) / 29.1; //distance is the duration devided by 2 becasue the signal traveled from the trigpin then back to the echo pin, then divide by 29.1 to convert to centimeters

if (distance < 13) //if the distance is less than 13 CM

{

Light(); //execute the Light subroutine below

}

Serial.print(distance); //Dispaly the distance on the serial monitor

Serial.println(" CM"); //in centimeters

delay(500); //delay half a second

}

void Light() //Start the Light subroutine

{ digitalWrite(bulb, HIGH); //turn on the light

delay (15000); //wait 15 seconds

digitalWrite(bulb, LOW); //turn off the light

}
				
			

توضیحات کدهای پروژه کنترل نور اتاق با ماژول SRF04

در ابتدا شاهد حضور سه متغیر که به پین‌های محرک و اکو ماژول SRF04 و رله پاور مربوط می‌شوند، هستیم.

در بخش void setup، سریال مانیتور را آغاز و پین‌های Trig و رله را به عنوان خروجی مشخص می‌کنیم زیرا آنها خروجی را به ما می‌دهند که پین Echo دریافت کرده و این پین به عنوان ورودی تعیین شده است.

اتفاقات قابل مشاهده، در بخش void loop رخ داده‌اند.

در این مرحله ابتدا برای مدت زمان و فاصله دو عدد صحیح تعریف می‌کنیم تا اطلاعات به دست آمده توسط پین محرک ذخیره گردند. سپس به این پین فرمان داده می‌شود تا با تابع digitalWrite(trigPin, HIGH) یک موج صوتی بفرستد و بعد به مدت نیم میلی‌ثانیه منتظر بماند و در آخر با تابع digitalWrite(trigPin, LOW) خاموش شود.

وقتی موج صوتی بازمی‌گردد، اطلاعات مربوط به مدت زمان در قالب عدد صحیح ذخیره و پین اکو با تابع pulseIn(echoPin, HIGH) فعال می‌شود. حالا با استفاده از فرمول زیر، فاصله را تعیین می‌کنیم:

(مدت زمان ÷ 2) ÷ 29.1 = فاصله بر واحد سانتی‌متر

قدم بعدی، تأیید نتیجه به دست آمده است. اگر نتیجه کمتر از 13 سانتی‌متر شد، چراغ روشن می‌شود و اگر بیشتر شد، چراغ روشن نمی‌شود و نتایج در سریال مانیتور پخش می‌گردند.

در پایان اشاره کنیم که دستور مربوط به چراغ به گونه‌ای است که اگر فعال شود، رله را فعال و چراغ را روشن خواهد کرد و 15 ثانیه منتظر می‌ماند و سپس چراغ را خاموش می‌کند.

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *