استفاده از ACS712 برای نمایش جریان روی LCD1602 یا LCD2004 با I2C

استفاده از ACS712 برای نمایش جریان روی LCD1602 یا LCD2004 با I2C

در این آموزش یاد می‌گیریم چگونه از حساس(حس کننده) جریان Allegro ACS712 برای اندازه‌گیری جریان‌های AC و DC استفاده کرده و قرائت‌ها را از طریق I2C روی LCD1602 یا LCD2004 نمایش دهیم. این پروژه به‌ویژه برای پایش جریان در کاربردهای مختلف مفید است و نمایش بصری داده‌های جریان در زمان واقعی را فراهم می‌کند. تا پایان این آموزش، شما یک راه‌اندازی عملی خواهید داشت که می‌تواند قرائت‌های جریان را با دقت روی LCD نمایش دهد.

LCD1602-I2C display module with 4 wires

برای روشن‌تر شدن در مورد سیم‌کشی و شِفر (کود)، حتماً ویدیو را در زمان‌های مشخص‌شده بررسی کنید (در ویدیو در 00:00).

توضیح سخت‌افزار

جزء اصلی این پروژه حساس(حس کننده) جریان ACS712 است که می‌تواند مقادیر جریان تا 30A را اندازه‌گیری کند. این حساس(حس کننده) با استفاده از اثر هال جریان عبوری را به یک ولتاژ خروجی متناسب تبدیل می‌کند. این ولتاژ خروجی را آردوینو می‌تواند خوانده و سطح جریان را محاسبه کند. حساس(حس کننده) سه پایه برای اتصال دارد: VCC برای تغذیه، GND برای زمین و OUT برای سیگنال ولتاژ.

نمایشگر LCD1602 یا LCD2004 از طریق I2C متصل می‌شود که امکان سیم‌کشی و کنترل آسان‌تر را با استفاده از تنها دو پایه داده (SDA و SCL) به‌علاوه تغذیه و زمین فراهم می‌کند. این باعث می‌شود نمایش خوانش‌های فعلی بدون شلوغ شدن سیم‌کشی با اتصالات متعدد ساده باشد.

جزئیات مشخصات فنی

تولیدکنندهآلگرو مایکروسیستمز
شماره قطعهACS712ELCTR-30A-T
ولتاژ منطقی/ورودی-خروجی4.5-5.5 ولت
ولتاژ تغذیه۵ ولت
جریان خروجی (برای هر کانال)30 آمپر
راهنمای فرکانس PWMمربوط نیست
آستانه‌های منطقی ورودی0.5 V (خروجی سکون)
افت ولتاژ / Rدرین-سورس (روشن)/ اشباع1.2 میلی‌اهم
محدودیت‌های حرارتیحداکثر 150 °C
بستهTO-220

  • برای جریان‌های بالای 20A، دفع حرارت مناسب را تأمین کنید.
  • برای جلوگیری از گرم شدن بیش از حد، از سیم با سایز مناسب (12 AWG برای 30A) استفاده کنید.
  • برای عملکرد صحیح، VCC را به 5V و GND را به زمین متصل کنید.
  • اطمینان حاصل کنید که پایه OUT به یک پایه ورودی آنالوگ در آردوینو متصل شده است (مثلاً A0).
  • به تفاوت‌های حساسیت بین مدل‌های مختلف ACS712 توجه کنید.
  • برای دیکپلینگ، مطابق دیتاشیت از خازن‌ها استفاده کنید.

دستورالعمل‌های سیم‌کشی

Arduino wiring for Allegro ACS712 current sensor with LCD

برای سیم‌کشی حساس(حس کننده) جریان ACS712 با آردوینو و LCD، ابتدا پایه VCC حساس(حس کننده) ACS712 را به پایه 5V روی آردوینو متصل کنید. سپس پایه GND حساس(حس کننده) ACS712 را به یک پایه زمین روی آردوینو وصل کنید. پایه OUT حساس(حس کننده) ACS712 باید به پایه آنالوگA0روی آردوینو، جایی که سیگنال ولتاژ خوانده خواهد شد.

