آردوینو آموزش آردوینو

آموزش راه اندازی ultrasonic و بلندگو

نوشته شده توسط محمدی

سنسور آلتراسونیک قادر به تعیین فاصله غیرتماسی می‌باشد و میتواند بوسیله ارسال و دریافت امواج فراصوت فاصله از جسم مورد نظر را تعیین کند.همچنین میتوانیم از سنسور فاصله سنج آلتراسونیک بعنوان هشدار دهنده فاصله مجاز استفاده کنیم که کاربردهای فراوانی در زندگی روزمره دارد.
در این آموزش قصد داریم با ماژول آلتراسونیک و یک عدد بلندگو فاصله‌سنج خودمون رو شرطی سازی کنیم.یعنی کاری کنیم که ربات یا هر وسیله ای که سنسور آلتراسونیک روش سوار هست از یه فاصله به این طرف یه واکنش خاصی از خودش نشون بده.
برای آشنایی بیشتر با ماژول آلتراسونیک کافی ست بدانید که این ماژول از دو قسمت فرستنده موج و گیرنده آن تشکیل شده است که سرعت موج رفت و برگشتی که مقدار مشخصی دارد ( و البته در محیط های مختلف , مقدار متفاوتی دارد ) را تقسیم بر زمان یک رفت و برگشت میکند و فاصله را نشان میدهد.
این واکنش میتونه به صدا در اومدن یک بلندگو باشه یا میتونه توقف موتور باشه یا میتونه هرچیز دیگه ای باشه. در این آموزش ما با به صدا درومدن یک بلندگو کار خودمون رو انجام دادیم.

تجهیزات مورد نیاز :

برای شروع مطابق تصاویر زیر پایه های سنسور آلتراسونیک را روی برد بورد خود سوار کنید و سپس سیم ها را مطابق شکل به آردوینو متصل کنید :

آلتراسونیک

آلتراسونیک

 

پایه های التراسونیک را به ترتیب زیر متصل میکنیم :

  • VCC to 5V
  • GND to GND
  • Trig to PIN7
  • Echo to PIN6

پایه های buzzer را به شکل زیر متصل میکنیم :

  • S to PIN4
  • (-) GND to

و حالا به سراغ برنامه قسمت برنامه نویسی برنامه میرویم :

int buzzer=4;
int echoPin=6;
int trigPin=7;
int sound = 120;

void setup() {
	// put your setup code here, to run once:
	Serial.begin (9600);
	pinMode(trigPin, OUTPUT);
	pinMode(echoPin, INPUT);
	pinMode(buzzer, OUTPUT);
}

void loop() {
	// put your main code here, to run repeatedly:
	long duration, distance;
	digitalWrite(trigPin, LOW); 
	delayMicroseconds(2);
	digitalWrite(trigPin, HIGH);
	delayMicroseconds(10);
	digitalWrite(trigPin, LOW);
	duration = pulseIn(echoPin, HIGH);
	distance = (duration/2) / 29.1;
	
	 if (distance > 30 || distance <= 0){
		Serial.println("Out of range");
		noTone(buzzer);
	}
	else {
		Serial.print(distance);
		Serial.println(" cm");
		tone(buzzer, sound);
	 
	}
}

شرح برنامه :

  • تعریف بلندگو :
    – buzzer به عنوان پین شماره ۴
  • تعریف متغییر های آلتراسونیک :
    – echoPin بعنوان پین شماره ۶
    – trigPin بعنوان پین شماره ۷
  • متغیر صدا برای تغییر Sound Tone
    – با مقدار دلخواه ۱۲۰
int buzzer=4;
int echoPin=6;
int trigPin=7;
int sound = 120;

در حلقه setup با دستور serial.begin 9600 ارسال اطلاعات سریال از میکروکنترلر به کامپیوتر ( با ماکسیمم سرعت ۹۶۰۰ بیت بر ثانیه ) را آغاز میکنیم .

Serial.begin (9600);

دو کمیت اعشاری long با نام های duration , distance را در حلقه void loop تعریف میکنیم تا صرفا در همین حلقه از آنها استفاده نماییم

در قدم بعدی ولتاژ trigPin را هر ۲ میکروثانیه وصل میکنیم و به مقدار ۱۰ میکروثانیه جریان را روشن یا (HIGH) قرار میدهیم.

کمیت duration را از echoPin میگیریم و مقدار آن را تقسیم بر دو , تقسیم بر ۲۹.۱ میکنیم. برای اینکه بدانید چرا از این اعداد استفاده کردم پیشنهاد می‌شود پست مربوط به سنسور آلتراسونیک را مطالعه فرمایید.

حال از دستور if استفاده میکنیم و مقدار به ازای مقدار distance بالاتر از ۳۰ سانتی متر , دستور serial.print مقدار distance و عبارت خارج از محدوده را تایپ میکنیم.

از دستور else برای مقادیر کمتر از ۳۰ سانتی متر استفاده میکنیم و مقدار ولتاژ پین شماره ۴ را با مقدار ۱۲۰ که در متغیر sound تعریف کردیم جای گذاری میکنیم. همچنین مقدار distance را چاپ میکنیم.

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

محمدی

دانشجوی رشته متولورژی و علاقه مند به علم و تکنولوژی

تبادل نظر و رفع عیب با ثبت دیدگاه

۱۷ دیدگاه