در سلسه آموزش های کار با برد Maixduino، قسمت سوم به برنامه نویسی ورودی و خروجی آنالوگ می پردازیم. همانطور که در قسمت پیشین بررسی کردیم، برد Maixduino را می توان از طریق پلتفرم آردوینو برنامه نویسی نمود. بدین ترتیب به سادگی و بدون نیاز به یادگیری زبان برنامه نویسی جدید، این برد را پروگرام و راه اندازی کنید. در این آموزش که قسمت سوم از سلسله آموزش های برد Maiduino است، به ورودی و خروجی آنالوگ برد می پردازیم.در ادامه این آموزش با مرجع تخصصی برد هوش مصنوعی Sipeed به زبان فارسی، دیجی اسپارک همراه باشید.
ورودی های آنالوگ برد Maiduino
برد Maixduino از ۶ پایه آنالوگ بهره می برد. این پایه ها بر روی برد از شماره های A0 الی A5 را شامل می شوند. خواندن ورودی آنالوگ تحت پلتفرم آردوینو تا لحظه نگارش این آموزش در دسترس نیست. امید می رود که این امکان به زودی از طرف شرکت سازنده، مورد پشتیبانی قرار گیرد.
ایجاد پالس PWM
برد Maixduino قابلیت ایجاد پالس PWM را در خود جای داده است. به کمک این برد می توانید تا ۱۲ پایه را به صورت PWM تعریف کنید. با به کارگیری توابع آردوینو شما می توانید سیکل وظیفه، دقت و پایه مد نظر را به صورت PWM تعریف کنید. در ابتدا به کمک تابع زیر می توانید پالس PWM را در پایه مد نظر ایجاد کنید.
(analogWrite(pin,value
در تابع فوق، ورودی pin از نوع int(صحیح) شماره پایه را جهت ایجاد پالس PWM مشخص می کند. ورودی دوم نیز مقدار Duty Cycle را بین عدد ۰ الی ۲۵۵ تعیین می کند. این ورودی هم از نوع صحیح(int) است. در ادامه این موضوع، شما می توانید دقت سیگنال PWM را افزایش دهید. این دقت می تواند تا ۳۲ بیت هم افزایش یابد. به این منظور می توانید از تابع زیر استفاده کنید.
(analogWriteResolution(bits
بدین ترتیب به کمک تابع فوق، می توانید دقت را از ۰ الی ۲۵۵ به ۰ الی ۴۲۹۴۹۶۷۲۹۶ تبدیل کنید. بدیهی است که با افزایش بازه، دقت سیگنال ایجاد شده افزایش خواهد یافت.
نمونه برنامه پالس PWM
پس از برسی توابع مربوط به تنظیم پالس PWM، نوبت به اجرای یک برنامه می رسد. در این برنامه یکی از پایه های دیجیتال به صورت PWM تبدیل شده و سیکل وظیفه آن بین ۰ الی ۲۵۵ افزایش می یابد. پس از اتمام این مرحله، با کاهش سیکل وظیفه، آن را از ۲۵۵ به صفر می رسانیم. با اتصال یک LED به همراه یک مقاومت سری شده یک کیلویی، می توانیم افزایش و کاهش نور LED را شاهد باشیم.
void setup() { pinMode(7, OUTPUT); //انتخاب پایه شماره ۷ به عنوان خروجی } void loop() { int i; for (i = 0; i < 255; i++) { analogWrite(7, i); //ایجاد پالس PWM delay(10); } for (int j = 255; j >= 0; j--) { analogWrite(7, i); //ایجاد پالس PWM delay(10); } }
مطابق کد فوق، LED متصل به پایه شماره ۷، رفته رفته روشن شده و پس از روشن شدن کامل، رفته رفته خاموش خواهد شد. این رویه به طور مکرر اجرا می گردد.
جمع بندی
در سلسله آموزش های برد Maixduino، قسمت سوم به ورودی و خروجی آنالوگ پرداختیم. برد Maixduino قابلیت ایجاد پالس PWM با دقت تا ۳۲ بیت را در خود جای داده است. به کمک این برد و با همان توابع آردوینو، می توانید سیگنال PWM را در خروجی روی ۱۲ پایه، ایجاد کنید. در این آموزش ابتدا به معرفی و بررسی ورودی و خروجی آنالوگ پرداختیم. سپس در ادامه به خروجی آنالوگ(PWM)، توابع آن و تنظیمات مربوطه را مورد بررسی قرار دادیم. در نهایت با ارائه یک برنامه، نحوه استفاده از توابع در برنامه های عملی را مشاهده نمودیم.
چنانچه هرگونه ابهامی در مطالب درج شده وجود دارد، می توانید با ثبت نظر در انتهای همین پست سوال خود را بپرسید. تاکنون در دیجی اسپارک بیش از ۲۶ هزار سوال و پاسخ ثبت شده است؛ پس نظرات بی جواب نمی مانند! همچنین اگر ایراد و یا اشکالی در مطالب درج شده وجود دارد، لطفا آن را با ثبت نظر، مطرح کنید. همچنین اگر مشکلی در کدها وجود داشته و یا اجرا نمی شوند، مورد را حتما در انتهای همین آموزش مطرح نمایید. نظرات شما برای ما بسیار ارزشمند هسنند!!