Mesafe Sensörü Yapımı

Kullanılacak Malzemeler

  •  Arduino
  • 1 IR LED alıcı (photodiode -2pinli, phototransistor 3 pinli)
  •  IR LED yayıcı (en az 2 adet. ne kadar çok olursa o kadar etkili)
  • 100K direnç (kahverengi- siyah -sarı)
  • Kablo
  • Breadboard
  • Elektrik bandı
  • Buzzer(opsiyonel)

 

IR LED alıcımızın etrafını bant ile kaplıyoruz.

 

 

 

  • 5v pini dirençle birlikte IR LED alıcının anoduna bağlıyoruz.
  • Arduino A0 pinini IR LED alıcının anoduna bağlıyoruz.
  • Tüm IR LED yayıcıların anodunu dijital 2 pinine bağlıyoruz.
  • Tüm LEDlerin (alıcı-yayıcılar) katodunu toprak (GND) pinine bağlıyoruz.
  • Eğer buzzer kullanacaksınız bir ucunu Dijital 11 pinine diğer ucunu GND’ye bağlıyoruz.
Tıklayıp büyütebilirsiniz.
Tıklayıp büyütebilirsiniz.

IR LED yayıcıların kızılötesi ışığı gözle görünmezler, ama dijital kamera ile gözlemleyebilirsiniz.

 

KOD

int IRpin = A0;  // IR Alıcı - analog pin A0
int IRemitter = 2; // IR yayıcı LED - digital pin 2
int ambientIR; // IR'den gelen değer
int obstacleIR;
int value[10]; // IR değerleri
 
int distance; //engel varsa değişkenliği gösteren değişken
 
void setup(){
Serial.begin(9600); 
pinMode(IRemitter,OUTPUT); // IR yayıcı LED on 
digitalWrite(IRemitter,LOW);// IR LED as off
pinMode(11,OUTPUT); // buzzer in digital pin 11
}
 
void loop(){
distance = readIR(5); // IR okuma fonksiyonu ve kaç kere okunacak
Serial.println(distance);
// buzzer(); //buzzer için yorumdan çıkarın
}
 
int readIR(int times){
for(int x=0;x<times;x++){
digitalWrite(IRemitter,LOW); // değeri okumak için IR Ledi kapat
delay(1); // hassas ölçüm için bekleme
ambientIR = analogRead(IRpin); // okunan veri
digitalWrite(IRemitter,HIGH); 
delay(1);
obstacleIR = analogRead(IRpin);
value[x] = ambientIR-obstacleIR; // hesaplama ve ortalama değer
}
 
for(int x=0;x<times;x++){
 
//doğruluk bazlı hesaplama
 
distance+=value[x];
 
}
 
return(distance/times); // sonucu döndür
 
}
 
//-- Function to sound a buzzer for audible measurements --//
 
void buzzer(){ if (distance>1){
if(distance>100){ // continuous sound if the obstacle is too close
digitalWrite(11,HIGH);
}
else{ // beeps faster when an obstacle approaches
digitalWrite(11,HIGH);
delay(150-distance); // adjust this value for your convenience
digitalWrite(11,LOW);
delay(150-distance); // adjust this value for your convenience
}
}
else{ // off if there is no obstacle
digitalWrite(11,LOW);
}
}

© NEOR 2015 Tüm Hakları Saklıdır.

Ücretsiz web sitesi oluşturun!Webnode