Picproje Elektronik Sitesi

DERLEYİCİLER => Proton+ => Konuyu başlatan: turkbowling - 18 Temmuz 2006, 23:30:46

Başlık: adin1 dalgalanıyor
Gönderen: turkbowling - 18 Temmuz 2006, 23:30:46
DEVICE 16F877
XTAL=4
PORTB_PULLUPS=FALSE            'portb deki pull up kapali
TRISB=0
portb=0
INCLUDE "MODEDEFS.BAS"  

DEFINE  ADC_BITS 10        'A/D çevirim sonucu kaç bit olacak
                                                '10 bit adc ile okuyacağın değerler 0- 1024 arasındadır.
                               'yani 5volt u 0.00488v luk adımlarla okumuş olursun(5/1024)

DEFINE  ADC_CLOCK 3        'Clock kaynagi (3=rc)
DEFINE  ADC_SAMPLEUS 50    'sarj  zamani mikro saniye cinsinden.
'-------------------------------------------------------------------------------
ADCON1=%10000000                '7. bit 1 yapildi 10 bit sonuç almak için.
'-------------------------------------------------------------------------------

VOLT   VAR WORD

'-------------------------------------------------------------------------------
CLS                            'temizle

BASLA:  
           
VOLT=ADIN 1                   'GIRIS PORTA NIN 1 UCUNU al VE VOLT'A YAZ

SEROUT PORTC.6,T9600,[VOLT]   'bilgileri gönder
DELAYMS 1000
GOTO BASLA


Code Tag Lütfen

pic'in porta.1 nolu bacagına 5 volt verdigimde bilgisayarımda 255'i görüyorum
araya 10 k pot bagladıgımda bilgisayarımda 17-145-67 gibi aralarında çok fark olacak
şekilde geziniyor bu gezinmenin nedeni ne olabilir

bilgiyi seri port kanalıyla bilgisayrdan görüyorum
Başlık: adin1 dalgalanıyor
Gönderen: OG - 19 Temmuz 2006, 11:53:11
Alıntı Yaparaya 10 k pot bagladıgımda

Pot'u araya nasıl girdiniz? Araya girmememsi gerekir, direk pin'e voltaj sağlayacak şekilde olması gerekir. Ayrıca 10K değeri fazla bir değer olabilir..
Başlık: adin1 dalgalanıyor
Gönderen: ftsahin - 19 Temmuz 2006, 16:06:08

VOLT=ADIN 1                   'GIRIS PORTA NIN 1 UCUNU al VE VOLT'A YAZ

SEROUT PORTC.6,T9600,[VOLT]   'bilgileri gönder


Pic'e 5 volt verdiğinizde buradaki VOLT değişkeni 1023 değerini alır. Bu da Hex olarak 03FF tir. Yani 2 byte. (Highbyte = 03,Lowbyte=FF) Bence buradaki sorun gönderme ya da alma sırasında üst ve alt byte'lardan biri kayboluyor. Normal olsaydı 1023 değerini görürdünüz. Bu sorunu çözmek için VOLT değişkenini alt ve üst olarak 2 kısma ayırıp farklı zamanlarda gönderip PC'de birleşitrebilirsiniz.  

programa şu kodları ekleyin


var hvolt byte
var lvolt byte
....
...

Volt = adin 1
hvolt = volt.byte0
lvolt = volt.byte1

SEROUT PORTC.6,T9600,[lvolt,hvolt]

.....


Bilgisayar programında da ufak bir değişiklik yapıp aynı anda iki farklı bilgi okuyacak hale getirmeniz lazım. Delphi ile yazdıysanız yardımcı olabilirim. Kolay gelsin.
Başlık: cvp
Gönderen: turkbowling - 19 Temmuz 2006, 22:19:22
pot'un ortadaki ucunu direk adin1 ucuna bağlıyorum
diğer uclarına +5 volt ve gnd bağlıyorum

0-5 volt arasını okumak için en ideal pot kaç kohm olmalıdır
Başlık: adin1 dalgalanıyor
Gönderen: OG - 20 Temmuz 2006, 08:29:20
Ben 1K kullanıyorum, problem yok.
Başlık: adin1 dalgalanıyor
Gönderen: mhk - 23 Temmuz 2006, 02:05:54
Bu arada dalgalanmanın diğer bir nedenide donanımdan kaynaklanıyor olabilir. Özellikle pcb gnd yol kalınlıkları vs çok çok etkili .