توابع ورودی/خروجی پیشرفته آردوینو

در این بخش در مورد تعدادی از توابع ورودی/خروجی پیشرفته آردوینو صحبت می کنیم.در ادامه با میکرو دیزاینر الکترونیک همراه باشید.

توابع ورودی/خروجی پیشرفته آردوینو

تابع analogReference

این تابع ولتاژ مرجع مورد استفاده برای ورودی را تنظیم می کند (منظور از ولتاژ مرجع حداکثر ولتاژی است که به عنوان ولتاژ ورودی پایه آنالوگ در نظر گرفته می شود). تنظیمات این تابع عبارت اند از :

  • DEFAULT : ولتاژ مرجع پیش فرض که برابر 5V می باشد (در بردهای آردوینو با تغذیه 5V) و یا 3V (در بردهای آردوینو با تغذیه 3.3V)
  • INTERNAL : ولتاژ مرجع داخلی، برای بردهای دارای میکروهای ATmega168 و ATmega328 برابر 1V و برای بردهای دارای میکروی ATmega8 برابر 2.56V ( در بردهای Arduino Mega غیرفعال است)
  • INTERNAL1V1 : ولتاژ مرجع داخلی 1V (فقط در بردهای Arduino Mega)
  • INTERNAL2V56 : ولتاژ مرجع داخلی 56V (فقط در بردهای Arduino Mega)
  • EXTERNAL : ولتاژ اعمال شده به پایه AREF (فقط 0V تا 5V) به عنوان ولتاژ مرجع در نظر گرفته می شود.

دستور نگارش تابع analogReference() :

analogReference (type);

type : فقط میتواند یکی از موارد زیر باشد :

DEFAULT, INTERNAL, INTERNAL1V1, INTERNAL2V56, EXTERNAL

توجه شود هرگز ولتاژی کمتر از 0V یا ولتاژی بیشتر از 5V به پایه AREF اعمال نکنید. اگر از ولتاژ خارجی به عنوان ولتاژ مرجع بر روی پایه AREF استفاده می کنید، باید قبل از فراخوانی تابع analogRead    ولتاژ مرجع را بر روی حالت EXTERNAL تنظیم کنید. در غیر اینصورت فراخوانی این تابع موجب اتصال کوتاه شدن ولتاژ مرجع داخلی و پایه AREF می شود و ممکن است موجب سوختن میکروکنترلر موجود بر روی برد آردوینو شود.

مطلب پیشنهادی:  آموزش کار با میکروکنترلرهای STM32 با استفاده از Arduino IDE: پروژه LED چشمک زن

ولتاژ مرجع داخلی و پایه AREF

به عنوان یک روش دیگر میتوانید ولتاژ مرجع خارجی مورد نظر را توسط یک مقاومت 5 کیلو اهم به پایه AREF متصل نمایید، در اینصورت میتوانید بین ولتاژ مرجع خارجی و ولتاژ مرجع داخلی تغییر حالت دهید.

البته در این حالت توجه کنید که ولتاژ اعمال شده به عنوان ولتاژ مرجع تغییر خواهد کرد زیرا به صورت داخلی یک مقاومت 32 کیلواهم بر روی پایه AREF وجود دارد و مقاومت خارجی  که متصل میکنیم به همراه این مقاومت یک تقسیم کننده ولتاژ را تشکیل می دهند. به عنوان مثال، اگر 2.5V به پایه AREF اعمال نمایید، ولتاژ مرجع برابر است با :

2.5 * 32 / (32 + 5) = ~2.2V

مثال :

int analogPin = 3;// potentiometer wiper (middle terminal) connected to analog pin 3 
int val = 0; // variable to store the read value

void setup() {
 Serial.begin(9600); // setup serial
 analogReference(EXTERNAL); // the voltage applied to the AREF pin (0 to 5V only) 
 // is used as the reference.
}

void loop() {
 val = analogRead(analogPin); // read the input pin
 Serial.println(val); // debug value
}

 

پایان جلسه،در جلسه بعدی توابع کاراکتر ها را برسی میکنیم.

اگر این نوشته‌ برایتان مفید بود لطفا کامنت بنویسید.

مطالعه دیگر جلسات این آموزش<< جلسه قبلی                    جلسه بعدی >>

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

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

یک دیدگاه

  1. مهدی شهبازی

    سلام خدا خیرتون بده واقعا عالیه