برد هوش مصنوعی Sipeed

راه اندازی و کار با برد Maixduino بخش سوم: ورودی و خروجی آنالوگ I/O

getting-started-with-sipeed-m1-maixduino-step-three-board-io-digispark
نوشته شده توسط معین صابری

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

 


ورودی های آنالوگ برد Maiduino


برد Maixduino  از ۶ پایه آنالوگ بهره می برد. این پایه ها بر روی برد از شماره های A0 الی A5 را شامل می شوند. خواندن ورودی آنالوگ تحت پلتفرم آردوینو تا لحظه نگارش این آموزش در دسترس نیست. امید می رود که این امکان به زودی از طرف شرکت سازنده، مورد پشتیبانی قرار گیرد.

پایه های آنالوگ برد مایکسدوینو Sipeed - دیجی اسپارک

 


ایجاد پالس 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)، توابع آن و تنظیمات مربوطه را مورد بررسی قرار دادیم. در نهایت با ارائه یک برنامه، نحوه استفاده از توابع در برنامه های عملی را مشاهده نمودیم.

 

چنانچه هرگونه ابهامی در مطالب درج شده وجود دارد، می توانید با ثبت نظر در انتهای همین پست سوال خود را بپرسید. تاکنون در دیجی اسپارک بیش از ۲۶ هزار سوال و پاسخ ثبت شده است؛ پس نظرات بی جواب نمی مانند! همچنین اگر ایراد و یا اشکالی در مطالب درج شده وجود دارد، لطفا آن را با ثبت نظر، مطرح کنید. همچنین اگر مشکلی در کدها وجود داشته و یا اجرا نمی شوند، مورد را حتما در انتهای همین آموزش مطرح نمایید. نظرات شما برای ما بسیار ارزشمند هسنند!! 

 

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

معین صابری

کارشناسی ارشد رشته معماری سیستم های کامپیوتری

مالي که ز تو کس نستاند، علم است
حرزي که تو را به حق رساند، علم است
جز علم طلب مکن تو اندر عالم
چيزي که تو را ز غم رهاند، علم است
(شیخ بهایی)

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