Arama butonu
Bu konudaki kullanıcılar: 1 misafir
3
Cevap
1163
Tıklama
0
Öne Çıkarma
Voltmetre ondalık sorunu.
E
7 yıl
Binbaşı
Konu Sahibi

Arduino voltmetrede, 10 voltu 1 volt, 1 voltu 0,1 olarak görüyorum. Ondalığı yanlış yani ama sebebini bulamadım. Bir kaç kişi tarafından yapılmış farklı programı yükledim hep aynı.
Gerilim bölücü dirençler 100K/10 K neden böyle yapabilir?
Gerilim bölücü dirençleri 10K/ 1K yapsam düzelir belki,ama bu seferde analogIn giriş sınırı üzerine çıkabilir.



< Bu ileti mobil sürüm kullanılarak atıldı >


Bu mesajda bahsedilenler: @malisert32
E
7 yıl
Yüzbaşı

Gerilim bölücü dirençleri 10K/ 1K yaparsan 50 voltluk gerilim girişinde çıkış gerilimin 4,5 volt gibi olur, analog in girişi 5 volt dur büyük ihtimal ile, bu durumda sıkıntı yaşayacağını düşünmüyorum. Aslında 100K/10 K kombinasyonu da aynı gerilim değerlerini verir, sonuçta bir fark olmayabilir.



M
7 yıl
Yarbay

Selamün Aleyküm Ekrem kardeşim;Direnç değerleri doğru.Bence void loop bölümündeki yazılım hesaplamasında küçük değişiklik yapılmalı.
Örnek olarak bende çalışan bir yazılımı buraya yüklüyorum.Direk kopyala-yapıştır yapabileceğiniz gibi void loop bölümündeki hesaplama yazılımını paylaştığım yazılım gibi değiştirebilirsiniz.
Bu hali ile 0-55V arası okur.Yazılım hesabı değişirse max.rakam değişebileceği gibi,,direnç değerini 100/1 yaparsanız yine max. ölçme limitini 10 kat artırırsınız.Direçte tabi ölçülen voltajı 10 ile çarpmak gerekecek.Ör;11,2V gösterdiğinde gerçekte 112V olduğu,,,51,22 ölçüldüğünde 512,2V gerçek voltaj ölçüldüğü anlaşılacağı gibi.

NOt=Yeni yazılım ile 0-550V arası ölçülebiliyor ama direnç değerleri;100/1.Yani 1M-10K gibi.


//modified by malisert32 55V max. control

#include "LiquidCrystal.h"

LiquidCrystal lcd(2, 3, 4, 5, 6, 7);

float voltage = 0.0;
float temp=0.0;
int analog_value;

void setup()
{
lcd.begin(16, 2);
lcd.setCursor (0,0);
lcd.print("DigitalVoltmeter");
lcd.setCursor(0,1);
lcd.print("By malisert32");
delay(1000);
}
void loop()
{
analog_value = analogRead(A0);
temp = (analog_value * 50.0) / 1024.0;

voltage = temp/(0.0909);
if (voltage < 0.1)
{
voltage=0.0;
}
lcd.clear();
lcd.setCursor(0, 0);
lcd.print("Voltage= ");
lcd.print(voltage);
lcd.setCursor(11,1);
lcd.print("VOLT");
delay(300);
}





< Bu mesaj bu kişi tarafından değiştirildi malisert32 -- 20 Eylül 2018; 14:27:21 >


Bu mesajda bahsedilenler: @ekrem3457
M
7 yıl
Yarbay

Hemen şimdi biraz moidifiye ile net sonuç aldım.Yaptığım yazılım düzeltmesini bir önceki paylaştığım yazılımı değiştirerek ekliyorum.Hem önceki yazılımda bir istenmeyen durumu(LCD'de isim bekleme süresi 5 sn. idi 1 saniyeye düşürdüm)düzeltmiş oldum hemde hesaplama yazılımını modifiye ederek max. ölçüm sınırını 550 V'a çıkardım.Yeni hali ile Proteus üzerinde çalışma kesitinden bir bölümün resmini eklemekte fayda görüyorum.
< Resime gitmek için tıklayın >



DH Mobil uygulaması ile devam edin. Mobil tarayıcınız ile mümkün olanların yanı sıra, birçok yeni ve faydalı özelliğe erişin. Gizle ve güncelleme çıkana kadar tekrar gösterme.