فهرست مطالب:

4-20ma ژنراتور/تستر با استفاده از آردوینو: 8 مرحله
4-20ma ژنراتور/تستر با استفاده از آردوینو: 8 مرحله

تصویری: 4-20ma ژنراتور/تستر با استفاده از آردوینو: 8 مرحله

تصویری: 4-20ma ژنراتور/تستر با استفاده از آردوینو: 8 مرحله
تصویری: GENERADOR AR del año 1940 Dynamotor Generator 2024, نوامبر
Anonim
4-20ma ژنراتور/تستر با استفاده از آردوینو
4-20ma ژنراتور/تستر با استفاده از آردوینو

ژنراتورهای 4-20 میلی آمپر در ebay در دسترس هستند ، اما من به شخصه به کارهای DIY و استفاده از قطعاتی که در اطراف آنها وجود دارد علاقه دارم.

من می خواستم ورودی های آنالوگ PLC خود را برای تأیید قرائت scada و آزمایش خروجی ابزارهای 4-20mA آزمایش کنم. مبدلهای جریان به ولتاژ و مبدلهای ولتاژ به جریان برای آردوینو در ebay وجود دارد ، اما آنها به کالیبراسیون نیاز دارند. من می توانم از این برای کالیبراسیون هر یک از مبدلهای موجود در ebay و موارد مشابه استفاده کنم.

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

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

تدارکات:

فهرست قطعات.

LCD // 20x4 (اگر کد شما کوچکتر است کد را وفق دهید)

LM7808 // تنظیم کننده 8 ولت

LED // هر نوع و اندازه ای

مقاومت برای LED // مناسب برای نوع LED و 8 ولت

مقاومت 100 اهم + مقاومت 47 اهم در سری // به عنوان مقاومت شنت استفاده می شود

مقاومت 10K // آنالوگ آردوینو در حفاظت در برابر ولتاژ بالا

مقاومت 22K // برای جلوگیری از شناور ماندن A0

مقاومت Trimpot 100 اهم + 47 اهم در سری // شبیه ساز PT100

خازن 35 ولت // من از 470uF استفاده کردم ، فقط برای حفظ نوسانات ولتاژ منبع تغذیه

RTD (مبدل PT100) // طول مهم نیست (محدوده)

دیود (برای حفاظت از قطبیت)

INA219

آردوینو

مرحله 1:

تصویر
تصویر

با پیروی از شماتیک ، باید نحوه اضافه کردن قطعات و سیم کشی آنها را شروع کنید.

LM7808 حداکثر 25 ولت ورودی را اجازه می دهد که برای سیستم های PLC مناسب است ، آنها به طور کلی از منبع تغذیه 24 ولت استفاده می کنند. هیت سینک را به رگولاتور اضافه کنید و برای مدت طولانی از آن استفاده نکنید. افت 16 ولت باعث می شود تنظیم کننده گرمای زیادی تولید کند.

منبع ورودی تنظیم کننده را تغذیه می کند و به INA219 VIN متصل می شود ، در این پیکربندی INA219 همچنین قادر به اندازه گیری ولتاژ تغذیه صحیح منهای افت ولتاژ از دیود خواهد بود. شما باید افت ولتاژ دیود خود را اندازه گیری کرده و آن را به کد اضافه کنید تا بازخوانی صحیح ولتاژ منبع را دریافت کنید.

از INA219 VOUT گرفته تا RTD+ RTD را تقویت می کند. RTD- به زمین مدار را تکمیل می کند.

برای آزمایش کارت آنالوگ PLC ، RTD- را به ورودی کارت آنالوگ و زمین را از کارت به زمین آردوینو متصل کنید. (اطمینان حاصل کنید که هرگونه ابزار متصل به کانال مورد آزمایش را جدا کنید).

R5 و LED1 ، نشان می دهد سیستم روشن شده است.

تنظیم کننده از طریق VIN آردوینو تغذیه می کند (آردوینو دارای تنظیم کننده 5 ولت است).

پین آردوینو 5 ولت به INA219 می رود تا تراشه داخلی را تغذیه کند. INA219 GND به زمین آردوینو.

