//Akım Değişkenleri //////////////////
const int akimRead = A7;
const float shuntDirenci = 0.22;
int akimDeger = 0;
float voltajDususu = 0.0;
float akim = 0.0;
/////////////////////////////////////
// Akım Interpolasyon fonksiyonu ////////////////////////////////////////////////////////////////////
float interpolateI(float adc_value) {
for (int i = 0; i < num_Ipoints - 1; i++) {
// Eğer adc_value iki nokta arasındaysa
if (adc_value >= adc_Ivalues[i] && adc_value <= adc_Ivalues[i + 1]) {
// Doğrusal interpolasyon
float slope = (ref_Ivalues[i + 1] - ref_Ivalues[i]) / (adc_Ivalues[i + 1] - adc_Ivalues[i]);
return ref_Ivalues[i] + slope * (adc_value - adc_Ivalues[i]);
}
}
// Eğer aralık dışında bir değer alınırsa, sınır değerleri döndür
if (adc_value < adc_Ivalues[0]) return ref_Ivalues[0];
if (adc_value > adc_Ivalues[num_Ipoints - 1]) return ref_Ivalues[num_Ipoints - 1];
return 0; // Hata durumu
}
/////////////////////////////////////////////////////////////////////////////////////////////////
// Akım Okuma Kodları ////////////////////////////////////////
akimDeger = analogRead(akimRead);
voltajDususu = (akimDeger * 4.994) / 1023;
akim = voltajDususu / 0.256;
float corrected_akim = interpolateI(akim);
//////////////////////////////////////////////////////////////
display.print("Amper: ");
display.println(corrected_akim);
0.0030VAkım sıfır iken, akım opampının çıkışını kaç görüyorsun?
İnterpolasyona 0A okumasını da ekleyip deneyebilir misin. Mümkünse 0A ile birlikte 0.1, 0.5 de ekle0.0030V
0 okumasını ekleyince baştaki akım yokken 0.11 okumasını düzeltti. Anladığım kadarıyla 100mA de bir olacak şekilde düzeltme kodu eklersem sorunsuz çalışır bu.İnterpolasyona 0A okumasını da ekleyip deneyebilir misin. Mümkünse 0A ile birlikte 0.1, 0.5 de ekle
%0.1 toleranslı 3.24K : 3.229 (Bunun vadedilen toleransı yanlış. Hesaplamama göre %0.33 toleransılı bu.)
Akım okumayı bende tam anlamadım. Geçen @HexfeT o konuda yardımcı olmuştu. 0.256 değerini nerden almıştı unuttum. Mesajı görünce cevaplayacaktır.Akım okumayı nasıl yaptığını tam anlamadım. opamp kazancını tam olarak belirlemen lazım önce. Feedback dirençlerini sök, soğumasını bekle ve tam direnç ölç.
Onları şimdi ölçerim.Güncel şema yok ilk mesajda. Benim şemadan göstereyim
38542 eklentisine bak
Bu iki direnç opamp kazancını belirliyor. İşte bunların %0.1 olması fayda sağlar. Bunların tam değerlerini ölçüp kazancı belirleyeceğiz. Sonra da bu kazanca göre ölçülen değeri düzelteceğiz gene. Gerçek hayat böyle işte, ölç ve sonra işine bak yok. Kazanca göre düzelt, nonlineerlik için düzelt, sıcaklık için düzelt, gürültüye göre düzelt.
Elimde 0.1 yok. Bunları özdisandan sepete attım ama gelene kadar ben işbaşı yapmış olurum. Proje aralıklı devam eder.Bu iki direnç opamp kazancını belirliyor. İşte bunların %0.1 olması fayda sağlar.
Abi bu konu V2. Yani ekran ve MCU olmayan model. O yüzden 1.mesajı güncellemedim.Güncel şema yok ilk mesajda. Benim şemadan göstereyim
Birde şu akım opampının çevresindeki padini boş bıraktığımız elemanlara hala ihtiyaç var mı? Yoksa onları kaldıralım. Çok fazla atlama yapmam gerekiyor onlar yüzünden.
Supersot6 yı ilk defa gördüm. Elle lehimlenebiliyor mu bu?%0.1 i bu revizyonda takmaya gerek yok. Onu dijital kontrollü sonraki revizyona koyarız.
Röle yerine şöyle bir MOSFET'i C14 e paralel bağlasak nasıl olur? Bu hem çok hızlı reaksiyon gösterir, hem de MCU ile temiz bir şekilde yükü ON/OFF yapabilirsin. Bu da dinamik test yaparken faydalı olur.
38544 eklentisine bak
Supersot6 yı ilk defa gördüm. Elle lehimlenebiliyor mu bu?
Feedback direnç değerleri: 14.969 ve 3.896 şeklinde.