#include <IRremote.h>
#include <LiquidCrystal_I2C.h>
#include <Servo.h>
#define PIN_RECEIVER 2 // Signal Pin of IR receiver
IRrecv receiver(PIN_RECEIVER);
LiquidCrystal_I2C lcd_1(0x27,16,2);
LiquidCrystal_I2C lcd_2(0x26,16,2);
Servo servo1;
Servo servo2;
int acik=0;
int yatir=1;
float param=0;
void setup()
{
lcd_1.init();
lcd_2.init();
lcd_1.backlight();
lcd_2.backlight();
servo1.attach(3);
servo2.attach(5);
servo1.write(180);
servo2.write(90);
pinMode(4, OUTPUT);
pinMode(6, OUTPUT);
pinMode(7, OUTPUT);
pinMode(22, OUTPUT);
pinMode(23, OUTPUT);
pinMode(24, OUTPUT);
pinMode(25, OUTPUT);
pinMode(26, OUTPUT);
pinMode(27, OUTPUT);
pinMode(28, OUTPUT);
pinMode(29, OUTPUT);
pinMode(30, OUTPUT);
pinMode(31, OUTPUT);
pinMode(32, OUTPUT);
pinMode(33, OUTPUT);
pinMode(34, OUTPUT);
pinMode(35, OUTPUT);
pinMode(36, OUTPUT);
pinMode(37, OUTPUT);
pinMode(38, OUTPUT);
pinMode(39, OUTPUT);
pinMode(40, OUTPUT);
pinMode(41, OUTPUT);
receiver.enableIRIn(); // Start the receiver
lcd_2.setCursor(0,0);
Serial.begin(9600);
}
void loop()
{
// Checks received an IR signal
if (receiver.decode()) {
translateIR();
receiver.resume(); // Receive the next value
}
lcd_2.setCursor(0,0);
lcd_2.print(param);
lcd_2.setCursor(10,0);
lcd_2.print("TL");
if(param>=50){
digitalWrite(22, HIGH);
}
else{
digitalWrite(22, LOW);
}
if(param>=100){
digitalWrite(23, HIGH);
}
else{
digitalWrite(23, LOW);
}
if(param>=150){
digitalWrite(24, HIGH);
}
else{
digitalWrite(24, LOW);
}
if(param>=200){
digitalWrite(25, HIGH);
}
else{
digitalWrite(25, LOW);
}
if(param>=250){
digitalWrite(26, HIGH);
}
else{
digitalWrite(26, LOW);
}
if(param>=300){
digitalWrite(27, HIGH);
}
else{
digitalWrite(27, LOW);
}
if(param>=350){
digitalWrite(28, HIGH);
}
else{
digitalWrite(28, LOW);
}
if(param>=400){
digitalWrite(29, HIGH);
}
else{
digitalWrite(29, LOW);
}
if(param>=450){
digitalWrite(30, HIGH);
}
else{
digitalWrite(30, LOW);
}
if(param>=500){
digitalWrite(31, HIGH);
}
else{
digitalWrite(31, LOW);
}
if(param>=550){
digitalWrite(32, HIGH);
}
else{
digitalWrite(32, LOW);
}
if(param>=600){
digitalWrite(33, HIGH);
}
else{
digitalWrite(33, LOW);
}
if(param>=650){
digitalWrite(34, HIGH);
}
else{
digitalWrite(34, LOW);
}
if(param>=700){
digitalWrite(35, HIGH);
}
else{
digitalWrite(35, LOW);
}
if(param>=750){
digitalWrite(36, HIGH);
}
else{
digitalWrite(36, LOW);
}
if(param>=800){
digitalWrite(37, HIGH);
}
else{
digitalWrite(37, LOW);
}
if(param>=850){
digitalWrite(38, HIGH);
}
else{
digitalWrite(38, LOW);
}
if(param>=900){
digitalWrite(39, HIGH);
}
else{
digitalWrite(39, LOW);
}
if(param>=950){
digitalWrite(40, HIGH);
}
else{
digitalWrite(40, LOW);
}
if(param>=1000){
digitalWrite(41, HIGH);
}
else{
digitalWrite(41, LOW);
}
if(yatir==1){
digitalWrite(6, HIGH);
digitalWrite(7, LOW);
}
if(yatir==0){
digitalWrite(6, LOW);
digitalWrite(7, HIGH);
}
}
void translateIR()
{
// Takes command based on IR code received
switch (receiver.decodedIRData.command)
{
case 162:
if(acik==0){
if(digitalRead(8)==1 && digitalRead(9)==1 && digitalRead(10)==1 && digitalRead(11)==1){
acik=1;
digitalWrite(4, HIGH);
delay(100);
lcd_1.setCursor(0,0);
lcd_1.print("OPEN");
delay(1000);
lcd_1.clear();
lcd_1.setCursor(0,0);
lcd_1.print("Welcome to Bank!");
delay(1500);
lcd_1.clear();
break;
}
}
if(acik==1){
acik=0;
digitalWrite(4, LOW);
delay(100);
lcd_1.setCursor(0,0);
lcd_1.print("CLOSE");
delay(1000);
lcd_1.clear();
lcd_1.setCursor(0,0);
lcd_1.print("Come Back Soon!");
delay(1500);
lcd_1.clear();
break;
}
break;
case 226:
break;
case 34:
break;
case 2:
if(acik==1){
yatir=1;
}
break;
case 194:
break;
case 224:
break;
case 168:
break;
case 144:
break;
case 104:
break;
case 152:
if(acik==1){
yatir=0;
}
break;
case 176:
break;
case 48:
if(acik==1 && yatir==1){
param=param+0.25;
servo1.write(90);
lcd_1.setCursor(0,0);
lcd_1.print("Sweet Money :)");
delay(3000);
lcd_1.clear();
servo1.write(180);
}
if(acik==1 && yatir==0){
param=param-0.25;
lcd_1.setCursor(0,0);
lcd_1.print("-0.25");
delay(3000);
lcd_1.clear();
servo2.write(0);
for(int i=10;i>0;i--){
lcd_1.print(i);
delay(1000);
lcd_1.clear();
}
servo2.write(90);
}
break;
case 24:
if(acik==1 && yatir==1){
param=param+0.50;
servo1.write(90);
lcd_1.setCursor(0,0);
lcd_1.print("Sweet Money :)");
delay(3000);
lcd_1.clear();
servo1.write(180);
}
if(acik==1 && yatir==0){
param=param-0.50;
lcd_1.setCursor(0,0);
lcd_1.print("-0.50");
delay(3000);
lcd_1.clear();
servo2.write(0);
for(int i=10;i>0;i--){
lcd_1.print(i);
delay(1000);
lcd_1.clear();
}
servo2.write(90);
}
break;
case 122:
if(acik==1 && yatir==1){
param=param+1.00;
servo1.write(90);
lcd_1.setCursor(0,0);
lcd_1.print("Sweet Money :)");
delay(3000);
lcd_1.clear();
servo1.write(180);
}
if(acik==1 && yatir==0){
param=param-1.00;
lcd_1.setCursor(0,0);
lcd_1.print("-1.00");
delay(3000);
lcd_1.clear();
servo2.write(0);
for(int i=10;i>0;i--){
lcd_1.print(i);
delay(1000);
lcd_1.clear();
}
servo2.write(90);
}
break;
case 16:
if(acik==1 && yatir==1){
param=param+5.00;
servo1.write(90);
lcd_1.setCursor(0,0);
lcd_1.print("Sweet Money :)");
delay(3000);
lcd_1.clear();
servo1.write(180);
}
if(acik==1 && yatir==0){
param=param-5.00;
lcd_1.setCursor(0,0);
lcd_1.print("-5.00");
delay(3000);
lcd_1.clear();
servo2.write(0);
for(int i=10;i>0;i--){
lcd_1.print(i);
delay(1000);
lcd_1.clear();
}
servo2.write(90);
}
break;
case 56:
if(acik==1 && yatir==1){
param=param+10.00;
servo1.write(90);
lcd_1.setCursor(0,0);
lcd_1.print("Sweet Money :)");
delay(3000);
lcd_1.clear();
servo1.write(180);
}
if(acik==1 && yatir==0){
param=param-10.00;
lcd_1.setCursor(0,0);
lcd_1.print("-10.00");
delay(3000);
lcd_1.clear();
servo2.write(0);
for(int i=10;i>0;i--){
lcd_1.print(i);
delay(1000);
lcd_1.clear();
}
servo2.write(90);
}
break;
case 90:
if(acik==1 && yatir==1){
param=param+20.00;
servo1.write(90);
lcd_1.setCursor(0,0);
lcd_1.print("Sweet Money :)");
delay(3000);
lcd_1.clear();
servo1.write(180);
}
if(acik==1 && yatir==0){
param=param-20.00;
lcd_1.setCursor(0,0);
lcd_1.print("-20.00");
delay(3000);
lcd_1.clear();
servo2.write(0);
for(int i=10;i>0;i--){
lcd_1.print(i);
delay(1000);
lcd_1.clear();
}
servo2.write(90);
}
break;
case 66:
if(acik==1 && yatir==1){
param=param+50.00;
servo1.write(90);
lcd_1.setCursor(0,0);
lcd_1.print("Sweet Money :)");
delay(3000);
lcd_1.clear();
servo1.write(180);
}
if(acik==1 && yatir==0){
param=param-50.00;
lcd_1.setCursor(0,0);
lcd_1.print("-50.00");
delay(3000);
lcd_1.clear();
servo2.write(0);
for(int i=10;i>0;i--){
lcd_1.print(i);
delay(1000);
lcd_1.clear();
}
servo2.write(90);
}
break;
case 74:
if(acik==1 && yatir==1){
param=param+100.00;
servo1.write(90);
lcd_1.setCursor(0,0);
lcd_1.print("Sweet Money :)");
delay(3000);
lcd_1.clear();
servo1.write(180);
}
if(acik==1 && yatir==0){
param=param-100.00;
lcd_1.setCursor(0,0);
lcd_1.print("-100.00");
delay(3000);
lcd_1.clear();
servo2.write(0);
for(int i=10;i>0;i--){
lcd_1.print(i);
delay(1000);
lcd_1.clear();
}
servo2.write(90);
}
break;
case 82:
if(acik==1 && yatir==1){
param=param+200.00;
servo1.write(90);
lcd_1.setCursor(0,0);
lcd_1.print("Sweet Money :)");
delay(3000);
lcd_1.clear();
servo1.write(180);
}
if(acik==1 && yatir==0){
param=param-200.00;
lcd_1.setCursor(0,0);
lcd_1.print("-200.00");
delay(3000);
lcd_1.clear();
servo2.write(0);
for(int i=10;i>0;i--){
lcd_1.print(i);
delay(1000);
lcd_1.clear();
}
servo2.write(90);
}
break;
default:
break;
}
}