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.


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); } }