İçindekiler:
- Aşama 1:
- Adım 2: Cihaz Çıkış Testi
- Adım 3: Kalibrasyon
- Adım 4: Arduino'yu Programlama
- Adım 5: Daha Fazla Fotoğraf
- Adım 6: Yerleştirme
- 7. Adım: Sadece Fotoğraflar
- 8. Adım: Son Sözler
Video: Arduino Kullanan 4-20ma Jeneratör/Test Cihazı: 8 Adım
2024 Yazar: John Day | [email protected]. Son düzenleme: 2024-01-30 13:16
4-20mA jeneratörler ebay'de mevcuttur, ancak ben bir şeylerin DIY kısmını ve etrafta bıraktığım parçaları kullanmayı seviyorum.
Scada okumalarımızı doğrulamak ve 4-20mA enstrümanların çıkışını test etmek için PLC'mizin analog girişlerini test etmek istedim. Ebay'de arduino için bir sürü akım-gerilim dönüştürücüler ve voltaj-akım dönüştürücüler var, yine de kalibrasyona ihtiyaçları var. Bunu, ebay ve benzerlerinde bulunan dönüştürücülerden herhangi birini kalibre etmek için kullanabilirim.
Kendin yap bir jeneratör ve test cihazı yapmaya karar verdim. Bu noktada, hala devam eden bir çalışma ve bir prototip.
Kullanılmayan eski bir 2.1 ses sistemim vardı (küçük hoparlörler). Bu yüzden hoparlör kutularından birini muhafaza olarak kullandım. Ayrıca yıldırım nedeniyle ölen bir amplifikatörüm vardı, bir esinti yapmak için hoparlör terminalini o amplifikatörden çıkardım. Gelecekte bir PCB ve daha iyi bir muhafaza yapmayı planlıyorum.
Gereçler:
Parça listesi.
LCD // 20x4 (sizinki daha küçükse kodu uyarlayın)
LM7808 // 8 volt regülatör
LED // Herhangi bir tip veya boyutta
LED için Direnç // LED tipine uygun ve 8 volt
Seri olarak 100 ohm direnç + 47 ohm direnç // Şönt direnç olarak kullanılacaktır
10K direnç // Arduino analogu yüksek gerilime karşı korumada
22K direnç // A0'ın yüzmesini durdurmak için
Seri olarak Trimpot 100 ohm + 47 ohm direnç // PT100 simülatörü
35 volt kapasitör // Besleme voltajı dalgalanmalarını düşük tutmak için 470uF kullandım
RTD (PT100 dönüştürücü) //Span önemli değil (aralık)
DIODE (polarite koruması için)
INA219
Arduino
Aşama 1:
Şemayı takip ederek, parçaları nereye ekleyeceğiniz ve kabloları nereye bağlayacağınız konusunda başlamanız gerekir.
LM7808, PLC sistemleri için iyi olan maksimum 25 volt girişe izin verir, genellikle 24 volt güç kaynakları kullanırlar. Regülatöre bir soğutucu ekleyin ve uzun süre kullanmayın. 16 volt düşürmek, regülatörün çok fazla ısı üretmesine neden olur.
Giriş beslemesi regülatörü besler ve INA219 VIN'e bağlanır, bu konfigürasyonda INA219 ayrıca doğru besleme gerilimini diyottan gerilim düşüşü çıkarılarak ölçebilecektir. Doğru besleme voltajı okumasını elde etmek için diyot voltaj düşüşünüzü ölçmeli ve koda eklemelisiniz.
INA219 VOUT'dan RTD+'ya geçiş, RTD'yi çalıştırır. RTD- toprağa devreyi tamamlar.
Bir PLC analog kartını test etmek için, RTD-'yi analog karttaki girişe ve karttan arduino toprağına topraklama yapacaksınız. (Test edilen kanala bağlı herhangi bir aletin bağlantısını kestiğinizden emin olun).
R5 ve LED1, sistemin açık olduğunu gösterir.
Regülatör, arduino VIN'i besler (arduino, regülatörde 5 volt'a sahiptir).
Arduino 5V pini, yerleşik çipe güç sağlamak için INA219'a gider. INA219 GND'den arduino toprağına.
Trim pot sileceği RTD PIN1'e ve Trim pot pin 3'ten RTD pin 2'ye bir PT100 bağlantısını simüle eder. (Trim potunu saat yönünde çevirmek mA'yı artırmıyorsa kabloları değiştirin).
Adım 2: Cihaz Çıkış Testi
Cihaz çıkışını test etmek için bir şönt direnci gibi ekstra parçalara ihtiyaç vardır. Normal 0,25W dirençler işi gayet iyi yapacak. Cihaz çıkışını test etmek için şönt direnci bırakabilir ve ikinci bir INA219 ekleyebilirsiniz. Sadece bir tane kaldı, onun yerine bir direnç kullandım.
Şönt kullanarak test sadece cihazın negatif tarafında yapılabilir. Pozitif tarafı kullanırsanız, arduino'nuza izin verilen voltajın 4 katından fazlasını besler ve dumanın çıkmasına izin verirsiniz.
Enstrümanın negatif kablosuyla seri olarak şönt direnci ekleyin. Cihaza en yakın şant tarafı arduino için pozitif analog olacaktır. Şöntün güç kaynağına en yakın olan diğer tarafı, analog giriş devresini tamamlayan arduino toprağı olacaktır.
150 ohm şönt direnç, bir arduino kullanırken kullanılması gereken mutlak maksimum değerdir. Direnç, içinden akan mA'ya göre doğrusal bir voltaj düşüşüne sahiptir. mA ne kadar büyükse voltaj da o kadar büyük olur.
20mA akımda # 150ohm*0.02A = arduino'ya 3 volt.
4mA akımda # 150ohm*0,004A = 0.6 volt arduino'ya.
Şimdi, arduino'nun tüm ADC aralığını kullanabilmemiz için voltajın 5 volta daha yakın olmasını isteyebilirsiniz. (İyi bir fikir değil).
RTD'ler 30.2mA çıkışa ulaşabilir (Mine yapar). 150ohm*0.03A = 4.8 volt. Bu, olmak istediğim kadar yakın.
Başka bir web sitesi 250ohm direnç kullandığını belirtti.
20mA akımda # 250ohm*0.02A = arduino'ya 5 volt.
30mA akımda # 250ohm*0.03A = 7.5 volt arduino'ya.
ADC ve arduino'nuzu yakma riskiniz var.
Bir enstrümanı sahada test etmek için yanınıza 12 voltluk bir pil alın ve bunu besleme girişine bağlayın. Harici bir güç kaynağının kullanılması mevcut PLC kurulumunu etkilemeyecektir.
Bir analog giriş kartını sahada test etmek için yanınıza 12 voltluk bir pil alın. Aleti + devreden ayırın. Toprağı alet toprağına ve RTD-'yi bağlantısı kesilmiş alet kablosuna bağlayın.
Adım 3: Kalibrasyon
Şönt direnç okumanızı kalibre etmek için, RTD-'yi şönt Analog girişine bağlayın. Trim potunuzu, üretilen mA 4mA olacak şekilde ayarlayın. Cihazınızın mA değeri eşit değilse 84. satırdaki koddaki ilk değeri değiştirin. Bu değeri artırmak mA okumasını düşürür.
Ardından trim potunuzu 20mA üretecek şekilde ayarlayın. Cihazınızın mA'sı eşit değilse, 84. satırdaki koddaki ikinci değeri değiştirin.
Böylece 4-20mA'nız şimdi 0,6-3 volt (teorik) olacaktır. Yeterince fazla aralık. eRCaGuy kütüphanesini kullanarak, aşırı örnekleme size daha iyi ve istikrarlı bir okuma sağlayacaktır.
Umarım bunu okursun. Bu benim ilk dersim, bu yüzden bir yerde bir hata yaptıysam veya bir şeyi dışarıda bıraktıysam lütfen kolay gelsin.
Bu proje muhtemelen bunu yapmanın en iyi yolu değil, ama benim için işe yarıyor ve bunu yapmak eğlenceliydi.
Bazı fikirlerim ekstra…
Kutunun içindeki trim potunu döndürmek için bir servo ekleyin.
Servoyu sola veya sağa döndürmek için basmalı düğmeler ekleyin.
Tehlikeli ısıya karşı uyarmak için regülatör soğutucusuna bir dijital sıcaklık sensörü ekleyin.
Adım 4: Arduino'yu Programlama
#Dahil etmek
// #include // Kaydırmalı yazmaçlı bir LCD kullanıyorsanız açıklamayı kaldırın.
#Dahil etmek
#Dahil etmek
#Dahil etmek
#Dahil etmek
//A4 = (SDA)
//A5 = (SCL)
Adafruit_INA219 ina219;
LiquidCrystal lcd(12, 11, 5, 4, 3, 2);
// LiquidCrystal_SR lcd(3, 4, 2); // Kaydırmalı yazmaçlı bir LCD kullanıyorsanız açıklamayı kaldırın.
// | | |_ Mandal Pimi
// | \_ Saat Pimi
// \_ Veri/Pini Etkinleştir
bayt bitsOfResolution = 12; // komut verilen aşırı örneklenmiş çözünürlük
imzasız uzun numSamplesToAvg = 20; // AŞIRI ÖRNEKLENMİŞ ÇÖZÜNÜRLÜKTE almak istediğiniz ve ortalamasını almak istediğiniz örnek sayısı
ADC_prescaler_t ADCSpeed = ADC_DEFAULT;
imzasız uzun öncekiMillis = 0;
şamandıra şönt voltajı = 0.0; //INA219'dan
şamandıra bara gerilimi = 0.0; //INA219'dan
kayan akım_mA = 0.0; //INA219'dan
şamandıra yük voltajı = 0.0; //INA219'dan
şamandıra arduinovoltajı = 0.0; //A0 pininden voltaj hesabı
İmzasız uzun A0analogReading = 0;
bayt analogIn = A0;
float ma_mapped = 0.0; //A0'dan 4-20mA'ya kadar harita voltajı
geçersiz kurulum() {
adc.setADCSpeed(ADCSpeed);
adc.setBitsOfResolution(bitsOfResolution);
adc.setNumSamplesToAvg(numSamplesToAvg);
uint32_t akımFrekans;
ina219.begin();
ina219.setCalibration_32V_30mA(); //mA'da daha fazla hassasiyet için değiştirilmiş kitaplık
lcd.başla(20, 4); // LCD'yi başlat
lcd.clear();
lcd.home (); // eve git
lcd.print("********************");
gecikme(2000);
lcd.clear();
}
boşluk döngüsü()
{
imzasız uzun akımMillis = millis();
const uzun aralık = 100;
//&&&&&&&&&&&&&&&&&
I2C cihazlarını aralıklarla okuyun ve bazı hesaplamalar yapın
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
if (currentMillis - öncekiMillis >= aralık) {
öncekiMillis = şimdikiMillis;
Aralık();
}
Print_To_LCD(); // Muhtemelen LCD'yi bu kadar hızlı güncellemem gerekmiyor ve Interval()'in altına taşınabilir
}
geçersiz
Aralık() {
şöntvoltaj = ina219.getShuntVoltage_mV();
veriyolu voltajı = ina219.getBusVoltage_V();
current_mA = ina219.getCurrent_mA();
yük voltajı = (bara voltajı + (şönt voltaj / 1000)) + 0.71; // +0.71 diyot voltaj düşüşüm
A0analogReading = adc.newAnalogRead(analogIn);
arduinovoltaj = (5.0 * A0analogOkuma); //mV olarak hesaplandı
ma_mapped = harita(arduinovoltaj, 752, 8459, 30, 220) / 10.0; //Harita, kayan noktaları kullanamaz. Eşlenen değerin arkasına 0 ekleyin ve kayan nokta okuması almak için 10'a bölün.
//Voltaj hesaplamasından haritalama, ham adc okumasını kullanmaktan daha kararlı bir okuma sağlar.
if (şönt voltaj >= -0.10 && şönt voltaj <= -0.01) //Yüksüzken INA219 -0.01'in altında okuma eğilimindedir, benimki de öyle.
{
akım_mA = 0;
bara gerilimi = 0;
yük voltajı = 0;
şönt voltaj = 0;
}
}
geçersiz
Print_To_LCD() {
lcd.setCursor(0, 0);
if (ma_mapped < 1.25) { //Akım olmadan bu benim mA okumam, bu yüzden onu çöpe atıyorum.
lcd.print("* 4-20mA Jeneratör *");
}
Başka {
lcd.print("** Analog Test Cihazı **");
}
lcd.setCursor(0, 1);
lcd.print("Aygıt:");
lcd.setCursor(10, 1);
if (ma_mapped < 1.25) {
lcd.print("cihaz yok");
}
Başka {
lcd.print(ma_mapped);
}
lcd.print("mA");
lcd.setCursor(0, 2);
lcd.print("Oluştur:");
lcd.setCursor(10, 2);
lcd.print(current_mA);
lcd.print("mA");
lcd.setCursor(0, 3);
lcd.print("Tedarik:");
lcd.setCursor(10, 3);
lcd.print(yük voltajı);
lcd.print("V");
}
Adım 5: Daha Fazla Fotoğraf
Amplifikatör hoparlör terminali. Akım üreteci (RTD) tarafından sürülen LED. Analog kart kablolaması LED'in yerini alacaktır.
En soldaki terminal besleme girişi içindir. Sağdaki terminaller cihaz girişi içindir.
Adım 6: Yerleştirme
Her şey uygun görünüyor. Bazı şeyleri geçici olarak bir arada tutmak için silikon kullandım. Trim potu sağ üstte silikonlanmıştır. Küçük bir delik önceden delinmiştir. Akımı kutunun üstünden ayarlayabilirim.
7. Adım: Sadece Fotoğraflar
8. Adım: Son Sözler
Bu cihazın çıkışını bir Allan Bradley PLC ile test ettim. Sonuçlar çok iyiydi. Tam menzile sahibim. Bu cihazı ayrıca dahili bir LCD ekrana sahip 4-20mA basınç sensörü ile test ettim. Yine sonuçlar çok iyiydi. Okumalarım birkaç ondalık basamakla düştü.
Arduino kodumu sekmelere yazıyorum. PLC'lerde bunlara alt rutinler denir. Benim için hata ayıklamayı kolaylaştırır.
Ekli, bu sekmelerin metin dosyalarıdır.
Önerilen:
Jeneratör: Fidget Spinner Jeneratör 3'ü 1: 3 Adımda
Jeneratör: Fidget Spinner Jeneratör 3'ü 1 arada: fidget spinner jeneratörü 3'ü 1 arada - şimdi fidget spinner jeneratörünüzü yapılandırabilirsiniz (üç seçenek)mikro jeneratör 3 neodimyum küre ve 3 neodimyum disk kullanıyor (led ve küçük bobin demir daha az)Bizi bulun INSTAGRAM'DA ve basit bir elektrik
Arduino Kullanan Pil Kapasitesi Test Cihazı [Lityum-NiMH-NiCd]: 15 Adım (Resimlerle)
Arduino [Lityum-NiMH-NiCd] Kullanan Pil Kapasitesi Test Cihazı: Özellikler: Sahte bir Lityum-İyon/Lityum-Polimer/NiCd/NiMH pili tanımlayın Ayarlanabilir sabit akım yükü (kullanıcı tarafından da değiştirilebilir) Neredeyse kapasiteyi ölçebilir her türlü pil (5V altı) Lehimlemesi, yapımı ve kullanımı kolay,
Jeneratör - Manyetik Anahtar Kullanan DC Jeneratör: 3 Adım
Jeneratör - Manyetik Anahtar Kullanan DC Jeneratör: Basit DC jeneratör Doğru akım (DC) jeneratörü, mekanik enerjiyi doğru akım elektriğine dönüştüren bir elektrik makinesidir.Önemli: Doğru akım (DC) jeneratörü, herhangi bir yapısal olmadan DC motor olarak kullanılabilir. değişiklikler
IC Test Cihazı, Op-Amp, 555 Zamanlayıcı Test Cihazı: 3 Adım
IC Tester,Op-Amp,555 Zamanlayıcı Test Cihazı: Tüm Kötü veya Değiştirilmiş IC'ler ortalıkta duruyor ancak birbirleriyle karışırlarsa Kötü veya İyi Birini belirlemek çok zaman alıyor, Bu Makalede IC'yi nasıl yapabileceğimizi öğreniyoruz testçi, Devam edelim
Li-Ion Pil Kapasitesi Test Cihazı (Lityum Güç Test Cihazı): 5 Adım
Li-Ion Pil Kapasitesi Test Cihazı (Lityum Güç Test Cihazı): =========== UYARI & SORUMLULUK REDDİ ===========Li-Ion piller düzgün kullanılmadıkları takdirde çok tehlikelidir. ====================================