// include the library code: #include #include // initialize the library by associating any needed LCD interface pin // with the arduino pin number it is connected to const int rs = 11; const int en = 10; const int d4 = 5; const int d5 = 4; const int d6 = 3; const int d7 = 2; unsigned long previousmillis = 0; const long interval = 5000; LiquidCrystal lcd(rs, en, d4, d5, d6, d7); int risposte = 0; String tuarisposta; void setup() { // set up the LCD's number of columns and rows: lcd.begin(16, 2); Serial.begin(9600); } void loop() { if (risposte == 0) { lcd.setCursor(0, 0); lcd.print("Benvenuto a il"); lcd.setCursor(0, 1); lcd.print("Milionario"); delay(3000); lcd.clear(); delay(2000); risposte++; } switch (risposte) { case 1: domanda0(); break; case 2: domanda1(); break; case 3: domanda2(); break; case 4: domanda3(); break; case 5: domanda4(); break; case 6: domanda5(); break; case 7: vinto(); break; } } void domanda0() { unsigned long currentmillis = millis(); lcd.clear(); lcd.print("Chi ha scoperto"); lcd.setCursor(0, 1); lcd.print("l'America?"); delay(2000); lcd.clear(); lcd.setCursor(0, 0); lcd.print(" A. Colombo"); delay(1500); lcd.clear(); lcd.print(" B. Magellano"); delay(1500); lcd.clear(); lcd.print(" C. Paperino"); delay(1500); lcd.clear(); lcd.print(" D. Dante"); delay(1500); lcd.clear(); previousmillis = currentmillis; while (Serial.available() == 0 and currentmillis - previousmillis <= interval) { } if (Serial.available() > 0 and currentmillis - previousmillis <= interval ) { tuarisposta = Serial.readString(); if (tuarisposta == 'A') { lcd.clear(); lcd.print(" risposta esatta"); Serial.print(tuarisposta); risposte++; lcd.clear(); } else { lcd.clear(); lcd.print(" risposta errata"); Serial.print(tuarisposta); risposte = 0; delay(2000); lcd.clear(); } } if (currentmillis - previousmillis > interval) { lcd.clear(); lcd.print(" risposta errata"); Serial.print(tuarisposta); risposte = 0; delay(2000); lcd.clear(); } } void domanda1() { unsigned long currentmillis = millis(); lcd.clear(); lcd.print("Chi ha scritto la "); lcd.setCursor(0, 1); lcd.print("Divina Commedia?"); delay(1500); lcd.setCursor(0, 0); lcd.print(" A. Manzoni C.Dante"); delay(1500); lcd.clear(); lcd.setCursor(0, 1); lcd.print(" B. Boccaccio D.Petrarca"); delay(1500); lcd.clear(); previousmillis = currentmillis; while (Serial.available() == 0 and currentmillis - previousmillis <= interval) { } if (Serial.available() > 0) { tuarisposta = Serial.readString(); if (tuarisposta == 'C') { lcd.clear(); lcd.setCursor(0, 1); lcd.print(" risposta esatta"); delay(2000); risposte++; lcd.clear(); } else { lcd.clear(); lcd.setCursor(0, 1); lcd.print(" risposta errata"); risposte = 0; delay(2000); lcd.clear(); } } if (currentmillis - previousmillis > interval) { lcd.clear(); lcd.setCursor(0, 1); lcd.print(" risposta errata"); risposte = 0; delay(2000); lcd.clear(); } } void domanda2() { unsigned long currentmillis = millis(); lcd.clear(); lcd.print("Chi ha vinto"); lcd.setCursor(0, 1); lcd.print("piu' palloni d'oro?"); delay(2000); lcd.setCursor(0, 0); lcd.print(" A. Ronaldo C.Platini"); lcd.setCursor(0, 1); lcd.print(" B. Messi D.Ibrahimovic"); delay(1500); lcd.clear(); previousmillis = currentmillis; while (Serial.available() == 0 and currentmillis - previousmillis <= interval) { } if (Serial.available() > 0) { tuarisposta = Serial.read(); if (tuarisposta == 'B') { lcd.clear(); lcd.print(" risposta esatta"); risposte++; lcd.clear(); } else { lcd.clear(); lcd.print(" risposta errata"); risposte = 0; delay(2000); lcd.clear(); } } if (currentmillis - previousmillis > interval) { lcd.clear(); lcd.print(" risposta errata"); Serial.println(tuarisposta); risposte = 0; delay(2000); lcd.clear(); } } void domanda3() { unsigned long currentmillis = millis(); lcd.clear(); lcd.print("Quanti anni ha"); lcd.setCursor(0, 1); lcd.print("Donald trump?"); delay(1500); lcd.setCursor(0, 0); lcd.print(" A. 70 C.73"); lcd.setCursor(0, 1); lcd.print(" B. 74 D.72"); delay(1500); lcd.clear(); previousmillis = currentmillis; while (Serial.available() == 0 and currentmillis - previousmillis <= interval) { } if (Serial.available() > 0) { tuarisposta = Serial.read(); if (tuarisposta == 'C') { lcd.clear(); lcd.setCursor(0, 1); lcd.print(" risposta esatta"); risposte++; lcd.clear(); } else { lcd.clear(); lcd.setCursor(0, 1); lcd.print(" risposta errata"); risposte = 0; delay(2000); lcd.clear(); } } else if (currentmillis - previousmillis > interval) { lcd.clear(); lcd.setCursor(0, 1); lcd.print(" risposta errata"); risposte = 0; delay(2000); lcd.clear(); } } void domanda4() { unsigned long currentmillis = millis(); lcd.clear(); lcd.print("Chi è l'uomo più"); lcd.setCursor(0, 1); lcd.print("veloce al mondo"); delay(2000); lcd.setCursor(0, 0); lcd.print(" A. Ronaldo C.Gesu'"); lcd.setCursor(0, 1); lcd.print(" B. Usain Bolt D.Giuda"); delay(1500); lcd.clear(); previousmillis = currentmillis; while (Serial.available() == 0 and currentmillis - previousmillis <= interval) { } if (Serial.available() > 0) { tuarisposta = Serial.read(); if (tuarisposta == 'B') { lcd.clear(); lcd.setCursor(0, 1); lcd.print(" risposta esatta"); risposte++; lcd.clear(); } else { lcd.clear(); lcd.setCursor(0, 1); lcd.print(" risposta errata"); risposte = 0; delay(2000); lcd.clear(); } } else if (currentmillis - previousmillis > interval) { lcd.clear(); lcd.setCursor(0, 1); lcd.print(" risposta errata"); risposte = 0; delay(2000); lcd.clear(); } } void domanda5() { unsigned long currentmillis = millis(); lcd.clear(); lcd.print("Quanti iscritti"); lcd.setCursor(0, 1); lcd.print("ha Cicciogamer89"); delay(2000); lcd.setCursor(0, 0); lcd.print(" A. 3mln C.4,2mln'"); lcd.setCursor(0, 1); lcd.print(" B. 1,09mln D.3.04mln"); delay(1500); lcd.clear(); previousmillis = currentmillis; while (Serial.available() == 0 and currentmillis - previousmillis <= interval) { } if (Serial.available() > 0) { tuarisposta = Serial.read(); if (tuarisposta == 'D') { lcd.clear(); lcd.print(" risposta esatta"); Serial.println(tuarisposta); risposte++; lcd.clear(); } else { lcd.clear(); lcd.print(" risposta errata"); Serial.println(tuarisposta); risposte = 0; delay(2000); lcd.clear(); } } if (currentmillis - previousmillis > interval) { lcd.clear(); lcd.print(" risposta errata"); Serial.println(tuarisposta); risposte = 0; delay(2000); lcd.clear(); } } void vinto() { lcd.clear(); delay(1500); lcd.setCursor(5, 0); lcd.print("Hai vinto"); risposte = 0; }