برف پاک کن قابلمه را به PIN1 RTD و پایه پین 3 را به پایه RTD 2 برش دهید و اتصال PT100 را شبیه سازی کنید. (در صورت چرخاندن گلدان تزئینی در جهت عقربه های ساعت ، mA را افزایش ندهد سیم ها را عوض کنید).

مرحله 2: آزمایش خروجی ابزار

برای آزمایش خروجی ابزار ، قطعات اضافی مانند مقاومت شنت مورد نیاز است. مقاومتهای معمولی 0.25 وات کار را به خوبی انجام می دهند. می توانید مقاومت شنت را رها کرده و INA219 دوم را برای آزمایش خروجی ابزار اضافه کنید. فقط یک عدد برایم باقی مانده بود بنابراین به جای آن از مقاومت استفاده کردم.

آزمایش با استفاده از یک شنت تنها در جنبه منفی دستگاه قابل انجام است. اگر از جنبه مثبت استفاده می کنید ، آردوینو خود را بیش از 4 برابر ولتاژ مجاز تغذیه می کنید و اجازه می دهید دود خارج شود.

مقاومت شنت را به صورت سری با سیم منفی دستگاه اضافه کنید. نزدیکترین شانت به دستگاه به آنالوگ مثبت آردوینو تبدیل می شود. طرف دیگر شانت که نزدیک به منبع تغذیه است ، به زمین آردوینو تبدیل می شود که مدار ورودی آنالوگ را تکمیل می کند.

مقاومت شنت 150 اهم حداکثر مطلق است که هنگام استفاده از آردوینو باید استفاده شود. مقاومت دارای ولتاژ خطی خطی برای mA است که از طریق آن جریان می یابد. هرچه mA بیشتر ولتاژ بیشتر باشد.

در جریان 20mA # 150 اهم*0.02A = 3 ولت به آردوینو.

در جریان 4 میلی آمپر # 150 اهم*0.004A = 0.6 ولت به آردوینو.

حالا ممکن است بخواهید ولتاژ نزدیک به 5 ولت باشد تا بتوانید محدوده کامل ADC آردوینو را برای ما ارسال کنید. (ایده ی خوبی نیست).

خروجی RTD می تواند به 30.2 میلی آمپر خروجی برسد (Mine). 150 اهم*0.03 آمپر = 4.8 ولت. این به همان اندازه که دوست دارم نزدیک باشد.

وب سایت دیگری نشان داد که از مقاومت 250 اهم استفاده می کند.

در جریان 20mA # 250 اهم*0.02A = 5 ولت به آردوینو.

در جریان 30mA # 250 اهم*0.03A = 7.5 ولت به آردوینو.

شما می توانید ADC و آردوینو خود را بسوزانید.

برای آزمایش یک دستگاه در میدان ، یک باتری 12 ولتی با خود ببرید و آن را به منبع تغذیه وصل کنید. استفاده از منبع تغذیه خارجی بر تنظیم PLC فعلی تأثیر نمی گذارد.

برای آزمایش کارت ورودی آنالوگ در محل ، یک باتری 12 ولتی با خود ببرید. دستگاه + را از مدار جدا کنید. زمین را به زمین ابزار و RTD را به سیم ابزار قطع شده وصل کنید.

مرحله 3: کالیبراسیون

تنظیم
تنظیم

برای کالیبراسیون خواندن مقاومت شنت ، سیم RTD- را به آنالوگ شنت وارد کنید. گلدان تریم خود را طوری تنظیم کنید که mA تولید شده 4 میلی آمپر باشد. اگر mA دستگاه شما مساوی نیست ، اولین مقدار کد را در خط 84 تغییر دهید. افزایش این مقدار ، بازخوانی mA را کاهش می دهد.

سپس گلدان تزئینی خود را طوری تنظیم کنید که 20 میلی آمپر تولید کند. اگر mA دستگاه شما برابر نیست ، مقدار دوم کد را در خط 84 تغییر دهید.

