#include <LiquidCrystal_I2C.h>
#include <ezButton.h>
LiquidCrystal_I2C LCD1 = LiquidCrystal_I2C(0x27, 20, 4);
LiquidCrystal_I2C LCD2 = LiquidCrystal_I2C(0x28, 20, 4);
int counter = 0;
int totalNumberofQuestions = 2;
int correctAnswerCount = 0;
int incorrectAnswerCount = 0;
ezButton optionA(33);
ezButton optionB(25);
ezButton optionC(19);
ezButton optionD(18);
bool allQuestionsAttempted = false;
// Questions and answers
const char* questions[] = {
"What is the capital of France?",
"Who painted the Mona Lisa?",
// Add more questions as needed
};
const char* options[][4] = {
{"A. Paris", "B. London", "C. Berlin", "D. Rome"},
{"A. Leonardo da Vinci", "B. Pablo Picasso", "C. Vincent van Gogh", "D. Michelangelo"},
// Add corresponding options for each question
};
const char* answers[] = {
"A. Paris" ,
"A. Leonardo da Vinci",
// Add corresponding options for each question
};
void setup() {
// put your setup code here, to run once:
Serial.begin(115200);
Serial.println("Hello, ESP32!");
optionA.setDebounceTime(25);
optionB.setDebounceTime(25);
optionC.setDebounceTime(25);
optionD.setDebounceTime(25);
initilizeLCD1();
initilizeLCD2();
LCD1.clear();
LCD2.clear();
}
void loop() {
optionA.loop();
optionB.loop();
optionC.loop();
optionD.loop();
if(counter > totalNumberofQuestions){
allQuestionsAttempted = true;
delay(1000);
LCD1.clear();
LCD2.clear();
}
if(!allQuestionsAttempted){
if (optionA.isPressed()) {
Serial.println("OPtion A");
// if(answers[counter] == options[counter][0]){
// correctAnswerCount++;
// }else{
// incorrectAnswerCount--;
// }
// counter++;
}else if(optionB.isPressed()){
Serial.println("OPtion B");
// if(answers[counter] == options[counter][1]){
// correctAnswerCount++;
// }else{
// incorrectAnswerCount--;
// }
// counter++;
}else if(optionC.isPressed()){
Serial.println("OPtion C");
// if(answers[counter] == options[counter][2]){
// correctAnswerCount++;
// }else{
// incorrectAnswerCount--;
// }
// counter++;
}else if(optionD.isPressed()){
Serial.println("OPtion D");
// if(answers[counter] == options[counter][3]){
// correctAnswerCount++;
// }else{
// incorrectAnswerCount--;
// }
// counter++;
}
displayQuestion(counter);
}else{
showResults();
}
delay(10);
}
void initilizeLCD1(){
LCD1.init();
LCD1.backlight();
LCD1.setCursor(2, 0);
LCD1.print("Welcome to");
LCD1.setCursor(4, 2);
LCD1.print("Project MCQ");
delay(1000);
}
void initilizeLCD2(){
LCD2.init();
LCD2.backlight();
LCD2.setCursor(5, 1);
LCD2.print("Setup Done!");
delay(1000);
}
void displayQuestion(int questionIndex) {
LCD1.setCursor(0, 0);
LCD1.print(questions[questionIndex]);
LCD2.setCursor(0, 0);
for (int i = 0; i < 4; i++) {
LCD2.print(options[questionIndex][i]);
LCD2.setCursor(0, i + 1);
}
}
void showResults(){
LCD1.setCursor(0,0);
LCD1.print("SCORE BOARD");
}