شِفر (کود) جستجو

درس ۹۸-۹: ولت‌متر سطح ولتاژ LED با استفاده از آردوینو یا چراغ راه‌رونده با پتانسیومتر

درس ۹۸-۹: ولت‌متر سطح ولتاژ LED با استفاده از آردوینو یا چراغ راه‌رونده با پتانسیومتر

این پروژه به شما نشان می‌دهد چگونه یک ولت‌متر سطح ولتاژ بسازید که از پنج LED به‌عنوان نمایشگر نوار-گراف استفاده می‌کند و کاملاً توسط یک آردوینو و یک پتانسیومتر واحد驱动 می‌شود. وقتی پیچ را می‌چرخانید، آردوینو ولتاژ متغیر روی یک پایه آنالوگ را می‌خواند و به ازای هر ولت یک LED را روشن می‌کند، بنابراین ردیف چراغ‌ها به‌طور واقعی با پیچ بالا و پایین «راه می‌رود». این یکی از واضح‌ترین راه‌ها برای درک ورودی آنالوگ است، زیرا می‌توانید تبدیل آنالوگ به دیجیتال را به‌صورت زنده به شکل یک نوار نور فیزیکی ببینید.

5 leds on breadboard with sliding veriable resistor shown connected to Arduino UNO
5 leds on breadboard with sliding veriable resistor shown connected to Arduino UNO

ارزش عملی اینجا بسیار فراتر از یک نمایش نور است. زمانی که بفهمید چگونه یک ولتاژ اندازه‌گیری‌شده را به مجموعه‌ای از خروجی‌ها نگاشت کنید، می‌توانید دقیقاً همان الگو را برای ابزار دقیق واقعی دوباره استفاده کنید. برای مثال، می‌توانید بسازید:

  • یک نشانگر شارژ باتری که ظرفیت باقی‌مانده یک باتری ۱۲ ولتی یا پاوربانک USB را به‌صورت ردیفی از LED نشان می‌دهد.
  • یک گیج سطح مخزن آب، که در آن یک حساس(حس کننده) شناور ولتاژی متناسب با عمق خروجی می‌دهد.
  • یک نمایشگر نوار دما با استفاده از یک حساس(حس کننده) دمای آنالوگ مانند LM35.
  • یک متر قدرت سیگنال یا سطح صدا برای یک گیرنده رادیویی یا تقویت‌کننده.
  • یک خوانش ساده حساس(حس کننده) برای هر مبدل آنالوگ ۰ تا ۵ ولت (فشار، نور، موقعیت).
  • یک پروب ولتاژ برای امتحان روی میز کار برای بررسی ریل‌های تغذیه بدون صفحه مولتی‌متر.

از آنجا که آستانه‌ها به‌صورت درصدی از ولتاژ برد محاسبه می‌شوند، همان شِفر (کود) روی بردهای ۵ ولتی مانند Uno و Mega و روی بردهای ۳.۳ ولتی تنها با تغییر یک خط کار می‌کند.

سخت‌افزار و قطعات

فهرست قطعات عمداً حداقلی است و همه‌چیز در بخش ابتدایی ویدیو توضیح داده شده است (در ویدیو در ۰۱:۵۴). شما نیاز دارید به:

  • یک برد آردوینو (Uno، Nano یا Mega).
  • پنج LED، ایده‌آل از یک رنگ تا نوار به‌وضوح خوانده شود، هرچند رنگ‌های مخلوط هم خوب کار می‌کنند.
  • پنج مقاومت محدودکننده جریان. آموزش از مقاومت‌های ۱ کیلواهم استفاده می‌کند، اما هر چیزی از حدود ۳۰۰ اهم تا ۱ کیلواهم کار می‌کند؛ مقادیر بالاتر فقط LEDها را کم‌نورتر می‌کنند (در ویدیو در ۰۵:۳۳).
  • یک پتانسیومتر. هم نوع پیچ چرخشی و هم نوع لغزشی نشان داده شده است (در ویدیو در ۰۲:۱۹).
  • یک بردبورد و سیم‌های جامپر.

یک نکته سریع درباره خود LED، چون برای سیم‌کشی مهم است: یک LED یک دیود است، بنابراین فقط یک‌طرفه جریان را هدایت می‌کند. ضلع صاف بدنه پلاستیکی، و پایه کوتاه‌تر، کاتد (منفی) است. پایه بلندتر آند (مثبت) است. آموزش این نماد و شکل فیزیکی را با جزئیات مرور می‌کند (در ویدیو در ۰۲:۳۹).