بنابراین 4-20mA شما اکنون 0.6-3Volts (نظری) می شود. بیش از حد کافی با استفاده از کتابخانه eRCaGuy ، نمونه برداری بیش از حد به شما بازخوانی بهتر و پایداری می دهد.

امیدوارم این را بخوانید. این اولین دستورالعمل من است ، بنابراین اگر اشتباهی در جایی مرتکب شده ام یا چیزی را کنار گذاشته ام ، لطفاً آرامش نکنید.

این پروژه احتمالاً بهترین راه برای انجام آن نیست ، اما انجام آن برای من مفید است و انجام آن بسیار جالب بود.

چند ایده اضافی دارم…

یک سروو برای چرخاندن گلدان تزئینی داخل جعبه اضافه کنید.

دکمه های فشاری را برای چرخاندن سروو به چپ یا راست اضافه کنید.

یک سنسور دما دیجیتال به هیت سینک تنظیم کننده اضافه کنید تا در مورد گرمای خطرناک هشدار دهد.

مرحله 4: برنامه نویسی آردوینو

#عبارتند از

// #include // در صورت استفاده از LCD با شیفت رجیستر اظهار نظر نکنید.

#عبارتند از

#عبارتند از

#عبارتند از

#عبارتند از

// A4 = (SDA)

// A5 = (SCL)

Adafruit_INA219 ina219؛

LCD مایع LiquidCrystal (12 ، 11 ، 5 ، 4 ، 3 ، 2) ؛

// LiquidCrystal_SR ال سی دی (3 ، 4 ، 2) ؛ // اگر از LCD با شیفت رجیستر استفاده می کنید ، اظهار نظر نکنید.

// | | | _ پین لچ

// | / _ پین ساعت

// / _ داده/فعال کردن پین

بایت bitsOfResolution = 12؛ // فرمان وضوح نمونه بیش از حد

numSamplesToAvg طولانی بدون امضا = 20؛ // تعداد نمونه در قطعنامه فوق العاده که می خواهید بگیرید و به طور متوسط

ADC_prescaler_t ADCSpeed = ADC_DEFAULT؛

امضا نشده longMillis = 0؛

شناور ولتاژ = 0.0 ؛ // از INA219

ولتاژ شناور = 0.0 ؛ // از INA219

شناور جریان_mA = 0.0 ؛ // از INA219

ولتاژ شناور = 0.0 ؛ // از INA219

شناور arduinovoltage = 0.0 ؛ // محاسبه ولتاژ از پین A0

A0analogReading طولانی بدون امضا = 0؛

بایت analogIn = A0؛

float ma_mapped = 0.0؛ // ولتاژ نقشه از A0 تا 4-20mA

void setup () {

adc.setADCSpeed (ADCSpeed) ؛

adc.setBitsOfResolution (bitsOfResolution) ؛

adc.setNumSamplesToAvg (numSamplesToAvg) ؛

uint32_t currentFrequency؛

ina219.begin ()؛

ina219.setCalibration_32V_30mA ()؛ // کتابخانه اصلاح شده برای دقت بیشتر در mA

lcd.begin (20 ، 4) ؛ // مقداردهی اولیه LCD

lcd.clear ()؛

lcd.home ()؛ // به خانه برو

lcd.print ("*******************")؛

تاخیر (2000) ؛

lcd.clear ()؛

}

حلقه خالی ()

{

جریان طولانی بدون امضا Millis = millis ()؛

const فاصله طولانی = 100 ؛

//&&&&&&&&&&&&&&&&&

دستگاه های I2C را با فاصله زمانی بخوانید و محاسباتی را انجام دهید

&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&

if (currentMillis - previousMillis> = فاصله) {

previousMillis = currentMillis؛

فاصله () ؛

}

Print_To_LCD ()؛ // احتمالاً نیازی نیست که LCD را به این سرعت به روز کنم و می توان آن را به زیر Interval منتقل کرد ()

}

خالی

