Arkadaşlar merhaba, bugün projemde Arduino ile çoğu yerde görmeye aşina olduğumuz ve tüm AVM’ler ile mağaza ve dükkanların bir parçası olan otomatik kapıları yapacağım. Haydi başlayalım!
Malzemeler
Arduino Uno
2 adet Servo Motor
2 adet PIR sensör
1 adet 16×2 LCD ekran
1 adet Potansiyometre
3 adet 220 ohm direnç
2 adet LED
Çalışma Prensibi
Bu proje aslında kapalı mekanlarda sosyal mesafeyi sağlama doğrultusunda o alanda olabilecek maksimum insan sayısına göre ayarlanıp içeri giren insan sayısını belirterek sosyal mesafeyi ayarlamaya yardımcı bir projedir. Projemizde ana bileşen insanların algılanması bunu yapabilmek için PIR sensör kullanacağız. Kapıya yaklaştığımızda sensör kapılara açılması gerektiğini söyleyen bir sinyal gönderecek. Kapılar burda servo motorun hareketiyle açılacak yani derve şemamızda servo motorlar kapımız olacak. İki tane PIR sensör kullandık. Biri içeri giren insanları algılayacak diğeri ise dışarı çıkan insanları ve içeride aynı zamanda sadece 5 kişi bulunabilir. LCD ekran ise içeride bulunan insan sayısını göstermek için. Bunun doğrultusunda içeriden birisi çıktığında LCD ekrandaki rakamda da azalma olacak. Aynı zamanda LCD ekranda hep evde kal ve İngilizcesi stay home yazacak.
Kod
Dikkat!! LCD ekran ve ve servo motor kullandığımız için LiquidCrystal ve Servo.h kütüphanesini eklemeyi unutmayınız.
#include <LiquidCrystal.h>
LiquidCrystal lcd(7, 6, 5, 4, 3, 2);
#include <Servo.h>
Servo rservo;
int a=0;
int b=0;
int c=9;
int d=0;
int e=11;
int f=0;
void setup()
{
lcd.begin(16, 2);
Serial.begin(9600);
rservo.attach(8);
pinMode(13, OUTPUT);
pinMode(9, INPUT);
pinMode(12, OUTPUT);
pinMode(11, INPUT);
}
void loop()
{
d=digitalRead(c);
f=digitalRead(e);
if(d==1)
{
f==0;
delay(2000);
}
else if(f==1)
{
d==0;
delay(2000);
}
if(a==0)
{
lcd.setCursor(1,0);
lcd.print(“0 Person”);
rservo.write(0);
a=1;
b=0;
}
else if((d==1)&&(a==1))
{
lcd.setCursor(1,0);
lcd.print(“1 Person”);
rservo.write(45);
delay(2500);
rservo.write(0);
digitalWrite(12, HIGH);
delay(1000);
digitalWrite(12, LOW);
a=2;
b=4;
}
else if((d==1)&&(a==2))
{
lcd.setCursor(1,0);
lcd.print(“2 Person”);
rservo.write(45);
delay(2500);
rservo.write(0);
digitalWrite(12, HIGH);
delay(1000);
digitalWrite(12, LOW);
a=3;
b=3;
}
else if((d==1)&&(a==3))
{
lcd.setCursor(1,0);
lcd.print(“3 Person”);
rservo.write(45);
delay(2500);
rservo.write(0);
digitalWrite(12, HIGH);
delay(1000);
digitalWrite(12, LOW);
a=4;
b=2;
}
else if((d==1)&&(a==4))
{
lcd.setCursor(1,0);
lcd.print(“4 Person”);
rservo.write(45);
delay(2500);
rservo.write(0);
digitalWrite(12, HIGH);
delay(1000);
digitalWrite(12, LOW);
a=5;
b=1;
}
else if((d==1)&&(a==5))
{
digitalWrite(12, HIGH);
delay(1000);
digitalWrite(12, LOW);
lcd.setCursor(1,0);
lcd.print(“5 Person”);
delay(2500);
rservo.write(45);
delay(2500);
rservo.write(0);
lcd.setCursor(1,0);
a=6;
b=0;
}
else if((d==1)&&(a==6))
{
rservo.write(0);
lcd.setCursor(1,0);
lcd.print(“Full Capacity”);
delay(2500);
lcd.setCursor(1,0);
lcd.print(” “);
delay(2500);
digitalWrite(12, HIGH);
delay(1000);
digitalWrite(12, LOW);
lcd.print(“Full Capacity”);
delay(2500);
lcd.setCursor(1,0);
lcd.print(” “);
delay(2500);
}
else if((f==1)&&(b==0))
{
lcd.setCursor(1,0);
lcd.print(” “);
lcd.setCursor(1,0);
lcd.print(“4 Person”);
rservo.write(45);
delay(2500);
rservo.write(0);
digitalWrite(13, HIGH);
delay(1000);
digitalWrite(13, LOW);
b=1;
a=4;
}
else if((f==1)&&(b==1))
{
lcd.setCursor(1,0);
lcd.print(“3 Person”);
rservo.write(45);
delay(2500);
rservo.write(0);
digitalWrite(13, HIGH);
delay(1000);
digitalWrite(13, LOW);
b=2;
a=3;
}
else if((f==1)&&(b==2))
{
lcd.setCursor(1,0);
lcd.print(“2 Person”);
rservo.write(45);
delay(2500);
rservo.write(0);
digitalWrite(13, HIGH);
delay(1000);
digitalWrite(13, LOW);
b=3;
a=2;
}
else if((f==1)&&(b==3))
{
lcd.setCursor(1,0);
lcd.print(“1 Person”);
rservo.write(45);
delay(2500);
rservo.write(0);
digitalWrite(13, HIGH);
delay(1000);
digitalWrite(13, LOW);
b=4;
a=1;
}
else if((f==1)&&(b==4))
{
lcd.setCursor(1,0);
lcd.print(“0 Person”);
rservo.write(45);
delay(2500);
rservo.write(0);
digitalWrite(13, HIGH);
delay(1000);
digitalWrite(13, LOW);
b=5;
a=0;
}
else if((f==1)&&(b==5))
{
rservo.write(0);
digitalWrite(13, HIGH);
}
digitalWrite(12, LOW);
digitalWrite(13, LOW);
//Serial.print(a);
//Serial.print(b);
//Serial.print(c);
//Serial.print(d);
//Serial.print(e);
//Serial.print(f);
lcd.setCursor(1,1);
lcd.print(” “);
delay(100);
lcd.setCursor(1,1);
lcd.print(“Limit 5 Person”);
delay(1000);
lcd.setCursor(1,1);
lcd.print(” “);
delay(100);
lcd.setCursor(1,1);
lcd.print(“Stay Home”);
delay(1000);
lcd.setCursor(1,1);
lcd.print(” “);
delay(100);
lcd.setCursor(1,1);
lcd.print(“Stay Safe”);
delay(1000);
}