Malzemeler
-1 Adet Arduino Uno
-1 Adet Ultrasonik Sensör
-1 Adet LDR
-1 Adet 2*16 LCD
-3 Adet LED
-1 Adet 10k direnç
-3 Adet 330 ohm direnç(330-390 ohm arası olabilir)
-1 Adet Buzzer
Devre Şeması
#define trigPin 4
// Trigger Pini (Ses gönderme)
#define echoPin 5
// Echo Pini (Yansıyan ses algılama)
#
include
<LiquidCrystal.h>
LiquidCrystal lcd(7, 8, 9, 10, 11, 12);
int ldr = 0;
//analog pin to which LDR is connected
int ldr_value = 0;
//variable to store LDR values
int kisa =13;
int uzun =6;
int stp = 3;
int bzr =2;
int maksimumMesafe = 200;
// Maksimum mesafe. Farketmesi için uzak nesneler daha büyük olmalıdır.
int minimumMesafe = 3;
// Minimum mesafe
long microsaniyeSure, cmMesafe;
// Mesafe hesabında kullanılan değişkenler
int ldr_pin=A0;
int tonePin = 2;
byte possible_patterns[9] = {
B00000000,
B00000001,
B00000011,
B00000111,
B00001111,
B00011111,
B00111111,
B01111111,
B11111111,
};
void setup() {
Serial.begin (9600);
// Seri iletişimi başlat
pinMode(trigPin, OUTPUT);
// Ses gönderme pin türünü çıkış olarak ayarla
pinMode(echoPin, INPUT);
// Yansıyan ses algılama pin türünü giriş olarak ayarla
lcd.begin(16, 2);
pinMode(kisa, OUTPUT);
pinMode(uzun, OUTPUT);
pinMode(stp, OUTPUT);
pinMode(bzr, OUTPUT);
pinMode(tonePin, OUTPUT);
}
void loop() {
/* Aşağıda trigPin/echoPin döngüsü en yakın nesneden yansıyan sesin yansıma süresini hesaplar. */
int ldr= analogRead(ldr_pin);
Serial.println(ldr);
digitalWrite(trigPin, LOW);
// Hoparlör 2ms sessiz
delayMicroseconds(2);
digitalWrite(trigPin, HIGH);
// Hoparlör 10ms sesli
delayMicroseconds(10);
digitalWrite(trigPin, LOW);
// Hoparlör sessiz
microsaniyeSure = pulseIn(echoPin, HIGH);
// Mikrofonu dinle, yansıma süresini microsaniyeSure değişkenine al
// Serial.println(microsaniyeSure); // Sesin gitme ve geri yansıma süresi
cmMesafe = microsaniyeSure/58.3;
// microsaniyeSure'dan cm olarak mesafeyi hesapla
lcd.clear();
if
(ldr <= 500) {
digitalWrite(kisa ,HIGH);
digitalWrite(uzun ,HIGH);
lcd.setCursor(0,0);
lcd.
print
(
"Uzunlar Acik"
);
}
if
(ldr >500) {
digitalWrite(kisa ,HIGH);
digitalWrite(uzun ,LOW);
lcd.setCursor(0,0);
lcd.
print
(
"Uzunlar Kapali "
);
}
if
(cmMesafe >= 15 && cmMesafe <20){
digitalWrite(stp ,LOW) ;
tone(tonePin,200000, 300);
delay(100);
}
if
(cmMesafe >= 10 && cmMesafe <15){
digitalWrite(stp ,LOW);
tone(tonePin,200000, 50);
delay(300);
}
if
(cmMesafe >=5 && cmMesafe <10 ){
digitalWrite(stp ,LOW);
tone(tonePin, 200000,100);
}
if
(cmMesafe <5 ){
digitalWrite(stp ,HIGH);
tone(tonePin, 200000);
}
if
(cmMesafe >20 ){
digitalWrite(stp ,LOW);
noTone(tonePin);
}
/* Seri iletişimden ölçülen mesafeyi bilgisayara gönder */
lcd.setCursor(0,2);
lcd.
print
(
"Mesafe "
);
lcd.
print
(cmMesafe);
//Mesafe bilgisi
lcd.
print
(
" cm"
);
// Birim değeri
delay(1000);
//Sonraki ölçümden önce bekleme süresi.
}
SA bu kodlar arasındaki tone komutu hata veriyor onun için internette kütüphane araştırdım fakat bulamadım elinizde mevcut ise paylaşma imkanınız var mı?
Teşekkür ederim iyi çalışmalar dilerim.
BeğenLiked by 1 kişi
ya ben projeyi arduinoya ya yeni başladığım zaman bir arşiv olsu diye açtım yani benim de pek bilgim yok çok özür dilerim
BeğenBeğen
Yok malasef 😦
BeğenBeğen