Magnit datchik yordamida eshiklarni ochish qurilmasini loyihalash


Magnit datchik yordamida avtomatlashtirishni loyihalash



Download 2,02 Mb.
bet9/11
Sana30.01.2023
Hajmi2,02 Mb.
#905121
1   2   3   4   5   6   7   8   9   10   11
Bog'liq
ro\'zimboy

2.2.Magnit datchik yordamida avtomatlashtirishni loyihalash.

Rasm-2.1. Umumiy sxemasi


Avvalo, biz 4 × 3 klaviatura bilan aloqa o'rnatamiz. Arduino bilan klaviaturani ulash uchun biz D1 dan D7 raqamli pinlarini ishlatamiz. Klaviaturaning barcha ettita pinlarini Arduino-ning D1 ~ D7 analog pinlariga ulangan.
Servo dvigatelni Arduino bilan ulash uchun, servo dvigatelning PWM pinini chiqarish uchun Arduino-ning raqamli D9 pinidan foydalaning. Endi zilzilning ijobiy simini Arduino piniga D10 va manfiy simni erga ulang.

Endi biz 16 × 2 LCD-ni Arduino-ga ulaymiz.


1. LCD 1,3,5,16 pinini GND ga ulang.
2. LCD displeyning 2,15 pinini VCC (5V) ga ulang.
3. LCD-ning 4-pinini Arduino-ning A0 piniga ulang.
3. LCD-ning 6-pinini Arduino-ning A1 piniga ulang.
3. LCD-ning 11-pinini Arduino-ning A2 piniga ulang.
3. LCD-ning 12-pinini Arduino-ning A3-piniga ulang.
3. LCD-ning 13-pinini Arduino-ning A4 piniga ulang.
3. LCD-ning 14-pinini Arduino-ning A5 piniga ulang.

Ishchi tushuntirish:


Ushbu loyihada biz Arduino-da standart "4567" parolini aniqladik. Siz uni kodlash orqali o'zgartirishingiz mumkin. Parolni kiritganimizda, u Arduino-da saqlangan parol bilan mos keladi. Agar u to'g'ri bo'lsa, u holda "Kirish berildi, xush kelibsiz" ko'rsatiladi va keyin eshik ochilganda servo motorni 180 eshikka aylantiring. Keyin eshikdan kirish uchun 5 soniya vaqt beriladi. 5 soniya tugagandan so'ng, eshik avtomatik ravishda qulflanadi.
Agar parol noto'g'ri bo'lsa, unda "Kod noto'g'ri, keting" ko'rsatiladi. Har qanday tugmachani bosganda ham zilzila bir marta signal beradi.

R asm-2.2. Daturni yuklash


R asm-2.3. Parolni yuklash



