Haberler:

Forum kuralları güncellendi LÜTFEN  okuyunuz:  https://bit.ly/2IjR3ME

Ana Menü

A/D çevirme

Başlatan 122055221, 21 Kasım 2005, 21:51:13

122055221

Arkadaşlar ben max. 5 voltluk bir dc gerilimi pic ile lcd displayden görünecek şekilde okumak istiyorum. Fakat bazı hususlar var:

Ölçülecek gerilimin artı ve eksi uçlarının pic e bağlanış yönü farketmemeli veya displayde artı ve eksi olarak belirmeli +3V  -2V gibi

ölçü uçlarındaki gerilim 5 voltu geçtiğinde pic e zarar vermeyi engelleyecek bir sistem.

birde küsüratlı voltaj değerlerini lcd de nasıl gösterebilirim.

bana örnek gösterebilirseniz sevinirim.

Erol YILMAZ

Giris araligin -5...5 VDC ise;

1) Pic in ADC giris ucunu 4K7 ile +5V'a cekersin.

2) Disaridan gelen sinyali gerekirse OPAMP ile Voltaj izleyici
yaparak kuvvetlendirirsin.

3) Opamp cikisini 4K7 ile ADC ye girersin.

4) Disaridan -5 VDC girdiginde gerilim bolme hesabindan ADC ucunda 0 VDC olusacak... 0 VDC girdiginde ayni mantikla 2.5 VDC
5 VDC girdiginde ise 5VDC olusacaktir.

Yani bir kaydirma islemi soz konusu... Bunu yazilimda goz onune aldiginda problem olmayacaktir.

LSB = 10/2^8 den 39 mV gibi olacak. Basic veya C yardimi ile bu projeyi rahatlikla yapabilirsin...

122055221

yanlız ölçüm aralığı 0-5 volt
bir pili ölçüyor gibi düşüncez. pilin hangi ucunu ölçü noktalarına bağladığımızın farketmemesi gerekiyor.

mhk

Sorundan anladığım kadarıyla şöyle bir çözüm önerisinde bulunayım;

* Köprü diyot kullanarak + yada - yi önemsiz hale getirip pic adc si ile ölçebilirsin.( ADC uçlarına 5v1 zener diyot ilede korumayı gerçekleştirirsin)

* Eğer pic'e normal gerilim değeri olduğunu anlatmak istiyorsan


* Eğer pic'e (-) gerilim değeri olduğunu anlatmak istiyorsan


böyle bir devre kurabilirsin. 2.devrede dikkat edilmesi gereken yer
2.voltmerenin pic'te herhangi bir giriş ucuna bağlamasıdır. Yani bu uç eğer + olursa ölçülen uçlar ters demektir.Ekranda - göstermesini sağlayabilirsin ( Simülasyonda 9volt içindir. normali 5 volt olmalı pic için ) .

* Virgüllü ölçüm örneği ise;
' PicBasic Pro program to measure voltage (0-5VDC)
' and display on LCD with 2 decimal places
'
' This program uses the */ operator to scale the
' ADC result from 0-1023 to 0-500.  The */ performs
' a divide by 256 automatically, allowing math which
' would normally exceed the limit of a word variable.
'
' Connect analog input to channel-0 (RA0)

' Define LCD registers and bits
DEFINE  LCD_DREG        PORTD
DEFINE  LCD_DBIT        4
DEFINE  LCD_RSREG       PORTE
DEFINE  LCD_RSBIT       0
DEFINE  LCD_EREG        PORTE
DEFINE  LCD_EBIT        1

' Define ADCIN parameters
DEFINE  ADC_BITS        10     	' Set number of bits in result
DEFINE  ADC_CLOCK       3     	' Set clock source (3=rc)
DEFINE  ADC_SAMPLEUS    50    	' Set sampling time in uS

adval  VAR WORD					' Create adval to store result


		TRISA = %11111111		' Set PORTA to all input
        ADCON1 = %10000010		' Set PORTA analog and right justify result
        Low PORTE.2				' LCD R/W line low (W)

        Pause 500       				' Wait .5 second

loop: 	ADCIN 0, adval					' Read channel 0 to adval (0-1023)

		adval = (adval */ 500)>>2		' equates to: (adval * 500)/1024

	    LCDOut $fe, 1   				' Clear LCD
        LCDOut "DC Volts= ",DEC (adval/100),".", DEC2 adval	' Display the decimal value  

        Pause 100       				' Wait .1 second

        GoTo loop       				' Do it forever
        End
"Ya olduğun gibi görün, Ya da göründüğün gibi ol..." Mevlana

122055221

teşekkürler bu işime yarayabilir.

Erol YILMAZ

Alıntı yapılan: "122055221"yanlız ölçüm aralığı 0-5 volt
bir pili ölçüyor gibi düşüncez. pilin hangi ucunu ölçü noktalarına bağladığımızın farketmemesi gerekiyor.

Ters bağlarsan -5 V olur... Düz baglarsan +5V olur.
Simdi sen bunu - olarak ta göstermek istiyorsun yani sonuçta göstergenin dinamik aralığı -5...+5V tur.

Dolayısı ile anlattığım yöntemin mantıklı bir sonuç çıkaracağını düşünüyorum.