tpspt
Üye
- Katılım
- 28 Haz 2010
- Mesajlar
- 3
- Puanları
- 1
- Yaş
- 33
merhaba,
bir eğim sensörünün değerlerini okumak için aşağıdaki programı denedim. fakat "acı" değeri sürekli değişiyor. biraz araştırdım neden olabilir diye. okunan analog değerlerin ortalamasını alma gibi şeyler vardı. ama benim okuduğum değerler hiç de birbirine yakın değil. hatta okuması gereken max. değeri bile aşmayı başarıyor.
sırayla okuduğu değerler;
35,
125,
25,
180,
520,
...
farklı programlar da denedim, hazır yazılmış olanları da denedim aynı sonuç çıkıyor. hatta sensör bağlı değilken bile bu şekilde çalışıyor. ne yapabilirim? yardımcı olursanız çok sevinirim...
bir eğim sensörünün değerlerini okumak için aşağıdaki programı denedim. fakat "acı" değeri sürekli değişiyor. biraz araştırdım neden olabilir diye. okunan analog değerlerin ortalamasını alma gibi şeyler vardı. ama benim okuduğum değerler hiç de birbirine yakın değil. hatta okuması gereken max. değeri bile aşmayı başarıyor.
sırayla okuduğu değerler;
35,
125,
25,
180,
520,
...
farklı programlar da denedim, hazır yazılmış olanları da denedim aynı sonuç çıkıyor. hatta sensör bağlı değilken bile bu şekilde çalışıyor. ne yapabilirim? yardımcı olursanız çok sevinirim...
Kod:
TRISD=000000
TRISA=000001
@ DEVICE pic16F877A
@ DEVICE pic16F877A, WDT_on
@ DEVICE pic16F877A, PWRT_ON
@ DEVICE pic16F877A, PROTECT_OFF
@ DEVICE pic16F877A, XT_OSC
cmcon=7
DEFINE ADC_BITS 10
DEFINE ADC_CLOCK 3
DEFINE ADC_SAMPLEUS 100
DEFINE LCD_DREG PORTD
DEFINE LCD_DBIT 4
DEFINE LCD_EREG PORTD
DEFINE LCD_EBIT 3
DEFINE LCD_RSREG PORTD
DEFINE LCD_RSBIT 2
DEFINE LCD_BITS 4
DEFINE LCD_LINES 2
ADCON1=001110
HAM VAR WORD
ACI VAR WORD
LCDOUT $FE,1
PAUSE 200
BASLA:
ADCIN 0,HAM
DONGU: IF ADCON0.2=1 THEN DONGU
HAM=HAM+1
ACI=(HAM */ 45)
LCDOUT $FE,$80,"ACI=",#ACI
PAUSE 500
GOTO BASLA