Kod.
#include
#include
#include
Servo myservo;
int pos=0; // LCD ulanishlari
LiquidCrystal lcd(A0,A1,A2,A3,A4,A5);
const byte rows=4;
const byte cols=3;
char key[rows][cols]={
{'1','2','3'},
{'4','5','6'},
{'7','8','9'},
{'*','0','#'}};
byte rowPins[rows]={1,2,3,4};
byte colPins[cols]={5,6,7};
Keypad keypad= Keypad(makeKeymap(key),rowPins,colPins,rows,cols);
char* password="4567";
int currentposition=0;
int redled=10;
int greenled=11;
int buzz=8;
int invalidcount=12;
void setup(){
displayscreen();
Serial.begin(9600);
pinMode(redled, OUTPUT);
pinMode(greenled, OUTPUT);
pinMode(buzz, OUTPUT);
myservo.attach(9);
lcd.begin(16,2);}
void loop(){
if( currentposition==0){
displayscreen();}int l ;
char code=keypad.getKey();
if(code!=NO_KEY){
lcd.clear();
lcd.setCursor(0,0);
lcd.print("PASSWORD:");
lcd.setCursor(7,1);
lcd.print(" ");lcd.setCursor(7,1);
for(l=0;l<=currentposition;++l){
lcd.print("*");
keypress();}
if (code==password[currentposition]){
++currentposition;
if(currentposition==4){
unlockdoor();
currentposition=0;
}}else{
++invalidcount;
incorrect();
currentposition=0;}
if(invalidcount==5){
++invalidcount;
torture1();}
if(invalidcount==8){
torture2();}}}
//********ESHIK FUNKSIYASINI OCHAMIZ!!!!***********//
void unlockdoor(){
delay(900);
lcd.setCursor(0,0);
lcd.println(" ");
lcd.setCursor(1,0);
lcd.setCursor(4,1);
lcd.println("WELCOME!!");
lcd.setCursor(15,1);
lcd.println(" ");
lcd.setCursor(16,1);
lcd.println(" ");
lcd.setCursor(14,1);
lcd.println(" ");
lcd.setCursor(13,1);
lcd.println(" ");
unlockbuzz();
for(pos = 180; pos>=0; pos-=5) // 180 darajadan 0 darajagacha boradi{
myservo.write(pos); // servo-ga 'pos' o'zgaruvchisidagi holatiga o'tishni ayting
delay(5); // servo holatiga yetguncha 15ms kutadi}
delay(2000);
delay(1000);
counterbeep();
delay(1000);
for(pos = 0; pos <= 180; pos +=5) // 0 darajadan 180 darajagacha boradi{
myservo.write(pos); // servo-ga 'pos' o'zgaruvchisidagi holatiga o'tishni ayting
delay(15);
currentposition=0;
lcd.clear();
displayscreen();}}
//************KODNING FONKSIYASI********//
void incorrect(){
delay(500);
lcd.clear();
lcd.setCursor(1,0);
lcd.print("CODE");
lcd.setCursor(6,0);
lcd.print("INCORRECT");
lcd.setCursor(15,1);
lcd.println(" ");
lcd.setCursor(4,1);
lcd.println("GET AWAY!!!");
lcd.setCursor(13,1);
lcd.println(" ");
Serial.println("CODE INCORRECT YOU ARE UNAUTHORIZED");
digitalWrite(redled, HIGH);
digitalWrite(buzz, HIGH);
delay(3000);
lcd.clear();
digitalWrite(redled, LOW);
digitalWrite(buzz,LOW);
displayscreen();}
//************** Ekranni tozalaymiz!!!*************//
void clearscreen(){
lcd.setCursor(0,0);
lcd.println(" ");
lcd.setCursor(0,1);
lcd.println(" ");
lcd.setCursor(0,2);
lcd.println(" ");
lcd.setCursor(0,3);
lcd.println(" ");}
void keypress(){
digitalWrite(buzz, HIGH);
delay(50);
digitalWrite(buzz, LOW);}
//********DISPLEY FUNKSIYASI!!!*************//
void displayscreen(){
lcd.setCursor(0,0);
lcd.println("*ENTER THE CODE*");
lcd.setCursor(1 ,1);
lcd.println("TO _/_ (OPEN)!!");}
//*************** ARM SERVO***********//
void armservo(){
for (pos=180;pos<=180;pos+=50){
myservo.write(pos);
delay(5);}
delay(5000);
for(pos=180;pos>=0;pos-=50){
myservo.write(pos);}}
void unlockbuzz(){
digitalWrite(buzz, HIGH);
delay(80);
digitalWrite(buzz, LOW);
delay(80);
digitalWrite(buzz, HIGH);
delay(80);
digitalWrite(buzz, LOW);
delay(200);
digitalWrite(buzz, HIGH);
delay(80);
digitalWrite(buzz, LOW);
delay(80);
digitalWrite(buzz, HIGH);
delay(80);
digitalWrite(buzz, LOW);
delay(80);}
void counterbeep(){
delay(1200);
lcd.clear();
digitalWrite(buzz, HIGH);
lcd.setCursor(2,15);
lcd.println(" ");
lcd.setCursor(2,14);
lcd.println(" ");
lcd.setCursor(2,0);
delay(200);
lcd.println("GET IN WITHIN:::");
lcd.setCursor(4,1);
lcd.print("5");
delay(200);
lcd.clear();
lcd.setCursor(2,0);
lcd.println("GET IN WITHIN:");
digitalWrite(buzz,LOW);
delay(1000);
digitalWrite(buzz, HIGH);
lcd.setCursor(2,0);
lcd.println("GET IN WITHIN:");
lcd.setCursor(4,1); //2
lcd.print("4");
delay(100);
lcd.clear();
lcd.setCursor(2,0);
lcd.println("GET IN WITHIN:");
digitalWrite(buzz,LOW);
delay(1000);
digitalWrite(buzz, HIGH);
lcd.setCursor(2,0);
lcd.println("GET IN WITHIN:");
lcd.setCursor(4,1); //3
lcd.print("3");
delay(100);
lcd.clear();
lcd.setCursor(2,0);
lcd.println("GET IN WITHIN:");
digitalWrite(buzz,LOW);
delay(1000);
digitalWrite(buzz, HIGH);
lcd.setCursor(2,0);
lcd.println("GET IN WITHIN:");
lcd.setCursor(4,1); //4
lcd.print("2");
delay(100);
lcd.clear();
lcd.setCursor(2,0);
lcd.println("GET IN WITHIN:");
digitalWrite(buzz,LOW);
delay(1000);
digitalWrite(buzz, HIGH);
lcd.setCursor(4,1);
lcd.print("1");
delay(100);
lcd.clear();
lcd.setCursor(2,0);
lcd.println("GET IN WITHIN::");
digitalWrite(buzz,LOW);
delay(1000);
digitalWrite(buzz, HIGH);
delay(40);
digitalWrite(buzz,LOW);
delay(40);
digitalWrite(buzz, HIGH);
delay(40);
digitalWrite(buzz,LOW);
delay(40);
digitalWrite(buzz, HIGH);
delay(40);
digitalWrite(buzz,LOW);
delay(40);
digitalWrite(buzz, HIGH);
delay(40);
digitalWrite(buzz,LOW);
lcd.clear();
lcd.setCursor(2,0);
lcd.print("RE-LOCKING");
delay(500);
lcd.setCursor(12,0);
lcd.print(".");
delay(500);
lcd.setCursor(13,0);
lcd.print(".");
delay(500);
lcd.setCursor(14,0);
lcd.print(".");
delay(400);
lcd.clear();
lcd.setCursor(4,0);
lcd.print("LOCKED!");
delay(440);
}
void torture1(){
delay(1000);
lcd.clear();
lcd.setCursor(2,0);
lcd.print("WAIT FOR ");
lcd.setCursor(5,1);
lcd.print("15 SECONDS");
digitalWrite(buzz, HIGH);
delay(15000);
digitalWrite(buzz, LOW);
lcd.clear();
lcd.setCursor(2,0);
lcd.print("LOL..");
lcd.setCursor(1,1);
lcd.print(" HOW WAS THAT??");
delay(3500);
lcd.clear();}
void torture2(){
delay(1000);
lcd.setCursor(1,0);
lcd.print(" ");
lcd.setCursor(2,0);
lcd.print("EAR DRUMS ARE");
lcd.setCursor(0,1);
lcd.print(" PRECIOUS!! ");
delay(1500);
lcd.clear();
lcd.setCursor(1,0);
lcd.print(" WAIT FOR");
lcd.setCursor(4,1);
lcd.print(" 1 MINUTE");
digitalWrite(buzz, HIGH);
delay(55000);
counterbeep();
lcd.clear();
digitalWrite(buzz, LOW);
lcd.setCursor(2,0);
lcd.print("WANT ME TO");
lcd.setCursor(1,1);
lcd.print("REDICULE MORE??");
delay(2500);
lcd.clear();
lcd.setCursor(2,0);
lcd.print("Ha Ha Ha Ha");
delay(1700);
lcd.clear();}



