Here i'm trying to make a Home security system,but i want my screen to scroll text faster than it is.
Here take a look at my code:
#include <SPI.h>
#include <MFRC522.h>
#include <LiquidCrystal.h>
#define SS_PIN 53 //define RFID pins
#define RST_PIN 6 //define RFID pins
#define LED_G 5 //define green LED pin
#define LED_R 4 //define red LED
#define BUZZER 2//buzzer pin
#define RELAY 7 //Relay pin
#define blight 10 //Backlight pin
#define presistor A8 //Photoresisitor pin
#define button 10 //button pin
#define sbutton 2 // 2nd button pin
#define gled 30
#define rled 31
MFRC522 mfrc522(SS_PIN, RST_PIN); // Create MFRC522 instance.
LiquidCrystal lcd(12, 11, 38, 39, 40, 41); //define lcd pins
int value;
int buttonState = 0;
int val;
void setup()
{
Serial.begin(9600); // Initiate a serial communication
SPI.begin(); // Initiate SPI bus
mfrc522.PCD_Init(); // Initiate MFRC522
pinMode(LED_G, OUTPUT);
pinMode(LED_R, OUTPUT);
pinMode(BUZZER, OUTPUT);//setup that shit
pinMode(RELAY, OUTPUT);
pinMode(button, INPUT);
pinMode(sbutton, INPUT);
pinMode(gled, OUTPUT);
pinMode(rled, OUTPUT);
noTone(BUZZER);
Serial.println("Put your card to the reader...");
Serial.println();
lcd.begin(16, 2);
lcd.print(" Familija");
lcd.setCursor(0,1);
lcd.print(" Kosteski");
}
void loop() {
val = digitalRead(button); // read input value
if (val == HIGH) { // check if the input is HIGH (button released)
noTone(BUZZER); // turn LED OFF
digitalWrite(rled, HIGH);
digitalWrite(gled, LOW);
} else {
tone(BUZZER, 300); // turn LED ON
digitalWrite(gled, HIGH);
digitalWrite(rled, LOW);
}
val = digitalRead(button); // read input value
if (val == HIGH) { // check if the input is HIGH (button released)
digitalWrite(RELAY , LOW); // turn LED OFF
} else {
digitalWrite(RELAY, HIGH); // turn LED ON
lcd.clear();
lcd.print(" Vratata e");
lcd.setCursor(0,1);
lcd.print(" otklucena");
delay(4000);
digitalWrite(RELAY, LOW);
lcd.clear();
lcd.print(" Familija");
lcd.setCursor(0,1);
lcd.print(" Kosteski");
}
val = digitalRead(RELAY); // read input value
if (val == HIGH) { // check if the input is HIGH (button released)
digitalWrite(rled , HIGH); // turn LED OFF
digitalWrite(gled, LOW);
} else {
digitalWrite(gled, HIGH);
digitalWrite(rled, LOW);
}
if (value > 400) {
delay(2000);
digitalWrite(blight, LOW);
}
else {
delay(2000);
digitalWrite(blight, HIGH);
}
// Look for new cards
if ( ! mfrc522.PICC_IsNewCardPresent())
{
return;
}
// Select one of the cards
if ( ! mfrc522.PICC_ReadCardSerial())
{
return;
}
//Show UID on serial monitor
Serial.print("UID tag :");
String content= "";
byte letter;
for (byte i = 0; i < mfrc522.uid.size; i++)
{
Serial.print(mfrc522.uid.uidByte[i] < 0x10 ? " 0" : " ");
Serial.print(mfrc522.uid.uidByte[i], HEX);
content.concat(String(mfrc522.uid.uidByte[i] < 0x10 ? " 0" : " "));
content.concat(String(mfrc522.uid.uidByte[i], HEX));
}
Serial.println();
Serial.print("Message : ");
content.toUpperCase();
if (content.substring(1) == "A2 EF 39 D8") //change here the UID of the card/cards that you want to give access
{
Serial.println("Authorized access");
delay(500);
digitalWrite(LED_G, HIGH);
digitalWrite(rled, HIGH);
digitalWrite(RELAY, HIGH);
digitalWrite(gled, LOW);
tone(BUZZER, 500);
delay(300);
tone(BUZZER, 1000);
delay(1000);
noTone(BUZZER);
lcd.clear();
lcd.print(" Dobredojde");
lcd.setCursor(0, 1);
lcd.print(" Mama Lena");
delay(5000);
digitalWrite(LED_G, LOW);
digitalWrite(RELAY, LOW);
lcd.clear();
lcd.print(" Familija");
lcd.setCursor(0,1);
lcd.print(" Kosteski");
}
else if (content.substring(1) == "19 EE FB 28") //change here the UID of the card/cards that you want to give access
{
Serial.println("Authorized access");
delay(500);
digitalWrite(LED_G, HIGH);
digitalWrite(RELAY, HIGH);
digitalWrite(rled, HIGH);
digitalWrite(gled, LOW);
tone(BUZZER, 1000);
delay(1000);
noTone(BUZZER);
lcd.clear();
lcd.print(" Dobredojde");
lcd.setCursor(0, 1);
lcd.print(" Tato Zika");
delay(5000);
digitalWrite(LED_G, LOW);
digitalWrite(RELAY, LOW);
lcd.clear();
lcd.print(" Familija");
lcd.setCursor(0,1);
lcd.print(" Kosteski");
}
else {
Serial.println(" Access denied");
digitalWrite(LED_R, HIGH);
tone(BUZZER, 500);
delay(300);
tone(BUZZER, 100);
lcd.clear();
lcd.print("Nepoznata karta");
delay(1000);
digitalWrite(LED_R, LOW);
noTone(BUZZER);
lcd.clear();
lcd.print(" Familija");
lcd.setCursor(0,1);
lcd.print(" Kosteski");
}
}