فاصله () {

shuntvoltage = ina219.getShuntVoltage_mV ()؛

busvoltage = ina219.getBusVoltage_V ()؛

current_mA = ina219.getCurrent_mA ()؛

loadvoltage = (busvoltage + (shuntvoltage / 1000)) + 0.71 ؛ //0.01 +افت ولتاژ دیود من است

A0analogReading = adc.newAnalogRead (analogIn)؛

arduinovoltage = (5.0 * A0analogReading) ؛ // محاسبه شده به mV

ma_mapped = نقشه (arduinovoltage ، 752 ، 8459 ، 30 ، 220) / 10.0 ؛ // نقشه نمی تواند از شناور استفاده کند. یک عدد پشت مقدار نقشه برداری شده اضافه کنید و بر 10 تقسیم کنید تا بازخوانی شناور به دست آید.

// نگاشت از محاسبه ولتاژ بازخوانی پایدار تری نسبت به استفاده از قرائت خام adc می دهد.

if (shuntvoltage> = -0.10 && shuntvoltage <= -0.01) // بدون بار INA219 تمایل به خواندن زیر -0.01 دارد ، خوب کار من این است.

{

current_mA = 0 ؛

busvoltage = 0؛

ولتاژ بار = 0 ؛

shuntvoltage = 0 ؛

}

}

خالی

Print_To_LCD () {

lcd.setCursor (0 ، 0) ؛

if (ma_mapped <1.25) {// بدون جریان ، این mA من را می خواند ، بنابراین من فقط آن را حذف کردم.

lcd.print (" * 4-20mA Generator *") ؛

}

دیگری {

lcd.print ("** تستر آنالوگ **") ؛

}

lcd.setCursor (0 ، 1) ؛

lcd.print ("دستگاه:") ؛

lcd.setCursor (10 ، 1) ؛

if (ma_mapped <1.25) {

lcd.print ("بدون دستگاه") ؛

}

دیگری {

lcd.print (ma_mapped) ؛

}

lcd.print ("mA") ؛

lcd.setCursor (0 ، 2) ؛

lcd.print ("ایجاد:") ؛

lcd.setCursor (10 ، 2) ؛

lcd.print (current_mA) ؛

lcd.print ("mA") ؛

lcd.setCursor (0 ، 3) ؛

lcd.print ("عرضه:") ؛

lcd.setCursor (10 ، 3) ؛

lcd.print (ولتاژ بار) ؛

lcd.print ("V") ؛

}

مرحله 5: چند عکس دیگر

چند عکس بیشتر
چند عکس بیشتر

ترمینال بلندگوی تقویت کننده LED توسط ژنراتور فعلی (RTD) هدایت می شود. سیم کشی کارت آنالوگ جایگزین LED می شود.

ترمینال سمت چپ برای ورودی منبع است. پایانه های سمت راست برای ورودی ابزار است.

مرحله 6: نصب

متناسب با
متناسب با

به نظر می رسد همه چیز مناسب است. من از سیلیکون برای نگه داشتن موقت برخی وسایل در کنار هم استفاده کردم. گلدان تزئینی در قسمت بالا سمت راست سیلیکون شده است. یک سوراخ کوچک از قبل سوراخ شده بود. می توانم جریان را از بالای جعبه تنظیم کنم.

مرحله 7: فقط عکس ها

فقط عکس ها
فقط عکس ها
فقط عکس ها
فقط عکس ها
فقط عکس ها
فقط عکس ها
فقط عکس ها
فقط عکس ها

مرحله هشتم: کلمات پایانی

من خروجی این دستگاه را با PLC آلن بردلی آزمایش کرده ام. نتایج بسیار خوب بود. من طیف وسیعی را دریافت کردم. من همچنین این دستگاه را با سنسور فشار 4-20mA که دارای صفحه نمایش LCD است آزمایش کرده ام. باز هم نتایج بسیار خوب بود. خوانش های من با چند عدد اعشاری خاموش شد.

من کد آردوینو خود را در برگه ها می نویسم. در PLC ها آنها را روتین فرعی می نامند. اشکال زدایی را برای من آسان تر می کند.

فایلهای متنی آن برگه ها ضمیمه شده است.

توصیه شده: