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

آموزش آردوینو بخش پانزدهم – دستورات تکمیلی Advance

arduino-basic-tutorial-part-fifteen-advance-functions-digispark
نوشته شده توسط پریسا پوربلورچیان

در آموزش بخش پانزدهم به بررسی توابع کاربردی و دستورات تکمیلی برنامه نویسی آردوینو می‌پردازیم. هر یک از دستورات کاربرد خاصی در اجرای برنامه ها دارد. برای استفاده از چیپ های ۷۴HC595 و یا ۷۴HC516 از فانکشن های SHIFT بایستی استفاده کرد. برای تولید موج مربعی و تولید فرکانس از توابع TONE , NOTONE باید استفاده کرد. در ادامه با مرجع تخصصی آردوینو به زبان فارسی، دیجی اسپارک همراه باشید.

 


تابع noTone()


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

 روش فراخوانی

 

 منظور از pin همان پایه آردوینو است. به عنوان مثال آموزش ساخت میکسر صوتی با ماژول ولوم کشویی Slide Potentiometer آردوینو توسط یک بیزر و یک ولوم و ایجاد موج مربعی و فرکانس های مختلف میتوانید با دستور tone مقادیر را تغییر دهید.

 

دستورات تکمیلی Advance در آموزش مقدماتی آردوینو - دیجی اسپارک

 


تابع tone()


تولید موج مربعی در یک فرکانس خاص توسط دستور tone شکل میگیرد.

 
 

دستوارت مهم برنامه نویسی آردوینو تابع tone() - دیجی اسپارک

 

تابع tone() و راه اندازی بیزر با آردوینو - دیجی اسپارک

 


تابع pulsein()


 از تابع pulseIn() برای خواندن پالس از پین میکروکنترلر استفاده می‌شود. اگر مقدار value برابر با High باشد، منتظر می‌ماند تا پین از وضعیت LOW به  HIGH تغییر وضعیت دهد. سپس زمان اندازه گیری شده و منتظر می‌ماند تا پین به وضعیت LOW برگردد و سپس زمان متوقف میگردد. مقدار پالس بر حسب میکروثانیه برمیگردد. زمان بندی این تابع به صورت تجربی تعیین شده و ممکن است در پالس های طولانی خطا در اندازه گیری وجود داشته باشد.

 

روش فراخوانی

 
 

استفاده از دستور pulsein برای srf

 

تابع pulsein() در راه اندازی سنسور آلتراسونیک آردوینو - دیجی اسپارک

 


تابع pulseInLong()


pulseInLong () جایگزینی برای pulseIn () است که در کنترل پالس طولانی و استفاده از اینتراپت بهتر است. پالس را از یک پایه خوانده و اگر دارای ارزش high باشد، تابع pulseinlog منتظر میماند تا پین از low به high برسد. زمان شروع شده و سپس منتظر میماند تا مجدد به low برسد. سپس مدت زمان پالس را بر حسب میکروثانیه ارسال می‌کند.

 روش فراخوانی

 
 

تابع pulseInLong() در راه اندازی SRF با آردوینو - دیجی اسپارک

 


تابع shiftIn()


تابع shiftin برای دریافت دیتا استفاده می‌شود. این تابع از همه ی پایه های دیجیتال میتواند استفاده کند. از این تابع برای دریافت ورودی سریال از یک چیپ موازی به سریال است. تراشه ای مانند ۷۴hc165 که میتوانید تعداد پایه های ورودی پردازنده را فقط توسط دو پایه افزایش دهید. Arduino shiftIn یک پیاده سازی کاملا نرم افزاری از یک رابط ورودی سریال است. رابط سخت افزاری معادل SPI است اما توجه داشته باشید shiftIn () نیمی از آن رابط یعنی قسمت ورودی داده را نشان می دهد.

 روش فراخوانی

 

پارامترها

  • PIN = پایه ای که به عنوان بیت ورودی مشخص می‌شود.
  • CLOCKPIN = برای توگل شدن سیگنالی که از پایه ی ورودی دیتاپین خوانده می‌شود.
  • BITORDER = کدام دستور شیفت ها را انجام میدهد.

 


تابع shiftOut()


توسط فانکشن SHIFTOUT بسیاری از چیپ ها را میتوانیم کنترل کنیم. به عنوان مثال کنترل دیوایس های سریال مثل سنسور BMP280 و یا تراشه ۷۴HC595 که هر دو در دو آموزش جداگانه کامل بر روی سایت تحلیل شده است. Arduino shiftOut یک پیاده سازی کاملا نرم افزاری از یک رابط خروجی سریال است. رابط سخت افزاری معادل SPI است. بسیاری از چیپ ها از یک رابط سریال برای کاهش استفاده ی فیزیکی از پین ها استفاده می‌کنند. از SHIFTOUT برای ارسال دیتا استفاده می‌شود و از همه ی پایه های دیجیتال برای فراخوانی میتوان استفاده کرد. در آموزش راه اندازی آی سی شیفت رجیستر روش استفاده از SHIFTOUT گفته شده است. روش فراخوانی فانکشن به صورت زیر است.

 

آموزش شیفت رجیستر

تابع shiftIn() در بردهای آردوینو - دیجی اسپارک

 


وسایل مورد نیاز


آردوینو 

همین!

 


جمع بندی لیدی پای


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

 

چنانچه در مراحل راه اندازی و انجام این پروژه با مشکل مواجه شدید، بدون هیچ نگرانی در انتهای همین پست، به صورت ثبت نظر سوالتان را مطرح کنید. من در سریع‌ترین زمان ممکن پاسخ رفع مشکل شما را خواهم داد. همچنین اگر ایرادی در کدها و یا مراحل اجرایی وجود دارند می‌توانید از همین طریق اطلاع رسانی کنید.

 

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

پریسا پوربلورچیان

تولید کننده محتوا / کارشناس IOT

زندگی یعنی پژوهش و فهمیدن چیزی جدید

تلاشم بر این است تجربیاتم در زمینه IOT‌ را به بهترین شکل با شما در میان بگذارم.

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