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

اتصال پتانسیومتر به آردوینو (ADC و ولتاژ متغیر)

پتانسیومترها نوعی مقاومت متغیر هستند.بعضی از مقاومتهای متغیر مانند ترمیستور ها با تغییر دما مقاومت خود را تغییر میدهند. سایر مقاومتهای متغیر مانند مقاومتهای نوری با تغییر نور مقاومت خود را تغییر میدهند. پتانسیومترها با چرخاندن صفحه کلید مقاومت خود را تغییر میدهند.

پتانسیومترها همه جا در پروژه های الکترونیکی وجود دارند، زیرا آنها روشی آسان برای تنظیم مقاومت و ولتاژ در مدار هستند. می توان از آنها برای تنظیم ولوم یک تقویت کننده، سرعت موتورهای کنترلی یا تنظیم کنتراست نمایشگر LCD استفاده کرد.

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

پتانسیومتر چگونه کار می کنند؟

پتانسیومتر ها اشکال، اندازه‌ها و مقادیر مقاومت مختلفی دارند. اما همه آنها تقریباً یک کار را انجام می‌دهند که تغییر مقاومت با چرخاندن پیچ است. پتانسیومترها سه پایه دارند – یک پایه مرکزی و دو پایه خارجی:

پتانسیومتر چگونه کار می کنند؟

دو پین بیرونی توسط یک قطعه ماده مقاومتی به هم متصل شده اند که یک نیم دایره در داخل بدنه پتانسیومتر ایجاد می کند. پین مرکزی به یک لغزنده متصل است که با چرخاندن پیچ می چرخد. لغزنده در امتداد ماده مقاومتی می لغزد، بنابراین بسته به موقعیت لغزنده، مواد مقاومتی کم و بیش در مسیر جریان الکتریکی وجود دارد، بنابراین مقاومت تغییر می کند.

ساختار داخلی پتانسیومتر

به طور معمول شما یکی از پایه های بیرونی را به ولتاژ مثبت و پایه دیگر را به GNDوصل می کنید. پایه مرکزی خروجی است که ولتاژ متغیر را فراهم می کند. اگر یکی از پایه های بیرونی به 5 ولت و دیگری به GND وصل شود با چرخاندن لغزنده بین 0 تا 5 ولت تغییر می کند. این یک نوع مدار تقسیم کننده ولتاژ است.

تقسیم کننده های ولتاژ

تقسیم کننده ولتاژ برای پایین آمدن یا کاهش ولتاژ در مدار استفاده می شود. تقسیم کننده ولتاژ از دو مقاومت به صورت سری تشکیل شده است. یک مقاومت به منبع ولتاژ مثبت و مقاومت دیگر به GND وصل می شود. تقسیم کننده های ولتاژ یک ولتاژ ورودی دارند و یک ولتاژ خروجی.

تقسیم کننده های ولتاژ

اگر از پایه 5 ولت آردوینو برای تامین ولتاژ استفاده کنید ولتاژ ورودی 5 ولت خواهد بود. ولتاژ خروجی از سیم متصل بین دو مقاومت گرفته می شود و بسته به مقاومت بین 0 تا 5 ولت خواهد بود.  اگر مقاومت R1 و R2 مقاومت یکسانی داشته باشند ولتاژ خروجی دقیقا نصف ولتاژ ورودی یعنی 2.5 ولت خواهد بود اگر R2 مقاومت بسیار بالایی داشته باشد ولتاژ خروجی نزدیک به 5 ولت خواهد بود اگر R1 دارای یک مقاومت بسیار بالا باشد، ولتاژ خروجی نزدیک به صفر خواهد بود.

پتانسیومترها مانند تقسیم کننده های ولتاژ کار می کنند. در پتانسیومتر، مقاومت های R1 و R2 با چرخاندن لغزنده تغییر می کند. این یک ولتاژ خروجی متغیر ایجاد می کند که می توانید آن را روی هر مقداری بین ولتاژ ورودی و صفر تنظیم کنید.

نحوه اتصال پتانسیومتر به برد آردوینو

بیایید از آردوینو برای خواندن ولتاژ خروجی یک پتانسیومتر استفاده کنیم.

اینها قطعاتی هستند که شما نیاز خواهید داشت:

یک پتانسیومتر را به آردوینو به این صورت وصل کنید:

همچنین اگر در مورد این مطلب سوالی داشتید در انتهای صفحه در قسمت نظرات بپرسید

مدار اتصال پتانسیومتر به برد آردوینو

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