Download 2,02 Mb.

Do'stlaringiz bilan baham:
1   2   3   4   5   6   7   8   9   10   11




Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©hozir.org 2024
ma'muriyatiga murojaat qiling

kiriting | ro'yxatdan o'tish
    Bosh sahifa
юртда тантана
Боғда битган
Бугун юртда
Эшитганлар жилманглар
Эшитмадим деманглар
битган бодомлар
Yangiariq tumani
qitish marakazi
Raqamli texnologiyalar
ilishida muhokamadan
tasdiqqa tavsiya
tavsiya etilgan
iqtisodiyot kafedrasi
steiermarkischen landesregierung
asarlaringizni yuboring
o'zingizning asarlaringizni
Iltimos faqat
faqat o'zingizning
steierm rkischen
landesregierung fachabteilung
rkischen landesregierung
hamshira loyihasi
loyihasi mavsum
faolyatining oqibatlari
asosiy adabiyotlar
fakulteti ahborot
ahborot havfsizligi
havfsizligi kafedrasi
fanidan bo’yicha
fakulteti iqtisodiyot
boshqaruv fakulteti
chiqarishda boshqaruv
ishlab chiqarishda
iqtisodiyot fakultet
multiservis tarmoqlari
fanidan asosiy
Uzbek fanidan
mavzulari potok
asosidagi multiservis
'aliyyil a'ziym
billahil 'aliyyil
illaa billahil
quvvata illaa
falah' deganida
Kompyuter savodxonligi
bo’yicha mustaqil
'alal falah'
Hayya 'alal
'alas soloh
Hayya 'alas
mavsum boyicha


yuklab olish