CCS C Adc sorunu 16f877

raxkedi11

Üye
Katılım
24 Ara 2010
Mesajlar
2
Puanları
1
Yaş
44
Herkese iyi günler


Ben biyomedikal öğrencisiyim ve bitirme projemiz var.Yaptığımız cihaz otomatik kan grubu buluyor.Cihaza robot kol tasarladık cihazın kodunu yazdık ama adc de sıkıntılar oluyor.


örnek.


Ya sadece bi kan grubu gösteriyor yada 2 3 tane aynın anda kan grubu gösteriyor yada hiç göstermiyor ko şu :




Kod Burada --Motor kontrolleri sildim


void main()


Rha==0.0133712;
Rhb==0.00732;




lcd_init();
printf (lcd_putc, "\f Olcum yapmak icin tusa basiniz");
delay_ms(1000);


setup_adc_ports(AN0_AN1_AN2_AN3_AN4);
setup_adc(adc_clock_div_32);



set_adc_channel(0); //adc channel 0 okunuyor yani an0 daki değer ayarlanıyor
delay_us(20);
deger=read_adc(); //an0 daki değer okunuyor
A=0.00488*deger; // adc değeri hesaplanıyor..

set_adc_channel(1);
delay_us(20);
deger1=read_adc();
B=0.00488*deger1;

set_adc_channel(3);
delay_us(20);
deger2=read_adc();
Rh=0.00488*deger2;

if (Rha<Rh) { ////////////////////////ADC KISMI SIKINTILI OLAN BOLUM--- BURDAN SONRASI KARIŞIYOR/////////////////////////////

if ((A>0.0122) && (B>0.0122)) {
printf (lcd_putc, "\f Kan AB+");
delay_ms(1000);
}
else if ((A<0.0122) && (B<0.0122)) {
printf (lcd_putc, "\f Kan 0+");
delay_ms(1000);
}
else if (A>0.0122) {
printf (lcd_putc, "\f Kan A+");
delay_ms(1000);
}
else if (B>0.0122) {
printf (lcd_putc, "\f Kan B+");
delay_ms(1000);
}}

if (Rhb<Rh) {

if ((A>0.0122) && (B>0.0122)) {
printf (lcd_putc, "\f Kan AB-");
delay_ms(1000);
}
else if ((A<0.0122) && (B<0.0122)) {
printf (lcd_putc, "\f Kan 0-");
delay_ms(1000);
}
else if (A>0.0122) {
printf (lcd_putc, "\f Kan A-");
delay_ms(1000);
}
else if (B>0.0122) {
printf (lcd_putc, "\f Kan B-");
delay_ms(1000);
}
}




output_low(lamba1); // Önceden yaktığımız lambaları söndürdük.
delay_ms(100);


for (i=0; i<=6; i++) //2.kolu yukarı kaldırdım
{
 
Sinyali kuvvetlendirmen gerekiyor ya da Vref+ yı +5volt değil de bi opamp ile +2 volta filan ayarlaman gerek. Bunu yaptıktan sonra bir de oversampling yapıp ortalama alırsan daha da stabil değerler alırsın.

Aldığın değerler çok küçük sorun bu yüzden. Adc skalasına güzelce oturtman lazım bu sinyali. Kısacası ezbere iş yapmışsın
 
sinyal kuvvetlendirmek sıkıntı geğil onu yaparım ama vref+ 5v da az gelyo 2 v değeri daha düşük olmaz mı ayrıca şu oversampling dediğin olayı anlamadım int baktım ama pek bişe anlayamadım.

- - - Updated - - -

Nollmarde adc de bu değerler yoktu karşılaştırma ya göre yapıyordum adc yi ama oda olmadı ...
 
Adc de ham aldığın değerleri ekrana yaz. Niye hata oluyor görürsün. İşlemleri bu değerlere göre elle kendin yap hatayı bul
 

Forum istatistikleri

Konular
127,956
Mesajlar
913,899
Kullanıcılar
449,606
Son üye
rasit.

Yeni konular

Geri
Üst