مقدار مقاومت دلخواه نیست. یک LED حدود ۲ ولت افت می‌کند، و انواع کوچک ۳ میلی‌متری و ۵ میلی‌متری حدود ۱۰ میلی‌آمپر جریان می‌کشند. با تغذیه ۵ ولت، ۳ ولت باقی‌مانده باید روی مقاومت افت کند، بنابراین قانون اهم می‌دهد R = 3 V / 0.01 A = 300 Ω. این مقدار برای حداکثر روشنایی است؛ استفاده از ۱ کیلواهم یک انتخاب ایمن و کمی کم‌نورتر است (در ویدیو در ۰۴:۴۱).

راهنمای سیم‌کشی

Schematic for Arduino walking light LEDs
Schematic for Arduino walking light LEDs
wiring for Arduino walking light LEDs
wiring for Arduino walking light LEDs

بخش LED سیم‌کشی با پروژه نور راه‌رونده قبلی یکسان است: هر آند LED به پایه دیجیتال خودش وصل می‌شود، و هر کاتد از طریق یک مقاومت به ریل زمین مشترک می‌رود. در آموزش، LEDها به پایه‌های ۷، ۶، ۵، ۴ و ۳ سیم‌کشی شده‌اند (در ویدیو در ۴۳:۰۴).

پتانسیومتر تنها قطعه جدید است. دو پایه بیرونی آن به دو ریل تغذیه می‌روند — یک پایه بیرونی به زمین و دیگری به ۵ ولت (یا ۳.۳ ولت اگر سیستم ۳.۳ ولتی را اندازه می‌گیرید). پایه میانی، که برفک نامیده می‌شود، خروجی است و باید به پایه آنالوگ A0 وصل شود (در ویدیو در ۴۳:۳۰). برفک همان چیزی است که ولتاژ متغیر تولید می‌کند: وقتی پیچ را می‌چرخانید، برفک در طول یک مسیر مقاومتی می‌لغزد و ولتاژی که ارائه می‌دهد به‌نرمی بین دو ریل تغییر می‌کند.

یک جزئیات مهم: اگر پتانسیومتر را در حالی که مدار در حال اجراست بردارید، پایه آنالوگ شناور می‌ماند و LEDها به‌صورت تصادفی سوسو می‌زنند. این رفتار در ویدیو نشان داده شده است (در ویدیو در ۴۸:۵۲) و یادآور خوبی است که یک ورودی آنالوگ همیشه به یک منبع ولتاژ تعریف‌شده نیاز دارد.

توضیح شِفر (کود)

شِفر (کود) کوتاه است و بیشتر آن سرراست است، بنابراین این بخش فقط روی بخش‌هایی تمرکز می‌کند که می‌خواهید تغییر دهید. همه این تنظیمات در بالای اسکچ قرار دارند.

تعریف پایه‌ها. این‌ها به آردوینو می‌گویند که LEDها و پتانسیومتر به کدام پایه‌ها وصل هستند. اگر LEDهایتان را متفاوت سیم‌کشی کرده‌اید، این اعداد را مطابق آن تغییر دهید — ترتیب مهم است، زیرا LED1 کمترین آستانه و LED5 بالاترین است.

const int potPin = A0;//define a pin to connect potentiometer
const int LED1 = 7;
const int LED2 = 6;
const int LED3 = 5;
const int LED4 = 4;
const int LED5 = 3;

ولتاژ برد. این مهم‌ترین مقداری است که باید درست تنظیم شود. این مقدار مرجعی است که هر آستانه بر اساس آن محاسبه می‌شود. آن را برای Uno یا Mega روی 5.0 و برای Nano یا برد مشابه 3.3 ولتی روی 3.3 تنظیم کنید. اگر آن را اشتباه بگذارید، هر LED در ولتاژ اشتباه روشن می‌شود (در ویدیو در 44:19).

float boardVoltage= 5.0;//for UNO and MEGA 5.0V for Nano either 5V or 3.3V

نمایش ولتاژ سریال. این را روی true تنظیم کنید تا ولتاژ اندازه‌گیری‌شده با نرخ 9600 baud در Serial Monitor چاپ شود، که هنگام کالیبراسیون بسیار مفید است. پس از اینکه همه‌چیز درست کار کرد، آن را روی false بگذارید تا خروجی خاموش شود.

boolean showVoltage = true;//true or false to read voltage in serial monitor

نحوه کار تبدیل. مبدل آنالوگ به دیجیتال آردوینو عددی از 0 تا 1023 برمی‌گرداند، زیرا یک مبدل 10 بیتی است (210 = 1024 پله). شِفر (کود) آن عدد خام را با استفاده از ولتاژ برد به‌عنوان مرجع به ولتاژ واقعی مقیاس‌بندی می‌کند. این خطی است که اگر روزی به برد 12 بیتی مانند Due مهاجرت کردید باید به خاطر بسپارید، که در آن به‌جای آن بر 4095 تقسیم می‌کنید.

