STM32f103 GP2Y0E03 MESAFE SENSÖRÜ UYGULAMASI

Başlatan SB7, 10 Mayıs 2018, 15:42:36

SB7

Selamlar
GP2Y0E03 adlı mesafe sensörü ile ölçüm yapmaya çalışıyorum.Sensör IR Ledden yansıyan ışığın alıcıya gelme açısına göre mesafeyi ölçüp analog/dijital çıkış veriyor.Ben analog çıkış ucundan 12 bitlik ADC ile  mesafe  ölçümü yapıyorum(STM32f103 kullanıyorum).0.55V-2.2V arası gerilim 50cm-4cm e karşılık geliyor.Sensör bazen doğru ölçüm yapıp mesafeyi gösterirken bazen çok alakasız değerler verip o değerleri tekrarlıyor.Örneğin 20cm lik mesafede sürekli 50cm göstermesi gibi.
Yazdığım kodda bu şekilde
deger=ADCConvertedValue;
 if(deger>2730){ //2.2V
 deger=2730;
 }
 if(deger<682){ //0.55V
 deger=682;
 }
 mesafe=((deger-682)*(-46)/2048)+50;
Yazılımdaki değerleri de Arduino Map komutunun oranlama algoritmasıyla yaptım
long map(long x, long in_min, long in_max, long out_min, long out_max)
{
  return (x - in_min) * (out_max - out_min) / (in_max - in_min) + out_min;
}
Yanlış veya eksik yaptığım yer neresi olabilir? Ya da farklı bir çözüm önerisi olan var mı?
-SB7

alperdogan

Alttaki kod satırı döngüde değil mi ?
deger=ADCConvertedValue;
 if(deger>2730){ //2.2V
 deger=2730;
 }
 if(deger<682){ //0.55V
 deger=682;
 }
 mesafe=((deger-682)*(-46)/2048)+50;