project that utilizes Arduino Code to control a small LCD screen. When i run it it does mot work. Can you please help me find error in code?
The code that I have so far, a picture of the board and some feedback that I have received but didn’t work when I implemented it. Is there an error in my code? Am I missing something?
The project involves entering a 16 digit pass code using two buttons and seeing various results on a small LCD screen. In its current state the introduction displays on the screen but pressing the buttons does nothing
Code that I have so far:
#include <LiquidCrystal.h> //the LC library
LiquidCrystal lcd(13, 12, 11, 10, 9, 8); // pin locations for the LCD
//set pins for the buttons int button[] = {5, 7};
int pressedButton = 2; //a variable to remember which button is being pressed. 2 is the value if no button is being pressed.
int counter = (0); //tracks which character of the password the user is on
int buttonSequence[16] = {0, 1, 1, 0, 0, 0, 0, 1, 0, 1, 1, 0, 1, 1, 0, 0}; //make an array of the characters that will be the password int digitsInCode = 16;
boolean programStart = false; //variable to tell the program whether or not to play the start sequence
// FUNCTIONS
//START SEQUENCE
void startSequence() {
lcd.clear(); //clear the display
lcd.setCursor(0, 0); //set the cursor to the 0,0 position (top left corner)
lcd.print("SECURITY"); //print SECURITY starting at that position lcd.setCursor(0, 1); //set the cursor to the 0,0 position (bottom left corner)
lcd.print("CHECK"); //print CHECK starting at that position delay(3000); //wait for 3 seconds
lcd.clear(); //clear the display
lcd.setCursor(0, 0); //set the cursor to the 0,0 position (top left corner)
int counter = (0);
}
//CHECK WHICH BUTTON IS PRESSED
int buttonCheck() {
//check if any buttons are being pressed if (digitalRead(button[0]) == LOW) { return 0;
} else if (digitalRead(button[1]) == LOW) { return 1;
} else {
return 2; //this will be the value for no button being pressed
}
}
//CORRECT PASSWORD SEQUENCE
void correctPass() {
lcd.setCursor(0, 1); lcd.print("Correct!");
delay(2000); lcd.clear();
lcd.setCursor(0, 0); lcd.print("CONGRATS"); lcd.setCursor(0, 1); lcd.print("YOU GOT IT RIGHT!");
}
//WRONG SEQUENCE
void wrongSequence() {
lcd.setCursor(0, 1); //move the cursor to the first space of the bottom row
lcd.print("Incorrect"); //print Incorrect at that position delay(3000); //wait for 3 seconds
programStart = false; //reset the program so that the start sequence will play again.
}
//
void setup() {
lcd.begin(16, 2); //tell the lcd library that we are using a display that is 16 characters wide and 2 characters high
lcd.clear(); //clear the display
//set the button pins as inputs pinMode(button[0], INPUT_PULLUP); pinMode(button[1], INPUT_PULLUP);
int counter = (0); //make a variable to count the correct characters entered by the user
}
void loop() {
if (programStart == false); { //if the password program hasn't started yet
startSequence(); //play the start sequence counter = 0; //reset the counter delay(1500); //wait a second and a half
programStart = true; //set programStart to true so that this sequence doesn't start again
}
lcd.setCursor(0, 0); //set the cursor to the 0,0 position (top left corner)
lcd.print("Enter Password:"); //print Enter Password: starting at that position
for (int i = 0; i <= counter; i++) {
while (programStart == true); //Loop until the program is false
pressedButton = buttonCheck(); //every loop check to see which button is pressed
if (pressedButton < 2) { //if a button is pressed... (2 means that no button is pressed)
lcd.setCursor(0, 1); //move the cursor to the first space of the bottom row
lcd.print(pressedButton); //print 0 at that position
if (pressedButton == buttonSequence[i]) { //if the button matches the button in the sequence
delay(250); //leave the 0 on for a moment lcd.clear();
break;
}
else { //if the wrong key is pressed wrongSequence();
break;
}
}
else { lcd.clear();
}
}
DescriptionIn this final assignment, the students will demonstrate their ability to apply two ma
Path finding involves finding a path from A to B. Typically we want the path to have certain properties,such as being the shortest or to avoid going t
Develop a program to emulate a purchase transaction at a retail store. Thisprogram will have two classes, a LineItem class and a Transaction class. Th
1 Project 1 Introduction - the SeaPort Project series For this set of projects for the course, we wish to simulate some of the aspects of a number of
1 Project 2 Introduction - the SeaPort Project series For this set of projects for the course, we wish to simulate some of the aspects of a number of