- Katılım
- 27 Şubat 2019
- Mesajlar
- 12,760
0.114 okuyorum abi.Onu da tersinden yapacaksın. Çıkışı tam olarak 1 V ayarlayacaksın ve sonra da picoda ne okuduğuna bakacaksın.
O zaman sanırım 3.2 yerine 0.114 ile çarpacağım ama 1023'e bölmeyeceğim galiba?
0.114 okuyorum abi.Onu da tersinden yapacaksın. Çıkışı tam olarak 1 V ayarlayacaksın ve sonra da picoda ne okuduğuna bakacaksın.
Hatlar karıştı ya. Ben piconun analog girişini okudum.ADC'den 0.114 okunmaz, dijital bir veri okunur. Diyelim çıkışı tam 1 V yaptın ve ADC den 257 okuyorsun. Bunu bir kenara yazacaksın. Sonra da ADC'den okuduğun her veriyi 257 ye böleceksin. Bu sana çıkışta kaç volt olduğunu verir.
Vdata = Vdata / 350;
vOUT = (Vdata * 3.39) / 134;
DAC yazacağıma ADC yazmışım.Senin kafa baya karışmış GökhanADC nin girişi analog çıkışı dijitaldir. Yani zaten görevi gereği dijital bir rakam okursun bundan. DAC da bunun tersi olduğuna göre DAC'tan dijital veri okunmaz. Yani yazdığını geri okursun, bu da anlamsız olur, zaten sen yazdın onu.
Gerilim bölücü dirençler 1% toleranslı, 10K ve 1.21K abi.Aslında voltaj ve akım ölçümünü doğrudan ADC ile yaptığın için DAC tarafını otomatik olarak da kalibre edebilirsin. Hatta güç kaynağı çalışırken belli peryotlarda (mesela 10 saniyede bir) kalibrasyonu tekrarlayabilirsin. Tabi bunun için ölçüm tarafını dikkatlice yapman lazım. Gerilim bölücüyü düşük toleranslı dirençlerle yapman lazım.
int voltageSensor = A1;
float vOUT = 0.0;
static float vIN = 0.0;
float Vdata = 0.0;
for (int i = 0; i < 350; i++) // daha kararlı ortalama bir sonuç almak için 350 kez okuma yapma
{
Vdata = Vdata + analogRead(voltageSensor);
delay(1);
}
Vdata = Vdata / 350;
vOUT = (Vdata / 4096.0) * 3.241;
vIN = vOUT * 37.037;
Yok abi. 0.27 vOUT'un içindeki.analogRead yapınca sana 0.27 mi dönüyor? ADC nin dijital verisi dönmüyor mu?
Vdata = Vdata / 350;
vOUT = (Vdata / 1023.0) * 3.240;
vIN = vOUT * 9.288;