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
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..
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.
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
Ben 1K kullanıyorum, problem yok.
Bu arada dalgalanmanın diğer bir nedenide donanımdan kaynaklanıyor olabilir. Özellikle pcb gnd yol kalınlıkları vs çok çok etkili .