Ardinio uno ile c++ ile makina diline kod yazarak istediğiniz robot akıllı ev sistemi yapabilirsiniz. ardinio kücük bir bilgisayar ve bu bilgisayara siz sensörler veya dış eklentilerle komutlar verebilir alabilirsiniz. bugun sizinle Şifreli kapı nasıl yapılır buna bakacağız
Gerekli malzemeler.
–Ardinio uno
–Serve Motor(kac derece döneceğini belirleyebilirsiniz)
–Lcd Ekran (görüntü için kullanılacak)
–Ses Buzzer
–iki adet led
–Role 220 elektirik ac kapa için(Relay)
–Keypad (kütüphaneyi indirerek araclar menüsünden import edin)
–kablolar
Yazılım için Arduino İDE indirin
Aşağıdaki şemaya göre bağlantılarınızı yapın
Asağıdaki kodları programa yapıştırın ve kendi incelemeyi yapın.
#include<Keypad.h>
#include <LiquidCrystal.h>
#include<Servo.h>
#define role 4 //role
Servo servo;
#define yled 5 //sarı led
#define kled 6 // kırmızı led
#define buzzer 6
LiquidCrystal lcd(12, 11, 10, 9, 8, 7);//(rs, enable, d4, d5, d6, d7)
// ( vss:GND ,VDD:+5V,VO:POT ,RW:GND,A:+5V,K:GND)
const byte satir = 4; //rows
const byte sutun = 4; //columbs
char sifre[4] = {'3', '3', '3', '3'};
char sifre1[4];
char tus;
int i = 0;
char tus_takimi[4][4] = {
{'1', '2', '3', 'A'},
{'4', '5', '6', 'B'},
{'7', '8', '9', 'C'},
{'*', '0', '#', 'D'}
};
byte satir_pins[4] = {A0, A1, A2, A3};
byte sutun_pins[4] = {A4, A5, 3, 2};
Keypad tuss_takimi = Keypad(makeKeymap(tus_takimi), satir_pins, sutun_pins, 4, 4);
byte customChar9[8] = {
0b11111,
0b11111,
0b11111,
0b11111,
0b11111,
0b11111,
0b11111,
0b11111
};
byte customChar8[8] = {
0b11110,
0b11110,
0b11110,
0b11110,
0b11110,
0b11110,
0b11110,
0b11110
};
byte customChar7[8] = {
0b11100,
0b11100,
0b11100,
0b11100,
0b11100,
0b11100,
0b11100,
0b11100
};
byte customChar6[8] = {
0b11000,
0b11000,
0b11000,
0b11000,
0b11000,
0b11000,
0b11000,
0b11000
};
byte customChar5[8] = {
0b10000,
0b10000,
0b10000,
0b10000,
0b10000,
0b10000,
0b10000,
0b10000
};
byte customChar4[8] = {
0b00001,
0b00011,
0b00011,
0b00111,
0b00111,
0b01111,
0b01111,
0b11111
};
byte customChar3[8] = {
0b00000,
0b00010,
0b00010,
0b00110,
0b00110,
0b01110,
0b01110,
0b11110
};
byte customChar2[8] = {
0b00000,
0b00000,
0b00000,
0b00100,
0b00100,
0b01100,
0b01100,
0b11100
};
byte customChar1[8] = {
0b00000,
0b00000,
0b00000,
0b00000,
0b00000,
0b01000,
0b01000,
0b11000
};
byte customChar0[8] = {
0b00000,
0b00000,
0b00000,
0b00000,
0b00000,
0b00000,
0b00000,
0b10000
};
void setup() {
pinMode(role, OUTPUT);
servo.attach(13);
pinMode(yled, OUTPUT);
pinMode(buzzer, OUTPUT);
pinMode(kled, OUTPUT);
lcd.createChar(0, customChar0);
lcd.createChar(1, customChar1);
lcd.createChar(2, customChar2);
lcd.createChar(3, customChar3);
lcd.createChar(4, customChar4);
lcd.createChar(5, customChar5);
lcd.createChar(6, customChar6);
lcd.createChar(7, customChar7);
lcd.createChar(8, customChar8);
lcd.createChar(9, customChar9);
lcd.begin(16, 2); // LCD BEGAN
lcd.clear(); //Clear screen
lcd.clear();
lcd.setCursor(1, 0);
lcd.print("AYLAS");//Clear screen
for (int i = 1; i <= 13; i++) //baslangic efecti
{
for (int k = 6; k <= 9; k++)
{
lcd.setCursor(i, 1); lcd.write((uint8_t)k);
delay(100);
}
}
lcd.clear();
lcd.setCursor(0, 0);
lcd.print("Hasan Aylas");
lcd.setCursor(0, 1);
lcd.print("SIFRELI KAPI");
delay(2000);
lcd.clear();
lcd.setCursor(0, 0);
lcd.print("SIFREYI GIRINIZ:");
Serial.begin(9600);
Serial.println("Hos geldiniz");
Serial.println("Sifreyi giriniz");
}
void loop() {
servo.write(0);
digitalWrite(kled,LOW);
digitalWrite(yled,LOW);
tus = tuss_takimi.getKey();
if (tus)
{
sifre1[i++] = tus;
lcd.setCursor(i, 1);
lcd.print("*");
digitalWrite(buzzer,HIGH);
delay(100);
digitalWrite(buzzer,LOW);//
}
if (i == 4)
{ delay(200);
char sifre[4] = {'3', '3', '3', '3'};
if ((strncmp(sifre1, sifre, 4) == 0))
{
lcd.clear();
lcd.setCursor(0, 0);
servo.write(180);
lcd.print("SIFRE DOGRU!");
digitalWrite(yled, HIGH);
digitalWrite(role,HIGH); // //röle pinine high veriyoruz böylece no com ucuna bağladığınız hattan akım geçmez, ama nc com ile bağlantı yaparsanız bu durumda akım geçer.
delay(2000); // 2 Saniye Bekle
digitalWrite(role, LOW); // röle pinine low veriyoruz böylece no com ucuna bağladığınız hattan akım geçer, ama nc com ile bağlantı yaparsanız bu durumda akım geçmez.
delay(2000);
digitalWrite(kled, LOW);
digitalWrite(buzzer, HIGH);
delay(100);
digitalWrite(buzzer, LOW);
delay(100);
digitalWrite(buzzer, HIGH);
delay(100);
digitalWrite(buzzer, LOW);
delay(1000);
lcd.clear();
lcd.setCursor(0, 0);
lcd.print("SIFREYI GIRINIZ");
i = 0;
}
else
{
lcd.clear();
lcd.setCursor(0, 0);
lcd.print("SIFRE YANLIS!!!");
digitalWrite(yled, LOW);
digitalWrite(kled, HIGH);
digitalWrite(buzzer, HIGH);
delay(1000);
digitalWrite(buzzer, LOW);
delay(1000);
lcd.clear();
lcd.setCursor(0, 0);
lcd.print("SIFREYI GIRINIZ"); //şifre :
i = 0;
}
}
}
Ardinio Hocam Youtube kanalana teşekkür edererim.
Helal olsun