برای LCD1602 یا LCD2004، پایه VCC را به پایه 5V و پایه GND را به زمین متصل کنید. پایه SDA ال‌سی‌دی باید به پایه SDA آردوینو متصل شود (معمولاًA4روی یک UNO)، و پایه SCL باید به پایه SCL روی آردوینو متصل شود (معمولاًA5روی یک UNO). اطمینان حاصل کنید که تمام اتصالات محکم باشند تا عملکرد صحیح تضمین شود.

نمونه‌های شِفر (کود) و راهنمای گام‌به‌گام

در شِفر (کود)، پایه ورودی آنالوگ را برای خواندن خروجی حساس(حس کننده) با#define VIN A0. این به ما اجازه می‌دهد تا به‌راحتی به پینی که حساس(حس کننده) به آن متصل است در سراسر برنامه ارجاع دهیم.

#define VIN A0 // define the Arduino pin A0 as voltage input (V in)
const float VCC   = 5.0; // supply voltage is from 4.5 to 5.5V. Normally 5V.

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

const int model = 2; // enter the model number (0, 1, or 2 for 5A, 20A, or 30A)
float sensitivity[] = {0.185, 0.100, 0.066}; // sensitivity values for each model

درsetup()در این تابع، نمایشگر مسلسل و نمایشگر LCD را مقداردهی اولیه می‌کنیم. این به ما اجازه می‌دهد خوانش‌های فعلی را هم روی LCD و هم از طریق نمایشگر مسلسل برای رفع اشکال مشاهده کنیم.

void setup() {
    Serial.begin(9600); // initialize serial monitor
    lcd.begin(); // initialize the LCD
    lcd.backlight(); // turn on the backlight
    lcd.print("Robojax ACS712"); // display initial text
    delay(2000); // wait for 2 seconds
}

آنloop()این تابع ولتاژ را از حساس(حس کننده) می‌خواند، جریان را بر اساس حساسیت محاسبه می‌کند و نتایج را بر این اساس نمایش می‌دهد. اگر جریان از حد قطع مشخصی بیشتر شود، مقدار را نمایش می‌دهد؛ در غیر این صورت نشان می‌دهد که هیچ جریانی تشخیص داده نشده است.

نمایش / آنچه باید انتظار داشته باشید

پس از روشن‌کردن مدار، LCD باید عبارت Robojax ACS712 را نمایش دهد و سپس عبارت جریان: به‌همراه مقدار جریان اندازه‌گیری‌شده بر حسب آمپر. اگر جریان کمتر از حد قطع باشد، نمایشگر عبارت بدون جریان را نشان خواهد داد. هنگام آزمایش با جریان‌های بالا احتیاط کنید، زیرا حساس(حس کننده) ممکن است داغ شود (در ویدئو در 12:00).

برای آزمایش راه‌اندازی، به‌تدریج جریان عبوری از ACS712 را افزایش دهید و تغییرات را در LCD و نمایشگر مسلسل مشاهده کنید. مطمئن شوید که جریان از محدودهٔ مجاز حساس(حس کننده) تجاوز نکند تا از آسیب دیدن آن جلوگیری شود.

تصاویر

Allegro ACS712 DC/AC current sensor with LCD1602/LCD2004 I2C and Arduino code
Allegro ACS712 DC/AC Current sensor with LCD1602/LCD2004 I2C with Arduino Code
LCD1602-I2C display module with 4 wires
LCD1602-I2C display module with 4 wires
LCD1602-I2C display module with 4 wires
LCD1602-I2C display module with 4 wires
ACS712_in_series_with_load
ACS712_in_series_with_load
allegro_ACS712_module-1
allegro_ACS712_module-1
allegro_ACS712_module-2
allegro_ACS712_module-2
allegro_ACS712_module-4
allegro_ACS712_module-4
allegro_ACS712_module-0
allegro_ACS712_module-0
Arduino wiring for Allegro ACS712 current sensor with LCD
Arduino wiring for Allegro ACS712 current sensor with LCD
131-Allegro ACS712 DC/AC current sensor with LCD1602/LCD2004 I2C and Arduino code
زبان: C++
کپی شد!

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

فایل‌ها📁

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

برگه مشخصات (pdf)

فایل Fritzing