18f2550 analog sensor okuma

Başlatan pax, 22 Mart 2012, 21:35:21

pax

merhaba arkadaşlar daha önce başaka bir konu başlığı altında bu konu hakkında fikir sormuştum, sağolsun arkadaşlar yardımcı oldular. Fakat konu farklı olduğu için tekrardan bu konuya değinmek istedim değişik fikirler alabilmek için.
18f2550 nin analog (AN0) girişine bir potansiyometre bağlayarak LCD de 0-1023 arası bir değer okuyorum. Ancak bu değer sabit durmuyordu. forumdaki arkadaşların yardımıyla bunu sabitleyebildim. çok sayıda okuma yapıp bunların ortalamasını aldım ve değer büyük ölçüde sabitlendi. Daha sonra pololunun QTR_8A diye isimlendirdiği 8'li analog sensör kitini pic e bağladım ve aynı mantıkla okuma yapmaya çalıştım bu sefer değeri sabitleme konusunda sıkıntı çekiyorum. beyaz zemin üzerinde değer sabitlenebilirken , siyah zemine geçince değer bir türlü sabit olmuyor. 500-510-505 511 gibi değerlerin arasında gidip geliyor. bu konuda ne yapabilirim.

void sensor_oku()
{
     unsigned int kanal,k;
     
     for(k=0;k<sensor_sayisi;k++)
     {sensor_degeri[k]=0;}
     
   
        for(kanal=0;kanal<sensor_sayisi;kanal++)
        {
         
          for(k=0;k<ornek_sayisi;k++)
          {
            set_adc_channel(kanal);
           delay_us(20);
             sensor_degeri[kanal]+= read_adc();
          }
          sensor_degeri[kanal]=sensor_degeri[kanal]/ornek_sayisi;
           
        }
       
   
}
void main ()
{
setup_adc_ports(AN0_TO_AN10|VSS_VDD);
     setup_adc(ADC_CLOCK_INTERNAL);
........

}

justice_for_all

o sensor ne ise yariyo peki nasil calisiyo?
Deneyip de başaramayanları değil, yalnızca denemeye bile kalkışmayanları yargıla.   Gökhan Arslanbay

pax

http://www.pololu.com/docs/0J12/1 

sensörü siyah ve beyaz zemini birbirinden ayırt etmek için kullanıyorum. verdiğim linkte detaylı bilgiler var .

ibrsel

Sensör okuma rutininiden sonra 5 ms kadar bekleme yapmayı deneyin. Birde siyah zeminin mat veya parlak olması işığın yansıması analog değeri değiştirebilir.