Arkadaşlar herkese merhaba, bugünkü yazımda arduino ile birlikte bizi gördüğünde algılayıp kendisi açılan akıllı bir çöp kutusu yapacağız. Haydi başlayalım!
Malzemeler
Arduino Uno
1 adet HC-SR04 mesafe sensörü
1 adet servo motor
9 adet erkek erkek jumper
1 adet breadboard
Çalışma Prensibi
Öncelikle mesafe sensörümüz ile yaklaşan elin mesafesi algılanıyor sonrasında kapağa bağlanan servo motor 180 derece dönerek kapağın açılmasını sağlıyor.Belli bir süre geçtikten sonra 0 dereceye geri geldiğinde kapat geri kapanmış oluyor.
Devre Şeması
- adım: Mesafe sensörünü breadboarda yerleştiriyoruz.
VCC pinini breadboard üzerinde bulunan artı hatla birleştiriyoruz.
GND pinini breadboard üzerinde bulunan eksi hatla birleştiriyoruz.
TRIG pinini arduino üzerinde bulunan 7. pinle birleştiyoruz.
ECHO pinini arduino üzerinde bulunan 6. pinle birleştiyoruz.
2. adım: Servo motorun bağlantısını yapıyoruz.
Güç pinini breadboard üzerinde bulunan artı hatla birleşttiyoruz.
Toprak pinini breadboard üzerinde bulunan eksi hata bağlıyoruz.
Sinyal pinini Arduino üzerinde bulunan 9. pine bağlıyoruz.
Kod
#include <Servo.h> // servo kütüphanesi
Servo motor; // motora motor ismini verdik
int santimetre; //değişken
int sure; //değişken
int trigPin = 7; // trig pininin bağlı olduğu pin
int echoPin = 6; //echo pininin bağlı olduğu pin
void setup()
{
pinMode(trigPin, OUTPUT); // trig pininden çıkış aldık
pinMode(echoPin, INPUT); // echo pininden giriş aldık
motor.attach(9); // servo motorun bağlı olduğu pin
Serial.begin(9600); // seri monitörle bağlantıyı sağladık
motor.write(0); // motor sıfır derecede bekleyecek
}
void loop()
{
digitalWrite(trigPin, LOW); // mesafeyi santimetre olarak yazdırma
delayMicroseconds(2);
digitalWrite(trigPin, HIGH);
delayMicroseconds(10);
digitalWrite(trigPin, LOW);
sure=pulseIn(echoPin, HIGH);
santimetre = (sure/2) / 29.1;
if(santimetre<40) // mesafe 40 cm’den küçükse aşağıdaki komutlar uygulanır
{
motor.write(180); // motor 180 derece döner
delay(10000); // bekleme
}
else{ // mesafe 40 cm’den büyükse
motor.write(0); //motor açılmaz
delay(10);
}
Serial.print(santimetre); // mesafeyi serial monitöre yazdırma
Serial.println(“cm”);
delay(100);
}