int sensorValue = analogRead(A0);
float voltage = sensorValue * (boardVoltage / 1023.0);

منطق آستانه. به‌جای هاردکد کردن ولتاژها، هر پله به‌صورت درصدی از ولتاژ برد بیان می‌شود. در 95% یا بالاتر، هر پنج LED روشن می‌شوند؛ بالای 80% فقط چهار LED؛ و به همین ترتیب تا 20% که یک LED روشن می‌شود. همین رویکرد درصدی است که اسکچ را بدون بازنویسی مقایسه‌ها بین بردهای 5 ولتی و 3.3 ولتی قابل حمل می‌کند.

if (voltage >= boardVoltage*0.95)
{
      digitalWrite(LED1, HIGH);
      digitalWrite(LED2, HIGH);
      digitalWrite(LED3, HIGH);
      digitalWrite(LED4, HIGH);
      digitalWrite(LED5, HIGH);
}

چون شِفر (کود) از else if استفاده می‌کند، در هر بار اجرای حلقه دقیقاً یک شاخه اجرا می‌شود، بنابراین هرگز هم‌زمان فقط تعداد درست LED روشن است. تأخیر 50 میلی‌ثانیه‌ای در پایان هر حلقه از سوسو زدن نمایشگر جلوگیری می‌کند.

پروژه زنده و نمایش عملی

پس از آپلود اسکچ، Serial Monitor را با نرخ 9600 baud باز کنید و پیچ را به‌آرامی بچرخانید. ولتاژ چاپ‌شده و نوار LED closely یکدیگر را دنبال می‌کنند: در حدود 1 ولت یک LED روشن است، در 2 ولت دو LED روشن است، و به همین ترتیب تا حدود 4.8 ولت که هر پنج LED روشن هستند (در ویدیو در 47:37). خوانش‌ها در محدوده چند صدم ولت از مقدار مورد انتظار قرار می‌گیرند، که برای یک مبدل 10 بیتی عالی است.

اگر پله‌ها کمی نامنظم به نظر می‌رسند، معمولاً مقصر مقاومت‌ها هستند نه شِفر (کود). این آموزش اشاره می‌کند که مقاومت‌های استاندارد کربن‌فیلم تلورانس 10% دارند، در حالی که انواع آبی متال‌فیلم معمولاً 1% هستند و پله‌های noticeably دقیق‌تر و محکم‌تری می‌دهند (در ویدیو در 48:18).

همچنین می‌توانید پتانسیومتر چرخشی را با یک پتانسیومتر کشویی جایگزین کنید و همان رفتار را با حس خطی داشته باشید، که اگر قصد دارید متر را در یک پنل نصب کنید گزینه خوبی است (در ویدیو در 49:07).

اگر می‌خواهید نور را به‌جای پیچ به‌صورت دستی جابه‌جا کنید، در درس 98-8: نور متحرک با دکمه فشاری و LEDها با آردوینو پوشش داده شده است. و اگر فقط می‌خواهید LEDها با تایمر خودشان حرکت کنند، درس 98-7: نور متحرک با استفاده از آردوینو و 5 LED را ببینید.

پروژه‌های مرتبط از این ویدیو

فصل‌ها

  • [00:00] مرور 10 پروژه LED
  • [02:29] مبانی LED، نمادها و محاسبه مقاومت
  • [42:25] معرفی ولت‌متر سطح ولتاژ LED
  • [43:04] سیم‌کشی LEDها و پتانسیومتر
  • [43:54] توضیح شِفر (کود) نوار ولتاژ
  • [44:19] تنظیم مرجع ولتاژ برد
  • [46:00] منطق آستانه و پله‌های درصدی
  • [47:14] نمایش عملی: خواندن ولتاژ با نوار LED
  • [48:18] تلورانس مقاومت و دقت
  • [49:07] استفاده از پتانسیومتر کشویی

تصاویر

wiring for Arduino walking light LEDs
wiring for Arduino walking light LEDs
Schematic for Arduino walking light LEDs
Schematic for Arduino walking light LEDs
۵ LED روی بردبورد با مقاومت متغیر لغزنده که به Arduino UNO متصل است
۵ LED روی بردبورد با مقاومت متغیر لغزنده که به Arduino UNO متصل است
941-Lessson 98-LED-9: Arduino code walking LED light controlled by potentiometer
زبان: C++
This code has not been parsed yet. Please return to the admin panel to parse it.

مواردی که ممکن است به آن‌ها نیاز داشته باشید

فایل‌ها📁

کتابخانه‌های آردوینو (zip)

راهنمای کاربر