برای انسان های موفق
در هفته، هفت "امروز" وجود دارد؛
و برای انسان های ناموفق، هفت "فردا"
آردینو کاران جوان👍❤️
https://telegram.me/ArduinoKaraneJavan
در هفته، هفت "امروز" وجود دارد؛
و برای انسان های ناموفق، هفت "فردا"
آردینو کاران جوان👍❤️
https://telegram.me/ArduinoKaraneJavan
This media is not supported in your browser
VIEW IN TELEGRAM
#آردوینو کاران جوان
✅ اولین کانال آموزش آردوینو در تلگرام
✅ اتوماسیون خانگی و صنعتی
✅ برای عضویت کلیک کنید 👇🏻👇🏻👇🏻 https://telegram.me/ArduinoKaraneJavan
✅ اولین کانال آموزش آردوینو در تلگرام
✅ اتوماسیون خانگی و صنعتی
✅ برای عضویت کلیک کنید 👇🏻👇🏻👇🏻 https://telegram.me/ArduinoKaraneJavan
سلام بر آردوینو کاران جوان
امروز میخواهیم یک پروژه با ماژول PING یا همون ماژول آلتراسونیک که تصویر اون رو در گیف بالا می بینید براتون آموزش بدهیم.
اما نه دقیقاً همون پروژه. بلکه میخواهیم با استفاده از ماژول PING یک متر دیجیتالی بسازیم و فاصله اجسام از سنسور رو برحسب سانتیمتر روی پورت سریال نشون بدیم و در پروژه بعدی که می خواهیم کار با LCD های کاراکتری رو یاد بگیریم بجای پورت سریال متراژ خوانده شده را روی LCD نمایش دهیم.
ماژول PING چیست؟
اساس کار ماژول آلتراسونیک (فراصوت) مشابه رادار یا ردیاب صوتی، تشخیص ویژگی های هدف از طریق تحلیل بازتاب امواج رادیویی یا صوتی می باشد. این ماژول امواج صوتی را با فرکانس بالا ایجاد کرده و موج بازتاب شده را دریافت و تحلیل می نماید.
این حسگر با محاسبه ی زمان بین فرستادن سیگنال و گرفتن بازتاب، فاصلهٔ جسم را محاسبه می کند.
در این ماژول سنجش مسافت، فرستنده آلتراسونیک و حسگر بر روی یک برد قرار داده شده و مدار الکترونیکی واسط، کار را برای استفاده از این ماژول بسیار ساده می نماید.
به طور کلی این ماژول با همه میکرو کنترلر ها سازگار می باشد؛ اما چنانچه از آردوینو برای به کارگیری این ماژول استفاده می نمایید با استفاده از توابع NewPing در چند خط کد می توانید آن را راه اندازی نمایید.
قیمت ارزان و به کارگیری آسان، این ماژول را تبدیل به یکی از ماژول های معروف و پرکاربرد در حوزه سنسورهای آلتراسونیک سنجش مسافت تبدیل کرده است.
قبل از ارائه توضیحات در مورد طرح برنامه بهتر است که یک نکته را یاد آوری نمایم که برای کار با هر نوع ماژولی که می خواهیم به آردوینو متصل نماییم باید ابتدا کتابخانه های آنرا از اینترنت دریافت کرده و با استفاده از روشهایی که قبلاً توضیح داده شده اند به نرم افزار آردوینو اضافه نماییم. که در این مثال ما از کتابخانه NewPing.h که مربوط به ماژول PING یا همان آلتراسونیک می باشد استفاده خواهیم کرد بنابراین ابتدا باید این کتابخانه را به نرم افزار آردوینو اضافه نماییم تا برنامه نوشته شده کار کند. البته من کتابخانه NewPing.h را در زیر جهت دانلود قرار خواهم داد.
پس از اضافه نمودن کتابخانه به برنامه شما باید یک متغیر از نوع کلاس کتابخانه مورد نظر بسازید و آرگومانهایی را که لازم دارد به آن بدهید.
خوب به نظرم بهتر است که به برنامه اصلی بپردازیم و نحوه کارکرد آنرا با هم برسی کنیم:
#include <NewPing.h>
// پین آردوینو که به پین trigger بر روی سنسور اولتراسونیک متصل می شود. //
#define TRIGGER_PIN 7
// پین آردوینو که به پین echo بر روی سنسور اولتراسونیک متصل می شود. //
#define ECHO_PIN 8
// حداکثر مسافتی که ما می خواهیم PING کنیم (بر حسب سانتی متر). حداکثر فاصله سنسور بین 400 تا 500 سانتی متر است //
#define MAX_DISTANCE 200
// یک متغیر برای ذخیره فاصله اندازه گیری شده تعریف می کنیم. //
int temp = 0;
// تعریف یک متغیر به نام sonar از نوع کلاس NewPing و همچنین //
// تنظیم پایه های آردوینو و حداکثر فاصله برای کتابخانه NewPing //
NewPing sonar(TRIGGER_PIN, ECHO_PIN, MAX_DISTANCE);
void setup() {
Serial.begin(9600);
}
void loop() {
// تاخیر 100 میلی ثانیه بین PING ها(حدود 10 عدد PING در ثانیه) حداقل تاخیر بین PING ها باید 29 میلی ثانیه باشد. //
delay(100);
// ارسال PING و دریافت زمان PING برحسب میکروثانیه //
// دستور ()ping یک سیگنال مافوق صوت از پایه trigger ارسال میکند و انعکاس آنرا در پایه echo دریافت میکند //
// و با استفاده از رابطه زیر میتوانیم زمان رفت و برگشت آنرا بر حسب میکروثانیه بدست آوریم و به سانتیمتر تبدیل کنیم. //
// چون زمان نمی تواند منفی باشد، یک متغیر از نوع int بدون علامت تعریف کرده و زمان اندازه گیری شده را در آن قرار می دهیم. //
unsigned int uS = sonar.ping() / US_ROUNDTRIP_CM;
// اگر فاصله اندازه گیری شده با مقدار قبلی متفاوت است //
if (uS != temp)
{
// مقدار جدید را ذخیره کن. //
temp = uS;
Serial.print("The distance is : ");
// چاپ مقدار اندازه گیری شده در خروجی. (مقدار 0 یعنی خارج از فاصله تعریف شده) //
Serial.print(temp);
Serial.println("cm");
}
}
خوب دیدید که کار با ماژول ها در آردوینو بخاطر وجود کتابخانه های قدرتمند آن چقدر ساده است؟
حالا شما میتوانید که به راحتی با ماژول PING کار کنید و یک متر دیجیتالی برای خود بسازید. و یا با استفاده از دستور IF در برنامه شرط تعیین کنید که مثلاً اگر جسمی با فاصله 120 سانتی متر از ماژول قرار گرفت چه عملی انجام گیرد و غیره...
https://telegram.me/ArduinoKaraneJavan
امروز میخواهیم یک پروژه با ماژول PING یا همون ماژول آلتراسونیک که تصویر اون رو در گیف بالا می بینید براتون آموزش بدهیم.
اما نه دقیقاً همون پروژه. بلکه میخواهیم با استفاده از ماژول PING یک متر دیجیتالی بسازیم و فاصله اجسام از سنسور رو برحسب سانتیمتر روی پورت سریال نشون بدیم و در پروژه بعدی که می خواهیم کار با LCD های کاراکتری رو یاد بگیریم بجای پورت سریال متراژ خوانده شده را روی LCD نمایش دهیم.
ماژول PING چیست؟
اساس کار ماژول آلتراسونیک (فراصوت) مشابه رادار یا ردیاب صوتی، تشخیص ویژگی های هدف از طریق تحلیل بازتاب امواج رادیویی یا صوتی می باشد. این ماژول امواج صوتی را با فرکانس بالا ایجاد کرده و موج بازتاب شده را دریافت و تحلیل می نماید.
این حسگر با محاسبه ی زمان بین فرستادن سیگنال و گرفتن بازتاب، فاصلهٔ جسم را محاسبه می کند.
در این ماژول سنجش مسافت، فرستنده آلتراسونیک و حسگر بر روی یک برد قرار داده شده و مدار الکترونیکی واسط، کار را برای استفاده از این ماژول بسیار ساده می نماید.
به طور کلی این ماژول با همه میکرو کنترلر ها سازگار می باشد؛ اما چنانچه از آردوینو برای به کارگیری این ماژول استفاده می نمایید با استفاده از توابع NewPing در چند خط کد می توانید آن را راه اندازی نمایید.
قیمت ارزان و به کارگیری آسان، این ماژول را تبدیل به یکی از ماژول های معروف و پرکاربرد در حوزه سنسورهای آلتراسونیک سنجش مسافت تبدیل کرده است.
قبل از ارائه توضیحات در مورد طرح برنامه بهتر است که یک نکته را یاد آوری نمایم که برای کار با هر نوع ماژولی که می خواهیم به آردوینو متصل نماییم باید ابتدا کتابخانه های آنرا از اینترنت دریافت کرده و با استفاده از روشهایی که قبلاً توضیح داده شده اند به نرم افزار آردوینو اضافه نماییم. که در این مثال ما از کتابخانه NewPing.h که مربوط به ماژول PING یا همان آلتراسونیک می باشد استفاده خواهیم کرد بنابراین ابتدا باید این کتابخانه را به نرم افزار آردوینو اضافه نماییم تا برنامه نوشته شده کار کند. البته من کتابخانه NewPing.h را در زیر جهت دانلود قرار خواهم داد.
پس از اضافه نمودن کتابخانه به برنامه شما باید یک متغیر از نوع کلاس کتابخانه مورد نظر بسازید و آرگومانهایی را که لازم دارد به آن بدهید.
خوب به نظرم بهتر است که به برنامه اصلی بپردازیم و نحوه کارکرد آنرا با هم برسی کنیم:
#include <NewPing.h>
// پین آردوینو که به پین trigger بر روی سنسور اولتراسونیک متصل می شود. //
#define TRIGGER_PIN 7
// پین آردوینو که به پین echo بر روی سنسور اولتراسونیک متصل می شود. //
#define ECHO_PIN 8
// حداکثر مسافتی که ما می خواهیم PING کنیم (بر حسب سانتی متر). حداکثر فاصله سنسور بین 400 تا 500 سانتی متر است //
#define MAX_DISTANCE 200
// یک متغیر برای ذخیره فاصله اندازه گیری شده تعریف می کنیم. //
int temp = 0;
// تعریف یک متغیر به نام sonar از نوع کلاس NewPing و همچنین //
// تنظیم پایه های آردوینو و حداکثر فاصله برای کتابخانه NewPing //
NewPing sonar(TRIGGER_PIN, ECHO_PIN, MAX_DISTANCE);
void setup() {
Serial.begin(9600);
}
void loop() {
// تاخیر 100 میلی ثانیه بین PING ها(حدود 10 عدد PING در ثانیه) حداقل تاخیر بین PING ها باید 29 میلی ثانیه باشد. //
delay(100);
// ارسال PING و دریافت زمان PING برحسب میکروثانیه //
// دستور ()ping یک سیگنال مافوق صوت از پایه trigger ارسال میکند و انعکاس آنرا در پایه echo دریافت میکند //
// و با استفاده از رابطه زیر میتوانیم زمان رفت و برگشت آنرا بر حسب میکروثانیه بدست آوریم و به سانتیمتر تبدیل کنیم. //
// چون زمان نمی تواند منفی باشد، یک متغیر از نوع int بدون علامت تعریف کرده و زمان اندازه گیری شده را در آن قرار می دهیم. //
unsigned int uS = sonar.ping() / US_ROUNDTRIP_CM;
// اگر فاصله اندازه گیری شده با مقدار قبلی متفاوت است //
if (uS != temp)
{
// مقدار جدید را ذخیره کن. //
temp = uS;
Serial.print("The distance is : ");
// چاپ مقدار اندازه گیری شده در خروجی. (مقدار 0 یعنی خارج از فاصله تعریف شده) //
Serial.print(temp);
Serial.println("cm");
}
}
خوب دیدید که کار با ماژول ها در آردوینو بخاطر وجود کتابخانه های قدرتمند آن چقدر ساده است؟
حالا شما میتوانید که به راحتی با ماژول PING کار کنید و یک متر دیجیتالی برای خود بسازید. و یا با استفاده از دستور IF در برنامه شرط تعیین کنید که مثلاً اگر جسمی با فاصله 120 سانتی متر از ماژول قرار گرفت چه عملی انجام گیرد و غیره...
https://telegram.me/ArduinoKaraneJavan
شماتیک مدار متر دیجیتالی مربوط به درس 8 https://telegram.me/ArduinoKaraneJavan
NewPing.zip
8.1 KB
کتابخانه NewPing.h https://telegram.me/ArduinoKaraneJavan
HC-SR04-datasheet-version-2.pdf
526 KB
دیتاشیت ماژول PING https://telegram.me/ArduinoKaraneJavan
Lesson_8.ino
2.5 KB
#درس 8: ساخت متر دیجیتالی https://telegram.me/ArduinoKaraneJavan
ماژول آلتراسونیک یا PING مدل HC-SR04 https://telegram.me/ArduinoKaraneJavan
نوع دیگری از ماژول PING که توسط یک پین کنترل می شود و به زودی آموزش داده خواهد شد. https://telegram.me/ArduinoKaraneJavan
با سلام خدمت آردوینو کاران جوان
امیدوارم که این مطلب برای شما مفید بوده باشد. در درسهای آینده با کنترل نوع تک سیمه ماژول PING آشنا شده و یک هشدار دهنده نزدیک شدن ماشین به یک جسم در حالت دنده عقب با چند عدد LED خواهیم پرداخت. و پس از یادگیری کار با سرو موتور ها به آموزش ساخت یک رادار با استفاده از ماژول PING و سروموتور و مانیتورینگ حرکت اشخاص در یک اتاق در گوشی موبایل و کامپیوتر خواهیم پرداخت.
اینجانب ساعت ها وقت صرف تایپ و نگارش مطالب کانال کرده و ساعت ها وقت صرف تهیه بهترین عکسهای مربوط به مطالب آموزشی می نمایم و حتی عکس بعضی از برد ها را که با کیفیت خیلی بالا در کانال مشاهده می فرمایید، خودم در نرم افزار های مختلف طراحی می کنم. و سعی دارم تا بهترین مطالب آموزشی با تمامی نکات برنامه نویسی را آموزش دهم.
لذا از شما دوست گرامی خواهشمندم که جهت حمایت از کانال و دوام و بقای کانال آردوینو کاران جوان مطالب کانال را فوروارد کنید به کسانی که می دانید در زمینه الکترونیک فعالیت دارند.
با سپاس فراوان
https://telegram.me/ArduinoKaraneJavan
امیدوارم که این مطلب برای شما مفید بوده باشد. در درسهای آینده با کنترل نوع تک سیمه ماژول PING آشنا شده و یک هشدار دهنده نزدیک شدن ماشین به یک جسم در حالت دنده عقب با چند عدد LED خواهیم پرداخت. و پس از یادگیری کار با سرو موتور ها به آموزش ساخت یک رادار با استفاده از ماژول PING و سروموتور و مانیتورینگ حرکت اشخاص در یک اتاق در گوشی موبایل و کامپیوتر خواهیم پرداخت.
اینجانب ساعت ها وقت صرف تایپ و نگارش مطالب کانال کرده و ساعت ها وقت صرف تهیه بهترین عکسهای مربوط به مطالب آموزشی می نمایم و حتی عکس بعضی از برد ها را که با کیفیت خیلی بالا در کانال مشاهده می فرمایید، خودم در نرم افزار های مختلف طراحی می کنم. و سعی دارم تا بهترین مطالب آموزشی با تمامی نکات برنامه نویسی را آموزش دهم.
لذا از شما دوست گرامی خواهشمندم که جهت حمایت از کانال و دوام و بقای کانال آردوینو کاران جوان مطالب کانال را فوروارد کنید به کسانی که می دانید در زمینه الکترونیک فعالیت دارند.
با سپاس فراوان
https://telegram.me/ArduinoKaraneJavan
❤3
ساخت رادار با ماژول PING و سرو موتور https://telegram.me/ArduinoKaraneJavan