Ana içeriğe git

Konu: Pbp ile Analog değer okuma (49 Kez okunmuş)

  • ocs61
  • [*][*]
Pbp ile Analog değer okuma
hayırlı ramazanlar. 0-50 v arası bir güç kaynağı yapıcam ve güç kaynağının o anki voltajını pic ile lcd ekrana yazdırıcam.

resimde 2 tane  pot var. bu 2 pot aslında 6 bacaklı olan tek 1 pot. ama isisde 6 bacaklı pot bulamadığım için 2 ayrı pot üzerinde çalıştım.

niye böyle birşey yaptım ? güç kaynağının çıkışındaki değeri pic in llcd ekranına yazdırcam. pic e de 5v dan fazla gerilim uygulayamam. 1 potla 2 gerilimi konrol edip 2 sininde aynnı oranda azallıp artmasını sağlicam.yani 2 pot aynı anda aynı oranda çalııyor. resimde pot bağlantısını göstermeye çalıştım.

isisde gördüğünüz gibi sonuc 1000 iken voltaj 50v gösteriyor. ama volttaj değeri 50,49,48... diye azalıyor. küsürat yok. çok detaylı küsüratada ihtiyacım yok.. yani 50,00v 49,50v 49,00v 48,50v diye sıfıra doğru azalsada olur.

BUDA PROGRAMIM:



ADCON0=%00000001'
ADCON1=%10000101

TRISA=%11101111
TRISB=0
TRISC=0

HAB VAR WORD   
HESAP VAR WORD
MVOLT VAR WORD
HESAB VAR WORD
VOLT VAR BYTE
ONUR VAR BYTE
      

DEFINE LCD_DREG PORTB 'LCD data bacakları PortB ye bağlı
DEFINE LCD_DBIT 4 'LCD data bacakları 4. bit den başlıyor
DEFINE LCD_RSREG PORTB 'LCD RS Bacağı PortA ye bağlı
DEFINE LCD_RSBIT 2 'LCD RS bacağı 1. Bite bağlı
DEFINE LCD_EREG PORTB 'LCD Enable Bacağı PortB ye bağlı
DEFINE LCD_EBIT 3 'LCD Enable Bacağı 3. bite bağlı
'DEFINE LCD_RWREG PORTB 'LCD RW Bacağı PortB ye bağlı
'DEFINE LCD_RWBIT 1 'LCD RW Bacağı 2. bite bağlı
DEFINE LCD_BITS 4 'LCD 4 bit olarak bağlı
DEFINE LCD_LINES 2 'LCD 2 sıra yazabiliyor

LCDOUT $FE,1

START:
ADCIN 0,ONUR'

BEKLE:
IF ADCON0.2=1 THEN
GOTO BEKLE
ENDIF

HAB=ADRESL
IF ADRESH.0=1 THEN
HAB=HAB+255
ENDIF
IF ADRESH.1=1 THEN
HAB=HAB+512
ENDIF

'hab ın içindeki sayı 1000 dir. alt satırda 1000 i 20 ye bölerek 0-50 v arası gösterde değerini elde ediyorum.
'

volt=hab/20

'MVOLT DEĞERİ İÇİN UYGUN KOMUTU YAZAMADIM.. YAZDIKLARIM HEP SAÇMA SAPAN ÇALIŞIIYORDU SİLDİM.
                       
LCDOUT $FE,$80, "SONUC   :", DEC4 HAB
LCDOUT $FE,$C0, "GERILIM :", DEC2 VOLT, ",", DEC2 MVOLT

GOTO START

END

küsürat bölümünü bir türlü halledemedim..
umarım derdimi anlatabilmişimdir. yardımlarınızı bekliyorum saygılar :)
  • Son Düzenleme: 12 Haziran 2017, 18:13:29 - ocs61
Erdemlerimiz ve kusurlarımız birbirinden ayrılamaz, güç ve madde gibi. Onlar ayrıldığında insan bir hiçtir.
 -Nikola Tesla-

  • thekme
  • [*][*]
Ynt: Pbp ile Analog değer okuma
Yanıt #1
Değişkenleri float cinsinden tanımla pic proton fazla bilimiyorum ama bu gibi sorunlar genel de değişken biçimlerinden oluyor

Ayrıca küçük de bi tavsiye istersen küçük dijital voltmetreler var onlarıda kullanablirsin hiç bunlarla uğraimazsın (ben öğreniyim uğraşmaj istiyorum diyorsan o ayrı :) )

http://urun.n11.com/diger/dijital-voltmetre-ampermetre-dual-dc-0-100v-10amper-P154815220?cid=604001&gclid=CjwKEAjw9_jJBRCXycSarr3csWcSJABthk07GTbpW_bVDa0nIvNUZ8ea4WS-H_aNjCWOuqwExPEO-hoCx-7w_wcB&gclsrc=aw.ds

şurda link var bakabilirsin kolay gelsin
Derin olan kuyu değil, kısa olan iptir.

  • ocs61
  • [*][*]
Ynt: Pbp ile Analog değer okuma
Yanıt #2
yinede saool cevap ve öneri için :) ama inanıyorumki çok basit bir hatadan dolayı takılıp kaldım. yapan yapıyr ben niye yapamim :D
Erdemlerimiz ve kusurlarımız birbirinden ayrılamaz, güç ve madde gibi. Onlar ayrıldığında insan bir hiçtir.
 -Nikola Tesla-

  • Furkan41
  • [*][*][*][*]
Ynt: Pbp ile Analog değer okuma
Yanıt #3
Formül gerekiyor buraya Yani bir değişken daha oluşturup pottan okunan değeri orayada aktarıp ama ordakini 20 ye değil de 2000 bölersen ondalık bir ifade cıkacaktır onuda lcd ekranda volt değişkeninenin yanına ondalık değişkenini koyarsan olacaktır mantık yürüttüm hiç bir fikrim yok bir dene istersen