GP2Y0A21YK0F sensörü cm formülü

Başlatan Emre005, 07 Şubat 2012, 14:49:06

Emre005

Arkadaşlar elimde GP2Y0A21YK0F mesafe sensörü var bu sensörle 10 bit ADC den ölçüm yapabiliyorum ancak bu sensörle cm cinsinde ölçüm yapmak istiyorum elinde böyle bir formül olan var mı? Ya da bu mümkün mü?

ferit06

#1
şöyle bir şey var


http://forum.donanimhaber.com/m_27060685/tm.htm

ve bu

http://www.uerkal.com/Posts/MF-Analog-Mesafe-Sensoru.aspx

bir tane daha...
http://www.phidgets.com/documentation/Phidgets/1101.pdf
burada
The formula to translate SensorValue into Distance for Sharp 10-80cm analog sensors is:
Distance (cm) = 4800/(SensorValue - 20)
This formula is only valid over the SensorValue range 80-500.

şeklinde verilmiş

tacettin

#include <16f873A.h>
#device adc=10
#FUSES NOWDT                    //No Watch Dog Timer
#FUSES HS                       //High speed Osc (> 4mhz)
#FUSES NOPUT                    //No Power Up Timer
#FUSES NOPROTECT                //Code not protected from reading
#FUSES NODEBUG                  //No Debug mode for ICD
#FUSES BROWNOUT                 //Reset when brownout detected
#FUSES NOLVP                      //Low Voltage Programming on B3(PIC16) or B5(PIC18)
#FUSES NOCPD                    //No EE protection
#FUSES NOWRT                    //Program memory not write protected

#use delay(clock=20000000)
#include <mylcd.c>


int16 adc_oku,deger;




void main()
{
set_tris_a(0xff);
set_tris_b(0x00);

setup_adc(ADC_CLOCK_INTERNAL);
 setup_adc_ports(RA0_RA1_RA3_ANALOG); 
 set_adc_channel(0);
 lcd_init();
while(1)
 {
adc_oku=read_adc();
deger=adc_oku;
deger=deger+5,
deger=2914.0/deger;
//deger=deger-1;
printf(lcd_putc,"\fmesafe=%Lu\n",deger);
printf(lcd_putc,"\mesafe=%Lu",adc_oku);

delay_ms(10);

}





}

Emre005

Teşekkürler herkes farklı bir formül kullanmış hepsini denedim ve bende cetvelle kalibre ettikten sonra gerçekçi değerlere ulaştım.  ;D

SpeedyX

Yüksek doğruluk istiyorsan, cetvelle tek tek her kademe için aldığın değerlerden bir tablo yapabilirsin, burada da paylaşırsan başkaları da yararlanır.

tacettin

arkadaşım linki şimdi buldum... bir bakarsan daha çok yardımcı olabilir...

http://acroname.com/robotics/info/articles/irlinear/irlinear.html

Emre005

Hocam çok teşekkürler kulladığım formül volt=(ADC/2.87)    R=((2914 /(volt+5)) - 1) buydu sensör gerçekten çok hassas yaptığım ölçümler şu şekilde:
cetvel  | ölçtüğümdeger
8 cm    |  3.10V         R=(2914/315)-1=8.25 cm
20 cm  |  1.30V         R=(2914/135)-1=20.58 cm
37 cm  |  0,73V         R=(2914/78)-1=36.35 cm  sanırım kağıdı iyi tutamadığım için 1 cm sapma var.
46 cm  |  0.57V         R=(2914/62)-1=46.00 cm