LiquidCrystal lcd(8, 9, 10, 11, 12, 13);
#include <Keypad.h>
// Length of password + 1 for null character
#define Password_Length 7
// Character to hold password input
char Data[Password_Length];
// Password
char Master[Password_Length] = "148536";
// Counter for character entries
byte data_count = 0;
// Character to hold key input
char customKey;
// Constants for row and column sizes
const byte ROWS = 4;
const byte COLS = 4;
// Connections to Arduino
byte rowPins[ROWS] = {28, 30, 32, 34};
byte colPins[COLS] = {36, 38, 40, 42};
const int S1E=A8; ////////////////L1
const int S2E=A9; ////////////////L2
const int S3E=A10; ////////////////L3
const int S4E=A11; ////////////////L4
int S11E=0;
int S12E=0;
int S13E=0;
int S14E=0;
int S1Ealert=1;
int S2Ealert=1;
int S3Ealert=1;
int S4Ealert=1;
const int L1G=2; ////////////////L1-GREEN
const int L1O=3; ////////////////L1-ORANGE
const int L1R=4; ////////////////L1-RED
const int L2G=5; ////////////////L2-GREEN
const int L2O=6; ////////////////L2-ORANGE
const int L2R=7; ////////////////L2-RED
const int L3G=14; ////////////////L3-GREEN
const int L3O=15; ////////////////L3-ORANGE
const int L3R=16; ////////////////L3-RED
const int L4G=17; ////////////////L4-GREEN
const int L4O=18; ////////////////L4-ORANGE
const int L4R=19; ////////////////L4-RED
/*const int L1A=22; ////////////////L1-Stud Alert
const int L2A=23; ////////////////L2-Stud Alert
const int L3A=24; ////////////////L3-Stud Alert
const int L4A=25; ////////////////L4-Stud Alert */
// Array to represent keys on keypad
char hexaKeys[ROWS][COLS] = {
{'1', '2', '3', 'A'},
{'4', '5', '6', 'B'},
{'7', '8', '9', 'C'},
{'*', '0', '#', 'D'}
};
// Create keypad object
Keypad customKeypad = Keypad(makeKeymap(hexaKeys), rowPins, colPins, ROWS, COLS);
int aa=0;
void setup()
{
lcd.begin(16, 2);
pinMode(S1E, INPUT);
pinMode(S2E, INPUT);
pinMode(S3E, INPUT);
pinMode(S4E, INPUT);
pinMode(L1G, OUTPUT);
pinMode(L1O, OUTPUT);
pinMode(L1R, OUTPUT);
pinMode(L2G, OUTPUT);
pinMode(L2O, OUTPUT);
pinMode(L2R, OUTPUT);
pinMode(L3G, OUTPUT);
pinMode(L3O, OUTPUT);
pinMode(L3R, OUTPUT);
pinMode(L4G, OUTPUT);
pinMode(L4O, OUTPUT);
pinMode(L4R, OUTPUT);
lcd.setCursor(0,0);
lcd.print("ADVANCED TRAFFIC ");
lcd.setCursor(0,1);
lcd.print("LANE CONTROL SYS ");
delay(3000);
lcd.clear();
lcd.setCursor(0,0);
lcd.print(" DEVELOPED BY");
lcd.setCursor(0,1);
lcd.print(" U. RAMESH KUMAR");
//delay(3000);
digitalWrite(L1G, HIGH);digitalWrite(L1O, HIGH);digitalWrite(L1R, HIGH);//delay(10);
digitalWrite(L2G, HIGH);digitalWrite(L2O, HIGH);digitalWrite(L2R, HIGH);//delay(10);
digitalWrite(L3G, HIGH);digitalWrite(L3O, HIGH);digitalWrite(L3R, HIGH);//delay(10);
digitalWrite(L4G, HIGH);digitalWrite(L4O, HIGH);digitalWrite(L4R, HIGH);delay(1000);//delay(10);
digitalWrite(L1G, LOW);digitalWrite(L1O, LOW);digitalWrite(L1R, LOW);//delay(10);
digitalWrite(L2G, LOW);digitalWrite(L2O, LOW);digitalWrite(L2R, LOW);//delay(10);
digitalWrite(L3G, LOW);digitalWrite(L3O, LOW);digitalWrite(L3R, LOW);//delay(10);
digitalWrite(L4G, LOW);digitalWrite(L4O, LOW);digitalWrite(L4R, LOW);delay(2000);
//
lcd.clear();
lcd.setCursor(0,0);lcd.print(" NORMAL LANE ");
lcd.setCursor(0,1);
lcd.print(" MOVEMENT ACTIVE ");
}
void loop()
{
if(aa==0)
{
////////////////////////////////////////// FIRST LANE/////////////////////////////////////////////////////////
digitalWrite(L1R, LOW);digitalWrite(L1G, HIGH);digitalWrite(L2R, HIGH);digitalWrite(L3R, HIGH);digitalWrite(L4R, HIGH);delay(1000);
digitalWrite(L1G, LOW);digitalWrite(L1O, HIGH);delay(500);digitalWrite(L1O, LOW);digitalWrite(L1R, HIGH);
////////////////////////////////////////// second LANE/////////////////////////////////////////////////////////
digitalWrite(L2R, LOW);digitalWrite(L2G, HIGH);digitalWrite(L1R, HIGH);digitalWrite(L3R, HIGH);digitalWrite(L4R, HIGH);delay(1000);
digitalWrite(L2G, LOW);digitalWrite(L2O, HIGH);delay(500);digitalWrite(L2O, LOW);digitalWrite(L2R, HIGH);
////////////////////////////////////////// third LANE/////////////////////////////////////////////////////////
digitalWrite(L3R, LOW);digitalWrite(L3G, HIGH);digitalWrite(L2R, HIGH);digitalWrite(L1R, HIGH);digitalWrite(L4R, HIGH);delay(1000);
digitalWrite(L3G, LOW);digitalWrite(L3O, HIGH);delay(500);digitalWrite(L3O, LOW);digitalWrite(L3R, HIGH);
////////////////////////////////////////// Fourth LANE/////////////////////////////////////////////////////////
digitalWrite(L4R, LOW);digitalWrite(L4G, HIGH);digitalWrite(L2R, HIGH);digitalWrite(L3R, HIGH);digitalWrite(L1R, HIGH);delay(1000);
digitalWrite(L4G, LOW);digitalWrite(L4O, HIGH);delay(500);digitalWrite(L4O, LOW);digitalWrite(L4R, HIGH);
}
////////////////////////////////////////// cheking ambulance/////////////////////////////////////////////////////////
S1Ealert = digitalRead(S1E);if (S1Ealert == LOW){S11E=0;}else{S11E=1;}
S2Ealert = digitalRead(S2E);if (S2Ealert == LOW){S12E=0;}else{S12E=1;}
S3Ealert = digitalRead(S3E);if (S3Ealert == LOW){S13E=0;}else{S13E=1;}
S4Ealert = digitalRead(S4E);if (S4Ealert == LOW){S14E=0;}else{S14E=1;}
////////////////////////////////////////// cheking ambulance/////////////////////////////////////////////////////////
S1Ealert = digitalRead(S1E);if (S1Ealert == LOW){S11E=0;}else{S11E=1;}
S2Ealert = digitalRead(S2E);if (S2Ealert == LOW){S12E=0;}else{S12E=1;}
S3Ealert = digitalRead(S3E);if (S3Ealert == LOW){S13E=0;}else{S13E=1;}
S4Ealert = digitalRead(S4E);if (S4Ealert == LOW){S14E=0;}else{S14E=1;}
/////////////////////////////////////////NORMAL NO AMBULANCE//////////////////////////////////////////////////////////////////////////////////
if((S11E==1) & (S12E==1) & (S13E==1) & (S14E==1))
{aa=0;
lcd.clear();
lcd.setCursor(0,0);lcd.print(" NORMAL LANE ");
lcd.setCursor(0,1);
lcd.print(" MOVEMENT ACTIVE ");
}
//////////////////////////////////////////AMBULANCE COMING AT FIRST LANE/////////////////////////////////////////////////////////
if((S11E==0) & (S12E==1) & (S13E==1) & (S14E==1))
{
aa=1;
[b]
lcd.clear();
lcd.setCursor(0,0);
lcd.print("LANE CLEARANCE REQ ");
lcd.setCursor(0,1);
lcd.print("FOR LANE 1");
delay(2000);
lcd.clear();
lcd.setCursor(0,0);
lcd.print("ENTER PASSCODE ");[quote]Here is the problem[/quote]
[/b]
// Look for keypress
customKey = customKeypad.getKey();
if (customKey) {
// Enter keypress into array and increment counter
Data[data_count] = customKey;
lcd.setCursor(data_count, 1);
lcd.print(Data[data_count]);
data_count++;
}
// See if have reached the password length
if (data_count == Password_Length - 1) {
lcd.clear();
if (!strcmp(Data, Master)) {
// Password is correct
lcd.print("Correct");delay(2000);lcd.clear();
lcd.setCursor(0,0);lcd.print("FIRST LANE PASS");
digitalWrite(L1R, LOW);digitalWrite(L1G, HIGH);digitalWrite(L2R, HIGH);digitalWrite(L3R, HIGH);digitalWrite(L4R, HIGH); //digitalWrite(L1A, HIGH);
L1[0] = CRGB::Red; FastLED.setBrightness(64 );
FastLED.show();
delay(200);
L1[0] = CRGB::Blue;
FastLED.show();
delay(200);
/* L2[0] = CRGB::Yellow;
FastLED.show();
delay(200);*/
digitalWrite(L1G, LOW); //digitalWrite(L1A, LOW);
L1[0] = CRGB::Black;
FastLED.show();
}
else {
// Password is incorrect
lcd.print("Incorrect");
delay(1000);
}
// Clear data and LCD display
lcd.clear();
[quote][/quote]
}
}
It isn't showing 'ENTER PASSCODE' It is struck at LANE CLEARANCE REQ FOR LANE 1 sentence... I'm new to this forum.Please help...