#include<Keypad.h>
#include<Servo.h>
const byte ROWS=4;
const byte COLS=4;
int IR_PIN=13;
int IR_VCC=12;
int SERVO=11;
int REDLED=10;
int WHITELED=9;
int irvalue;
Servo motor1;
char hexaKeys[ROWS][COLS] = {
{'1','2','3','A'},
{'4','5','6','B'},
{'7','8','9','C'},
{'*','0','#','D'}
};
byte rowPins[ROWS]={5,4,3,2};
byte colPins[COLS]={A0,A1,A2,A3};
Keypad customKeypad = Keypad( makeKeymap(hexaKeys), rowPins, colPins,ROWS,COLS);
void setup() {
Serial.begin(9600);
pinMode(IR_PIN,INPUT);
pinMode(IR_VCC,OUTPUT);
pinMode(REDLED,OUTPUT);
pinMode(WHITELED,OUTPUT);
motor1.attach(SERVO);
}
void loop() {
char customkeypad=customKeypad.getKey();
if(customkeypad){
switch(customkeypad){
case '1':
Serial.println("Activating IR Sensor...");
digitalWrite(IR_VCC,HIGH);
irvalue=digitalRead(IR_PIN);
if(irvalue==1){
Serial.println("Value:0/LOW");
}
else{
Serial.println("Value:1/HIGH");
}
delay(1000);
break;
case '2':
Serial.println("Deactivating IR Sensor...");
digitalWrite(IR_VCC,LOW);
delay(1000);
break;
case 'A':
digitalWrite(REDLED,HIGH);
break;
case 'B':
digitalWrite(REDLED,LOW);
break;
case 'C':
digitalWrite(WHITELED,HIGH);
break;
case 'D':
digitalWrite(WHITELED,LOW);
break;
case '8':
Serial.println("Rotating servo to 180...");
delay(500);
motor1.write(180);
break;
case '9':
Serial.println("Rotating servo to 90...");
delay(500);
motor1.write(90);
break;
case '3':
Serial.println("Rotating servo to 0...");
delay(500);
motor1.write(0);
break;
default:
Serial.println("Press a key");
delay(1000);
}
}
}