جدول المحتويات:
- الخطوة 1:
- الخطوة 2: اختبار إخراج الجهاز
- الخطوة 3: المعايرة
- الخطوة 4: برمجة Arduino
- الخطوة 5: بعض المزيد من الصور
- الخطوة 6: التركيب
- الخطوة 7: مجرد صور
- الخطوة 8: الكلمات الأخيرة
فيديو: 4-20ma Generator / Tester باستخدام Arduino: 8 خطوات
2024 مؤلف: John Day | [email protected]. آخر تعديل: 2024-01-30 07:36
تتوفر مولدات 4-20mA على موقع ئي باي ، لكني أحب جزء DIY من الأشياء واستخدام الأجزاء التي أضعها حولها.
كنت أرغب في اختبار المدخلات التناظرية الخاصة بـ PLC للتحقق من قراءات scada الخاصة بنا واختبار إخراج أجهزة 4-20mA. هناك الكثير من محولات التيار إلى الجهد والجهد لمحولات التيار لاردوينو على موقع اردوينو ، إلا أنها تحتاج إلى معايرة. يمكنني استخدام هذا لمعايرة أي من تلك المحولات الموجودة على موقع ئي باي وما شابه.
قررت أن أقوم بعمل مولد واختبار. في هذا الوقت ، لا يزال العمل قيد التقدم ونموذج أولي.
كان لدي نظام صوت قديم 2.1 لم يتم استخدامه (مكبرات صوت صغيرة). لذلك استخدمت أحد مربعات السماعات كحاوية. كان لدي أيضًا مكبر صوت توفي بسبب البرق ، لقد قمت بإزالة طرف السماعة من هذا مكبر الصوت لجعل التوصيل أمرًا سهلاً. أعتزم صنع ثنائي الفينيل متعدد الكلور في المستقبل وعلبة أفضل.
اللوازم:
قائمة الاجزاء.
LCD // 20 × 4 (قم بتكييف الكود إذا كان حجمك أصغر)
LM7808 // منظم 8 فولت
LED // أي نوع أو حجم
المقاوم لـ LED // مناسب لنوع LED و 8 فولت
100 أوم المقاوم + 47 أوم المقاوم في السلسلة // سوف تستخدم كمقاوم تحويلة
10K المقاوم // التناظرية اردوينو في الحماية ضد الجهد العالي
22K المقاوم // لإيقاف A0 من العائمة
Trimpot 100 ohm + 47 ohm المقاوم في السلسلة // PT100 simulator
مكثف 35 فولت // لقد استخدمت 470 فائق التوهج ، فقط للحفاظ على تقلبات جهد الإمداد منخفضة
RTD (محول الطاقة PT100) // لا يهم Span (المدى)
الصمام الثنائي (لحماية القطبية)
INA219
اردوينو
الخطوة 1:
يجب أن يبدأ اتباع المخطط التخطيطي في مكان إضافة الأجزاء وتوصيلها.
يسمح LM7808 بحد أقصى 25 فولتًا للإدخال وهو أمر جيد لأنظمة PLC ، فهي تستخدم عمومًا مصادر طاقة 24 فولت. أضف خافض حرارة للمنظم ولا تستخدمه لفترات طويلة. يؤدي إسقاط 16 فولت إلى توليد قدر كبير من الحرارة من خلال المنظم.
يغذي مصدر الإدخال المنظم ويتصل بـ INA219 VIN ، في هذا التكوين سيكون INA219 أيضًا قادرًا على قياس جهد الإمداد الصحيح مطروحًا منه انخفاض الجهد من الصمام الثنائي. يجب عليك قياس انخفاض جهد الصمام الثنائي وإضافته إلى الكود حتى تحصل على قراءات جهد الإمداد الصحيحة.
من INA219 VOUT إلى RTD + تقوم بتشغيل RTD. RTD- إلى الأرض يكمل الدائرة.
لاختبار بطاقة تمثيلية PLC ، ستقوم بتوصيل RTD- بالإدخال على البطاقة التناظرية والأرض من البطاقة إلى أرض اردوينو. (تأكد من فصل أي جهاز متصل بالقناة قيد الاختبار).
R5 و LED1 ، مما يشير إلى تشغيل النظام.
يتغذى المنظم في اردوينو VIN (قام اردوينو ببناء منظم حتى 5 فولت).
ينتقل دبوس Arduino 5V إلى INA219 لتشغيل الشريحة الموجودة على اللوحة. INA219 GND إلى أرض اردوينو.
تقليم ممسحة وعاء إلى RTD PIN1 و Trim pot pin 3 إلى RTD pin 2 ستحاكي اتصال PT100. (قم بتبديل الأسلاك إذا لم يؤدي تدوير وعاء القطع في اتجاه عقارب الساعة إلى زيادة مللي أمبير).
الخطوة 2: اختبار إخراج الجهاز
لاختبار إخراج الجهاز هناك حاجة إلى أجزاء إضافية ، مثل المقاوم التحويلة. المقاومات العادية 0.25 واط ستؤدي المهمة على ما يرام. يمكنك ترك المقاوم التحويلة وإضافة INA219 ثاني لاختبار إخراج الجهاز. لم يتبق لي سوى واحد لذا استخدمت المقاوم بدلاً من ذلك.
لا يمكن إجراء الاختبار باستخدام التحويل إلا على الجانب السلبي للجهاز. إذا كنت تستخدم الجانب الإيجابي ، فسوف تزود اردوينو بأكثر من 4 أضعاف الجهد المسموح به وتترك الدخان يخرج.
أضف المقاوم التحويلة في سلسلة مع السلك السلبي للأداة. سيصبح جانب التحويل الأقرب للجهاز هو التناظرية الإيجابية لاردوينو. سيصبح الجانب الآخر من التحويلة الأقرب إلى مصدر الطاقة هو أرضية اردوينو التي تكمل دائرة الإدخال التناظرية.
150 أوم مقاوم تحويل هو الحد الأقصى المطلق الذي يجب استخدامه عند استخدام اردوينو. المقاوم لديه انخفاض الجهد الخطي إلى mA يتدفق من خلاله. كلما زاد مللي أمبير كلما زاد الجهد.
في 20mA الحالي # 150ohm * 0.02A = 3 فولت إلى اردوينو.
عند 4mA الحالي # 150 أوم * 0.004A = 0.6 فولت إلى اردوينو.
الآن قد ترغب في أن يكون الجهد أقرب إلى 5 فولت حتى تتمكن من استخدام نطاق ADC الكامل لاردوينو. (ليست فكرة جيدة).
يمكن أن تصل مخرجات RTD إلى 30.2mA (المنجم لا). 150 أوم * 0.03 أمبير = 4.8 فولت. هذا هو أقرب ما أريد أن يكون.
أشار موقع ويب آخر إلى استخدام المقاوم 250 أوم.
عند 20 مللي أمبير الحالي # 250 أوم * 0.02A = 5 فولت إلى اردوينو.
عند 30 مللي أمبير تيار # 250 أوم * 0.03 أمبير = 7.5 فولت إلى اردوينو.
أنت تخاطر بحرق ADC و arduino.
لاختبار أداة في الميدان ، خذ معك بطارية 12 فولت وقم بتوصيلها بمدخل الإمداد. لن يؤثر استخدام مصدر طاقة خارجي على إعداد PLC الحالي.
لاختبار بطاقة إدخال تناظرية في الميدان ، خذ معك بطارية 12 فولت. افصل الجهاز + عن الدائرة. قم بتوصيل الأرض بأرض الجهاز و RTD- بسلك الجهاز المنفصل.
الخطوة 3: المعايرة
لمعايرة قراءة المقاوم التحويلية الخاصة بك ، سلك RTD- إلى التحويلة التناظرية في. اضبط وعاء القطع الخاص بك بحيث يكون mA الذي تم إنشاؤه هو 4mA. إذا لم يكن جهازك mA مساويًا ، فقم بتعديل القيمة الأولى في الكود في السطر 84. ستؤدي زيادة هذه القيمة إلى خفض قراءة mA.
ثم اضبط وعاء التشذيب على توليد 20 مللي أمبير. إذا لم يكن جهازك mA مساويًا ، فقم بتعديل القيمة الثانية في الكود في السطر 84.
لذا ستصبح 4-20mA الآن 0.6-3 فولت (نظري). نطاق أكثر من كاف. باستخدام المكتبة من eRCaGuy ، ستمنحك زيادة العينات قراءة أفضل ومستقرة.
أتمنى أن تقرأ هذا. هذا هو أول تدريب لي ، لذا يرجى أخذ الأمر بسهولة إذا ارتكبت خطأ في مكان ما أو تركت شيئًا ما.
ربما لا يكون هذا المشروع هو أفضل طريقة للقيام بذلك ، لكنه يعمل بالنسبة لي وكان ممتعًا في القيام به.
لدي بعض الأفكار الإضافية …
أضف مؤازرة لتدوير وعاء التقليم داخل الصندوق.
أضف أزرار الدفع لتدوير المؤازرة لليسار أو لليمين.
أضف مستشعر درجة حرارة رقميًا إلى المبدد الحراري المنظم للتحذير من الحرارة الخطيرة.
الخطوة 4: برمجة Arduino
#يشمل
// #include // Uncomment إذا كنت تستخدم شاشة LCD مع سجل التحول.
#يشمل
#يشمل
#يشمل
#يشمل
// A4 = (SDA)
// A5 = (SCL)
Adafruit_INA219 ina219 ؛
LiquidCrystal LCD (12 ، 11 ، 5 ، 4 ، 3 ، 2) ؛
// LiquidCrystal_SR lcd (3، 4، 2) ؛ // Uncomment إذا كنت تستخدم شاشة LCD مع سجل التحول.
// | | | _ دبوس مزلاج
// | / _ دبوس الساعة
// / _ البيانات / تمكين رقم التعريف الشخصي
بتات بايتOfResolution = 12 ؛ // أمر قرار مبالغة في أخذ العينات
numSamplesToAvg طويلة بدون توقيع = 20 ؛ // عدد العينات في القرار الزائد الذي تريد أن تأخذ ومتوسط
ADC_prescaler_t ADCSpeed = ADC_DEFAULT ،
ميلليس طويل بدون توقيع = 0 ؛
تعويم تحويلة الجهد = 0.0 ؛ // من INA219
تعويم busvoltage = 0.0 ؛ // من INA219
تعويم current_mA = 0.0 ؛ // من INA219
تعويم تحميل الجهد = 0.0 ؛ // من INA219
تعويم arduinovoltage = 0.0 ؛ // حساب الجهد من دبوس A0
A0analogReading طويلة بدون توقيع = 0 ؛
بايت analogIn = A0 ؛
تعويم ma_mapped = 0.0 ؛ // خريطة الجهد من A0 إلى 4-20mA
الإعداد باطل() {
adc.setADCSpeed (ADCSpeed) ،
adc.setBitsOfResolution (bitsOfResolution) ؛
adc.setNumSamplesToAvg (numSamplesToAvg) ؛
uint32_t الحالي
ina219.begin () ،
ina219.setCalibration_32V_30mA () ، // مكتبة معدلة لمزيد من الدقة في mA
lcd.begin (20 ، 4) ؛ // تهيئة شاشة LCD
lcd.clear () ؛
lcd.home () ؛ // اذهب للمنزل
lcd.print ("**********************") ؛
تأخير (2000) ؛
lcd.clear () ؛
}
حلقة فارغة()
{
تيار طويل بدون توقيع ميليس = ميلي () ؛
فاصل زمني طويل = 100 ؛
//&&&&&&&&&&&&&&&&&
اقرأ أجهزة I2C على فترات وقم ببعض العمليات الحسابية
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
إذا (currentMillis - previousMillis> = الفاصل الزمني) {
PreviousMillis = CurrentMillis ؛
فترة()؛
}
Print_To_LCD () ، // ربما لا أحتاج إلى تحديث شاشة LCD بهذه السرعة ويمكن نقلي إلى أقل من الفاصل الزمني ()
}
فارغ
فترة() {
shuntvoltage = ina219.getShuntVoltage_mV () ،
busvoltage = ina219.getBusVoltage_V () ؛
current_mA = ina219.getCurrent_mA () ،
loadvoltage = (busvoltage + (shuntvoltage / 1000)) + 0.71 ؛ // +0.71 هو انخفاض جهد الصمام الثنائي
A0analogReading = adc.newAnalogRead (analogIn) ،
arduinovoltage = (5.0 * A0analogReading) ؛ // محسوبة بالسيارات
ma_mapped = خريطة (arduinovoltage، 752، 8459، 30، 220) / 10.0 ؛ // لا يمكن للخريطة استخدام العوامات. أضف 0 خلف القيمة المعينة وقسمها على 10 للحصول على قراءة عائمة.
// التعيين من حساب الجهد يعطي قراءات أكثر ثباتًا ثم استخدام قراءة ADC الأولية.
إذا (shuntvoltage> = -0.10 && shuntvoltage <= -0.01) // مع عدم وجود حمل ، يميل INA219 إلى القراءة أدناه -0.01 ، جيدًا المنجم.
{
current_mA = 0 ؛
busvoltage = 0 ؛
جهد الحمل = 0 ؛
تحويلة الجهد = 0 ؛
}
}
فارغ
Print_To_LCD () {
lcd.setCursor (0 ، 0) ؛
إذا (ma_mapped <1.25) {// مع عدم وجود تيار ، فهذه هي قراءة mA الخاصة بي ، لذلك قمت بإزالتها بعيدًا.
lcd.print ("* 4-20mA مولد *") ؛
}
آخر {
lcd.print ("** جهاز اختبار تناظري **") ؛
}
lcd.setCursor (0 ، 1) ؛
lcd.print ("الجهاز:") ؛
lcd.setCursor (10 ، 1) ؛
إذا (ma_mapped <1.25) {
lcd.print ("لا يوجد جهاز") ؛
}
آخر {
lcd.print (ma_mapped) ؛
}
lcd.print ("مللي أمبير") ؛
lcd.setCursor (0 ، 2) ؛
lcd.print ("إنشاء:") ؛
lcd.setCursor (10 ، 2) ؛
lcd.print (current_mA) ؛
lcd.print ("مللي أمبير") ؛
lcd.setCursor (0 ، 3) ؛
lcd.print ("العرض:") ؛
lcd.setCursor (10 ، 3) ؛
lcd.print (loadvoltage) ؛
lcd.print ("V") ؛
}
الخطوة 5: بعض المزيد من الصور
مكبر الصوت الطرفية. يقودها المولد الحالي (RTD). سوف تحل أسلاك البطاقة التناظرية محل LED.
المحطة الطرفية في أقصى اليسار لإدخال العرض. المحطات الموجودة على اليمين مخصصة لإدخال الأجهزة.
الخطوة 6: التركيب
يبدو أن كل شيء مناسب. لقد استخدمت السيليكون لتثبيت بعض الأشياء معًا مؤقتًا. وعاء الزخرفة مصنوع من السيليكون في أعلى اليمين. تم حفر حفرة صغيرة مسبقًا. يمكنني ضبط التيار من أعلى الصندوق.
الخطوة 7: مجرد صور
الخطوة 8: الكلمات الأخيرة
لقد اختبرت إخراج هذا الجهاز باستخدام Allan Bradley PLC. كانت النتائج جيدة جدا. لقد حصلت على نطاق كامل ، لقد اختبرت هذا الجهاز أيضًا باستخدام مستشعر ضغط 4-20mA يحتوي على شاشة LCD مدمجة. مرة أخرى كانت النتائج جيدة جدا. كانت قراءاتي خارجة عن طريق زوج من الكسور العشرية.
أكتب كود اردوينو الخاص بي في علامات التبويب. في PLC يطلق عليهم الإجراءات الفرعية. يجعل التصحيح أسهل بالنسبة لي.
تم إرفاق ملفات نصية من علامات التبويب تلك.
موصى به:
افعلها بنفسك -- كيفية صنع روبوت عنكبوت يمكن التحكم فيه باستخدام الهاتف الذكي باستخدام Arduino Uno: 6 خطوات
افعلها بنفسك || كيف تصنع روبوتًا عنكبوتًا يمكن التحكم فيه باستخدام الهاتف الذكي باستخدام Arduino Uno: أثناء صنع روبوت العنكبوت ، يمكن للمرء أن يتعلم الكثير من الأشياء عن الروبوتات ، مثل صنع الروبوتات هو أمر ترفيهي بالإضافة إلى كونه صعبًا. سنشرح لك في هذا الفيديو كيفية صنع روبوت عنكبوت ، يمكننا تشغيله باستخدام هاتفنا الذكي (Androi
اختبار Bare Arduino ، باستخدام برنامج الألعاب باستخدام الإدخال بالسعة ومؤشر LED: 4 خطوات
اختبار Bare Arduino ، باستخدام برنامج الألعاب باستخدام الإدخال بالسعة ومؤشر LED: & quot؛ Push-It & quot؛ لعبة تفاعلية باستخدام لوحة Arduino عارية ، لا يلزم وجود أجزاء خارجية أو أسلاك (تستخدم إدخال "اللمس" السعوي). موضح أعلاه ، يوضح أنه يعمل على لوحين مختلفين. Push-It له غرضان. للتظاهر بسرعة / v
التحكم في سطوع LED باستخدام مقياس الجهد باستخدام Arduino: 3 خطوات
التحكم في سطوع LED باستخدام مقياس الجهد باستخدام Arduino: في هذا المشروع ، سنتحكم في سطوع LED باستخدام المقاومة المتغيرة التي يوفرها مقياس الجهد. هذا مشروع أساسي جدًا للمبتدئين ولكنه سيعلمك أشياء كثيرة حول مقياس الجهد وعمل LED وهي أمور مطلوبة لتحقيق الميزات
الحديث اردوينو - تشغيل ملف MP3 باستخدام Arduino بدون أي وحدة - تشغيل ملف MP3 من Arduino باستخدام PCM: 6 خطوات
الحديث اردوينو | تشغيل ملف MP3 باستخدام Arduino بدون أي وحدة | تشغيل ملف MP3 من Arduino باستخدام PCM: في هذه التعليمات ، سنتعلم كيفية تشغيل ملف mp3 باستخدام اردوينو دون استخدام أي وحدة صوتية ، وهنا سنستخدم مكتبة PCM لـ Arduino التي تقوم بتشغيل 16 بت PCM بتردد 8 كيلو هرتز ، لذلك دعونا نفعل ذلك
جهاز تحكم عن بعد لاسلكي باستخدام وحدة 2.4 جيجا هرتز NRF24L01 مع Arduino - جهاز استقبال Nrf24l01 4 قنوات / 6 قنوات للطائرة الرباعية - هليكوبتر ار سي - طائرة RC باستخدام Arduino: 5 خطوات (بالصور)
جهاز تحكم عن بعد لاسلكي باستخدام وحدة 2.4 جيجا هرتز NRF24L01 مع Arduino | جهاز استقبال Nrf24l01 4 قنوات / 6 قنوات للطائرة الرباعية | هليكوبتر ار سي | Rc Plane باستخدام Arduino: لتشغيل سيارة Rc | كوادكوبتر | طائرة بدون طيار | طائرة RC | قارب RC ، نحتاج دائمًا إلى جهاز استقبال وجهاز إرسال ، لنفترض بالنسبة لـ RC QUADCOPTER أننا بحاجة إلى جهاز إرسال واستقبال من 6 قنوات وأن هذا النوع من TX و RX مكلف للغاية ، لذلك سنصنع واحدًا على