جستجو برای:
  • شیراز کدرز
    • Empire
    • سیاست حریم خصوصی
  • آموزش ها
    • آموزش آردوینو مقدماتی
      • آموزش آردوینو جلسه اول
      • آموزش آردوینو جلسه دوم
      • آموزش آردوینو جلسه سوم
      • آموزش آردوینو جلسه چهارم
      • آموزش آردوینو جلسه پنجم
      • آموزش آردوینو جلسه ششم
      • آموزش آردوینو جلسه هفتم
      • آموزش آردوینو جلسه هشتم
      • آموزش آردوینو جلسه نهم
      • آموزش آردوینو جلسه دهم
    • آموزش آردوینو مبتدی
      • آموزش آردوینو جلسه یازدهم
      • آموزش آردوینو جلسه دوازدهم
      • آموزش آردوینو جلسه سیزدهم
    • آموزش الکترونیک | بایگانی
      • آموزش الکترونیک مقدماتی درس 1
      • آموزش الکترونیک مقدماتی درس 2
      • آموزش الکترونیک مقدماتی درس 3
      • آموزش الکترونیک مقدماتی درس 4
  • حساب کاربری
    • حساب کاربری من
    • پنل کاربری پیشرفته
    • کیف پول
    • سفارش‌ها
    • خروج
  • فروشگاه
    • محصولات
شیراز کدرز
  • شیراز کدرز
    • Empire
    • سیاست حریم خصوصی
  • آموزش ها
    • آموزش آردوینو مقدماتی
      • آموزش آردوینو جلسه اول
      • آموزش آردوینو جلسه دوم
      • آموزش آردوینو جلسه سوم
      • آموزش آردوینو جلسه چهارم
      • آموزش آردوینو جلسه پنجم
      • آموزش آردوینو جلسه ششم
      • آموزش آردوینو جلسه هفتم
      • آموزش آردوینو جلسه هشتم
      • آموزش آردوینو جلسه نهم
      • آموزش آردوینو جلسه دهم
    • آموزش آردوینو مبتدی
      • آموزش آردوینو جلسه یازدهم
      • آموزش آردوینو جلسه دوازدهم
      • آموزش آردوینو جلسه سیزدهم
    • آموزش الکترونیک | بایگانی
      • آموزش الکترونیک مقدماتی درس 1
      • آموزش الکترونیک مقدماتی درس 2
      • آموزش الکترونیک مقدماتی درس 3
      • آموزش الکترونیک مقدماتی درس 4
  • حساب کاربری
    • حساب کاربری من
    • پنل کاربری پیشرفته
    • کیف پول
    • سفارش‌ها
    • خروج
  • فروشگاه
    • محصولات
0

ورود و ثبت نام

وبلاگ

آموزش آردوینو جلسه نهم

20 تیر 1399
ارسال شده توسط admin_hb
آموزش آردوینو | مقدماتی ، همه دسته ها
344 بازدید

در جلسه قبل با مدولاسیون پهنای باند یا PWM آشنا شدیم. در این جلسه به راه اندازی ماژول آلتراسونیک میپردازیم.

آلتراسونیک یکی از سنسور هایی است که قابلیت ارسال امواج فراصوت را دارد که توسط انسان قابل احساس نیست. روش کار این سنسور ها به اینگونه است که با ارسال موج فراصوت و با برخورد آن با موانع به سنسور گیرنده بازخورد داده میشود و مدت زمان انعکاس صدا فاصله را مشخص میکند.

به این روش اصطلاحا «پینگ (Ping)» میگویند.

 اصطلاح پینگ در شبکه نیز اینگونه است که به مدت زمان ارسال و دریافت اطلاعات از کلاینت به سرور را پینگ میگویند و زمان پایین تر نشانه پینگ کمتر است.

در گیف زیر طریقه پینگ ماژول آلتراسونیک را مشاهده میکنید:

آلتراسونیک

معرفی

ماژول های آلتراسونیک انواع مختلفی دارند و هر کدام نوع متفاوتی دارند؛ برای مثال دقت اندازه گیری، اندازه ماژول، ضد آب (Water Proof) بودن و… عواملی است که در قیمت و کارایی ماژول تاثیر دارند.

مناسب ترین آنها SRF-04 و SRF-05 هستند که دقت قابل قبولی دارند و قیمت آنها نیز مناسب است.

توجه: برای اندازه گیری موانع از فاصله بیشتر از 2 متر به هیچ عنوان آلتراسونیک پیشنهاد نمیشود و بهتر است از فاصله سنج های لیزری استفاده کنید!

از دیگر کاربرد های آلتراسونیک میتوان به سنسور دنده عقب ماشین ها اشاره کرد که به راننده هشدار برخورد با مانع را اعلام میکند.

دزدگیر های هوشمند، عصای سفید، درب رمزدار و… کاربرد های دیگری از Ultra Sonic هستند.

آلتراسونیک

راه اندازی

کد

مشاهده آنلاین کد

const int TRIG_PIN = 12;
const int ECHO_PIN = 13;

void setup() {

     Serial.begin(9600);

     pinMode(TRIG_PIN,OUTPUT);
     pinMode(ECHO_PIN,INPUT);

}
void loop(){

     long duration, distanceCm, distanceIn;

     digitalWrite(TRIG_PIN, LOW);
     delayMicroseconds(2);

     digitalWrite(TRIG_PIN, HIGH);
     delayMicroseconds(10);

     digitalWrite(TRIG_PIN, LOW);

     duration = pulseIn(ECHO_PIN,HIGH);

     distanceCm = duration / 29.1 / 2 ;
     distanceIn = duration / 74 / 2;

     if (distanceCm <= 0){

          Serial.println("Out of range");

     }

     else {

          Serial.print(distanceIn);
          Serial.print("in, ");

          Serial.print(distanceCm);
          Serial.print("cm");
          
          Serial.println();

     }

     delay(1000);

} 

مدار

آلتراسونیک

توضیحات

در این کد از هیچ کتابخانه ای استفاده نمیکنیم زیرا راه اندازی آن بسیار ساده است که توضیحات آن در ادامه ذکر شده است.

در دو خط اول دو متغیر تعریف کرده ایم که پین های متصل به آردوینو را مشخص میکنند. اگر کمی دقت کنید خواهید دید که این دو متغیر همان int هستند با این تفاوت که این متغیر ها از نوع const هستند.

این کلمه مخفف constant  به معنی ثابت است. کلمه const در اول متغیر ها، خاصیت متغیر بودن را از آنها میگیرد. در این نوع متغیر ها (بهتر است بگوییم ثابت) مقدار آن تغییر نخواهد کرد و درصورتی که بخواهید مقدار آن را تغییر دهید، کامپایلر خطا هایی را در کد میگیرد.

خاصیت استفاده از const در تعریف آرایه ها است. زیرا در #define نمیتوان هیچ آرایه ای را تعریف کرد. پس بهتر است از این به بعد از const برای تعریف ثابت ها استفاده کنیم.

const int TRIG_PIN = 12;
const int ECHO_PIN = 13;  

در خط 14 متغیری از نوع long تعریف کرده ایم. این نوع متغیر از نظر مقدار ذخیره داده، مقدار بیشتری دارد یعنی میتوان اعداد  2,147,483,648- تا 2,147,483,647 را در آن ذخیره کرد.

این متغیر ها را به صورت سری تعریف کردیم. یعنی اگر نوع متغیر ها یکسان بود میتوانیم تمام آنها را با هم تعریف کرد فقط کافیست آنها را توسط یک کاما , جدا کنید.

اگر متغیر ها را در loop تعریف کنید، آنها فقط در loop قابل دسترسی هستند؛ نه setup و نه تابع دیگری. همچنین هربار که تابع loop شروع شود آن متغیر ها دوباره به مقدار اولیه خود بر میگردند!

long duration, distanceCm, distanceIn;  

در خطوط 16 تا 22 پین تریگر ماژول آلتراسونیک را تحریک میکنیم. به مدت 2 میکرو ثانیه خاموش و به مدت 10 میکرو ثانیه روشن و پس از آن دوباره خاموش میشود.

 این کار امواج فراصوت را از فرستنده آلتراسونیک ارسال میکند:

digitalWrite(TRIG_PIN, LOW);
delayMicroseconds(2);
digitalWrite(TRIG_PIN, HIGH);
delayMicroseconds(10);
digitalWrite(TRIG_PIN, LOW); 

پس از ارسال امواج از طریق فرستنده و برخورد آنها به مانع، امواج منعکس میشوند و به سنسور گیرنده برخورد میکنند و توسط تابع pulseIn پالس ورودی را اندازه میگیریم.

در کد زیر مدت زمانی که پین  ECHO_PIN مقدار HIGH را دارد را اندازه گیری میکنیم و در متغیر duration ذخیره میکنیم.

duration = pulseIn(ECHO_PIN, HIGH);  

پس از فهمیدن مدت زمان پینگ میتوان آن را به سانتی متر و اینچ تبدیل کرد. برای این کار duration را بر عدد های 29 (برای سانتی متر) و 74 (برای اینچ) تقسیم میکنیم و سپس حاصل را بر 2 تقسیم میکنیم.

نکته: این اعداد توسط دیتاشیت سنسور ارائه شده اند.

distanceCm = duration / 29.1 / 2;
distanceIn = duration / 74 / 2; 

اگر فاصله اندازه گیری شده به هر دلیلی کمتر از صفر شد متن Out of range را در سریال چاپ میکند و در غیر اینصورت فاصله را به واحد های سانتی متر و اینچ در سریال چاپ میکند:

توجه: فاصله وقتی صفر میشود که مانع چسبیده به سنسور باشد و یا فاصله بسیار طولانی باشد یعنی بیش از 2 یا 3 متر.

if (distanceCm <= 0){
     Serial.println("Out of range");
}

else {
     Serial.print(distanceIn);
     Serial.print("in, ");
     Serial.print(distanceCm);
     Serial.print("cm");   
     Serial.println();
} 
لینک های دانلود دانلود فایل های این جلسه به طور کامل (حجم 244 کیلوبایت)

با تشکر از شما که در جلسه نهم ما را همراهی کردید، درصورت داشتن هرگونه سوال، نظر و یا پیشنهاد میتوانید در بخش نظرات بیان کنید.

بعدی
قبلی
اشتراک گذاری:
دانلود فایل کامل پروژه
دانلود فایل
فایل کامل (جلسه نهم)

پسورد فایل : ندارد گزارش خرابی لینک

برچسب ها: hc04srf04آردوینوآلتراسونیکآموزش آردوینوسنسور آلتراسونیکماژول آلتراسونیک
درباره admin_hb

حسین بذرافکن هستم، برنامه نویس، فریلنسر و عاشق الکترونیک...

نوشته های بیشتر از admin_hb
در تلگرام
کانال ما را دنبال کنید!
در اینستاگرام
ما را دنبال کنید!
مطالب زیر را حتما بخوانید
  • آموزش آردوینو جلسه سیزدهم

    221 بازدید

  • آموزش آردوینو جلسه دوازدهم

    244 بازدید

  • آموزش الکترونیک مقدماتی درس 3

    348 بازدید

  • آموزش الکترونیک مقدماتی درس 2

    305 بازدید

  • آموزش الکترونیک مقدماتی درس 1

    253 بازدید

  • آموزش آردوینو جلسه یازدهم

    455 بازدید

قدیمی تر آموزش آردوینو جلسه هشتم
جدیدتر آموزش آردوینو جلسه دهم

دیدگاهتان را بنویسید لغو پاسخ

جستجو برای:

امروز، پنجشنبه ۱۴ اسفند ۹۹ ساعت ۰۰:۱۵

نوشته های تازه

آموزش آردوینو جلسه سیزدهم

در جلسه قبل راه اندازی نمایشگر نوکیا را یاد گرفتیم و به وسیله آن ساعت

بیشتر »
14 آذر 1399

آموزش آردوینو جلسه دوازدهم

در جلسه قبل با توابع کشیدن اشکال در نمایشگر Nokia 5110 آشنا شدیم. در این

بیشتر »
11 آذر 1399

آموزش الکترونیک مقدماتی درس 3

آموزش الکترونیک مقدماتی درس 3 در جلسات گذشته با مباحث بسیاری آشنا شدیم؛ در این

بیشتر »
3 مهر 1399

ورود

رمز عبور را فراموش کرده اید؟

هنوز عضو نشده اید؟ عضویت در سایت