avatar_thedezer

0-12 v arası değişen dc gerilimi pic ile nasıl okumam gerekiyor?

Başlatan thedezer, 14 Eylül 2022, 15:44:27

thedezer

ADC ile okuma yapacak olursam nasıl bir yol izlemeliyim. ADC ye gönderilicek olan 0-12v voltajı nasıl 0-5 volt olarak ayarlayabilirim?

mehmet

https://tinyurl.com/2o5dejw3
Bu şekilde yapılabilir ve/veya çok turlu
trimpot ile gerilim hassas ayarlanabilir.
Olan olmuştur,
olacak olan da olmuştur.
Olacak bir şey yoktur.
http://www.mehmetbilgi.net.tr
CC BY

Serk@n

Analog girişe seri bağlı bir mosfet sürülerek de yapılabilir.
Bildiklerimize göre hareket edersek bilmediklerimizi de öğrenebiliriz.

thedezer


fatih88

bilgi paylaştıkça çoğalır!!

www.fayelektronik.com

ete

Aşağıdaki linkte verilenleri de incelemende yarar var.
Zira projen bir Voltmetre projesi ile eşdeğer özeellikler taşıyor.
İşin temeli basit, 12V tu bir gerilim bölücü ile bölerek 12V karşılığında bölücüden 5V civarı bir voltaj alacaksın ve bunu işlemcinin ADC girişine gireceksin. Karşılığında bir ADC değeri okuyacaksın ve bu okunan değeri sana 12V veya ondalık da almak istersen 120 olarak hesaplayacak bir formül geliştireceksin.

https://etepic.com/index.php/topic,377.0.html

İşin formül kısmı çok zor değil. 5V ref voltajı ile 5V girilen bir ADC pininden okunan digital değer 1023 olacaktır. Sen önce adc den kaç okunduğunu bulacaksın. 1023 okudun diyelim.
12V/1023=0,0117302052785924 değerini bulursun. Şayey programla dilin ondalıklı çalışmaya müsade ediyor ise sabit çarpanın bu rakam olacaktır. Hemen deneyelim;
Formül, Volt=ADC_Deger x 0,0117302052785924=  şeklinde
Diyelimki 822 okudun Volt=822 x 0,0117302052785924=9,6 olarak voltajı okumuş olursun.
diyelimki 1023 okudun 1023 x 0,0117302052785924=12 olarak hesaplamış olursun.

Basic kullanıyor isen durum biraz daha farklı olacak. Ondalık (float) kullanamadığımız için sabit çarpanımızı 256 ile çarpacağız , 0,0117302052785924 x 256 =3,002932551319648
Bunu birde 100 ile çarparak sabit çarpanımızı 300 olarak kullanabiliriz.
Bu durumda formülümüz Volt=(ADC_Deger */ 300)/100 ieklinde olacaktır.
*/ işareti bir 32 bit çarpım işlemini gösterir. Soldaki sayı ile sağdaki sayı çarpılıp 256 ya bölünerek sana sonucu verir otomatik olarak.
Deneyelim,

822 okuduğumuzu varsayalım. Volt=((822 * 3000)/256/100 =9 değerini verecektir. Ondalıklı ksımıda hesaba dahil edecek isek 100 e değil de 10 a bölmemiz gerekecek . Bu durumda formül;
Volt= (ADC_Deger */300)/10 şeklinde olacak ve ((822*300)/256)/10=96 olarak hesaplanacaktır.
Bunuda gösterirken Volt_Tamsayı=Volt/10 ve Volt_Ondalık=Volt//10 şeklinde hesaplarsın.
Volt_tamsayı=9 çıkacak, Volt_Ondalık=6 çıkacaktır. Yeri gelmişken onuda açıklayayım // işareti bir sayının MOD (Modulus) alma işlemini gösterir. Yanındaki sayıya bölüp kalanı sana verir bu işlem. 96 yı 10 a bölünce kalan 6 olacaktır.

Hepsi bu kadar. Anlamadığın yerler olursa belirtirsin açıklarız yeniden.

Ete

thedezer


Powered by EzPortal