ما میخواهیم از ADC در آردوینو استفاده کنیم. پس از اتصال پتانسیومتر، این کد را در برد آردوینو خود آپلود کنید:

void setup() {
  Serial.begin(9600);
}

void loop() {
  int rawValue = analogRead(A0);

  Serial.println(rawValue);

  delay(100);
}

این کد مقدار تبدیل آنالوگ به دیجیتال خروجی پتانسیومتر را در مانیتور سریال آردوینو نمایش می دهد. در قسمت loop، متغیر rawValue را برابر با تابع analogRead() قرار می دهیم. تابع analogRead() فقط به یک پارامتر نیاز دارد که شماره پین ​​آنالوگ است. می‌خواهیم ولتاژ را در پایه مرکزی پتانسیومتر که به پایه آنالوگ A0 متصل است بخوانیم، بنابراین A0 را به عنوان پارامتر قرار می‌دهیم.

تابع analogRead() مقدار ADC پین آنالوگ را که اندازه گیری می کند برمی گرداند. ADC اندازه گیری ولتاژ آنالوگ را به عددی بین 0 تا 1023 تبدیل می کند. ولتاژ 0 دارای مقدار ADC صفر و 5 ولت دارای مقدار ADC برابر 1023 است. بنابراین ولتاژهای بین 0 تا 5 ولت به مقادیر بین 0 تا 1023 تبدیل می شوند.

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

اگر پتانسیومتر را تا انتها به سمت چپ بچرخانید باید مشاهده کنید که مقدار خروجی 0 میشود. با چرخاندن کامل آن به راست باید مشاهده کنید که مقدار خروجی 1023 میشود. این مقدار ADC خام بود. حالا میتوانیم به سادگی این مقدار را به ولتاژ تبدیل کنیم.

اندازه گیری ولتاژ پتانسیومتر با آردوینو

این کد ولتاژ خروجی را توسط پتانسیومتر روی سریال مانیتور نمایش می دهد.

void setup() {
  Serial.begin(9600);
}

void loop() {
  int rawValue = analogRead(A0);
  
  float voltage = rawValue * (5.0 / 1023.0);

  Serial.print(voltage);
  Serial.println(" Volts");

  delay(100);
}

متغیر rawValue دارای میزان ADC از پایه آنالوگ A0 است. ما فقط باید این مقدار ها را به ولتاژ تبدیل کنیم. برای انجام این کار، متغیر دیگری به نام voltage ایجاد می کنیم که نتایج محاسبه ولتاژ ما را ذخیره می کند. متغیر ولتاژ از نوع float ایجاد می شود. محدوده ولتاژی که اندازه گیری خواهیم کرد 0 ولت تا 5 ولت و محدوده مقادیر ADC از 0 تا 1023 است. برای تبدیل مقادیر ADC به ولتاژ، ما باید rawValue را در 5 ضرب کرد، سپس بر 1023 تقسیم کرد.

اندازه گیری ولتاژ پتانسیومتر با آردوینو

در حقیقت ما یک ولت متر با آردوینو ساخته ایم.

بنابراین اکنون می‌توانید خروجی پتانسیومتر را به‌ جای مقادیر خام ADC بر حسب ولت ببینید. این کار به شما امکان می‌دهد تا ببینید که با چرخاندن لغزنده چه اتفاقی برای ولتاژ خروجی پتانسیومتر می‌افتد. کد خواندن پتانسیومتر همان کدی است که شما استفاده می‌کنید. برای خواندن هر سنسوری که ولتاژ آنالوگ را تولید می کند. ابتدا مقدار ADC خام را با analogRead() دریافت می کنید، سپس مقداری عملیات ریاضی را انجام می دهید تا مقدار ADC خام را به واحدهایی که می خواهید تبدیل کنید. سپس آن را در مانیتور سریال چاپ می کنید، یا از آن در عملکردی استفاده کنید تا آردوینو بسته به خواندن سنسور، کارهای مختلفی انجام دهد.

ممنون که خواندید و اگر در مورد چیزی سوالی دارید حتما نظر بدهید…

5/5 - (1 امتیاز)

برای دریافت مطالب جدید کانال تلگرام یا پیج اینستاگرام آیرنکس را دنبال کنید.
تصویر از محمد رحیمی

محمد رحیمی

محمد رحیمی هستم. سعی میکنم در آیرنکس مطالب مفید قرار بدهم. سوالات مربوط به این مطلب را در قسمت نظرات همین مطلب اعلام کنید. سعی میکنم در اسرع وقت به نظرات شما پاسخ بدهم.

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

نشانی ایمیل شما منتشر نخواهد شد.