Facebook
From Thundering Parakeet, 3 Years ago, written in Plain Text.
Embed
Download Paste or View Raw
Hits: 133
  1. // include the library code:
  2. #include <LiquidCrystal.h>
  3. #include <EEPROM.h>
  4.  
  5.  
  6. // initialize the library by associating any needed LCD interface pin
  7. // with the arduino pin number it is connected to
  8. const int rs = 11;
  9. const int en = 10;
  10. const int d4 = 5;
  11. const int d5 = 4;
  12. const int d6 = 3;
  13. const int d7 = 2;
  14. unsigned long previousmillis = 0;
  15. const long interval = 5000;
  16. LiquidCrystal lcd(rs, en, d4, d5, d6, d7);
  17. int risposte = 0;
  18. String tuarisposta;
  19.  
  20. void setup() {
  21.   // set up the LCD's number of columns and rows:
  22.   lcd.begin(16, 2);
  23.   Serial.begin(9600);
  24. }
  25.  
  26. void loop() {
  27.   if (risposte == 0) {
  28.     lcd.setCursor(0, 0);
  29.     lcd.print("Benvenuto a il");
  30.     lcd.setCursor(0, 1);
  31.     lcd.print("Milionario");
  32.     delay(3000);
  33.     lcd.clear();
  34.     delay(2000);
  35.     risposte++;
  36.   }
  37.   switch (risposte) {
  38.     case 1:
  39.       domanda0();
  40.       break;
  41.     case 2:
  42.       domanda1();
  43.       break;
  44.     case 3:
  45.       domanda2();
  46.       break;
  47.     case 4:
  48.       domanda3();
  49.       break;
  50.     case 5:
  51.       domanda4();
  52.       break;
  53.     case 6:
  54.       domanda5();
  55.       break;
  56.     case 7:
  57.       vinto();
  58.       break;
  59.   }
  60. }
  61.  
  62.  
  63.  
  64. void domanda0() {
  65.   unsigned long currentmillis = millis();
  66.   lcd.clear();
  67.   lcd.print("Chi ha scoperto");
  68.   lcd.setCursor(0, 1);
  69.   lcd.print("l'America?");
  70.   delay(2000);
  71.   lcd.clear();
  72.   lcd.setCursor(0, 0);
  73.   lcd.print(" A. Colombo");
  74.   delay(1500);
  75.   lcd.clear();
  76.   lcd.print(" B. Magellano");
  77.   delay(1500);
  78.   lcd.clear();
  79.   lcd.print(" C. Paperino");
  80.   delay(1500);
  81.   lcd.clear();
  82.   lcd.print(" D. Dante");
  83.   delay(1500);
  84.   lcd.clear();
  85.   previousmillis = currentmillis;
  86.   while (Serial.available() == 0 and currentmillis - previousmillis <= interval) {
  87.   }
  88.   if (Serial.available() > 0 and currentmillis - previousmillis <= interval ) {
  89.     tuarisposta = Serial.readString();
  90.     if (tuarisposta == 'A') {
  91.       lcd.clear();
  92.       lcd.print(" risposta esatta");
  93.       Serial.print(tuarisposta);
  94.       risposte++;
  95.       lcd.clear();
  96.     }
  97.     else {
  98.       lcd.clear();
  99.       lcd.print(" risposta errata");
  100.       Serial.print(tuarisposta);
  101.       risposte = 0;
  102.       delay(2000);
  103.       lcd.clear();
  104.     }
  105.   }
  106.   if (currentmillis - previousmillis > interval) {
  107.     lcd.clear();
  108.     lcd.print(" risposta errata");
  109.     Serial.print(tuarisposta);
  110.     risposte = 0;
  111.     delay(2000);
  112.     lcd.clear();
  113.   }
  114. }
  115.  
  116.  
  117.  
  118. void domanda1() {
  119.   unsigned long currentmillis = millis();
  120.   lcd.clear();
  121.   lcd.print("Chi ha scritto la ");
  122.   lcd.setCursor(0, 1);
  123.   lcd.print("Divina Commedia?");
  124.   delay(1500);
  125.   lcd.setCursor(0, 0);
  126.   lcd.print(" A. Manzoni  C.Dante");
  127.   delay(1500);
  128.   lcd.clear();
  129.   lcd.setCursor(0, 1);
  130.   lcd.print(" B. Boccaccio  D.Petrarca");
  131.   delay(1500);
  132.   lcd.clear();
  133.   previousmillis = currentmillis;
  134.   while (Serial.available() == 0 and currentmillis - previousmillis <= interval) {
  135.   }
  136.   if (Serial.available() > 0) {
  137.     tuarisposta = Serial.readString();
  138.     if (tuarisposta == 'C') {
  139.       lcd.clear();
  140.       lcd.setCursor(0, 1);
  141.       lcd.print(" risposta esatta");
  142.       delay(2000);
  143.       risposte++;
  144.       lcd.clear();
  145.     }
  146.     else {
  147.       lcd.clear();
  148.       lcd.setCursor(0, 1);
  149.       lcd.print(" risposta errata");
  150.       risposte = 0;
  151.       delay(2000);
  152.       lcd.clear();
  153.     }
  154.   }
  155.   if (currentmillis - previousmillis > interval) {
  156.     lcd.clear();
  157.     lcd.setCursor(0, 1);
  158.     lcd.print(" risposta errata");
  159.     risposte = 0;
  160.     delay(2000);
  161.     lcd.clear();
  162.   }
  163. }
  164.  
  165. void domanda2() {
  166.   unsigned long currentmillis = millis();
  167.   lcd.clear();
  168.   lcd.print("Chi ha vinto");
  169.   lcd.setCursor(0, 1);
  170.   lcd.print("piu' palloni d'oro?");
  171.   delay(2000);
  172.   lcd.setCursor(0, 0);
  173.   lcd.print(" A. Ronaldo  C.Platini");
  174.   lcd.setCursor(0, 1);
  175.   lcd.print(" B. Messi  D.Ibrahimovic");
  176.   delay(1500);
  177.   lcd.clear();
  178.   previousmillis = currentmillis;
  179.   while (Serial.available() == 0 and currentmillis - previousmillis <= interval) {
  180.   }
  181.   if (Serial.available() > 0) {
  182.     tuarisposta = Serial.read();
  183.     if (tuarisposta == 'B') {
  184.       lcd.clear();
  185.       lcd.print(" risposta esatta");
  186.       risposte++;
  187.       lcd.clear();
  188.     }
  189.     else {
  190.       lcd.clear();
  191.       lcd.print(" risposta errata");
  192.       risposte = 0;
  193.       delay(2000);
  194.       lcd.clear();
  195.     }
  196.   }
  197.   if (currentmillis - previousmillis > interval) {
  198.     lcd.clear();
  199.     lcd.print(" risposta errata");
  200.     Serial.println(tuarisposta);
  201.     risposte = 0;
  202.     delay(2000);
  203.     lcd.clear();
  204.   }
  205. }
  206. void domanda3() {
  207.   unsigned long currentmillis = millis();
  208.   lcd.clear();
  209.   lcd.print("Quanti anni ha");
  210.   lcd.setCursor(0, 1);
  211.   lcd.print("Donald trump?");
  212.   delay(1500);
  213.   lcd.setCursor(0, 0);
  214.   lcd.print(" A. 70  C.73");
  215.   lcd.setCursor(0, 1);
  216.   lcd.print(" B. 74  D.72");
  217.   delay(1500);
  218.   lcd.clear();
  219.   previousmillis = currentmillis;
  220.   while (Serial.available() == 0 and currentmillis - previousmillis <= interval) {
  221.   }
  222.   if (Serial.available() > 0) {
  223.     tuarisposta = Serial.read();
  224.     if (tuarisposta == 'C') {
  225.       lcd.clear();
  226.       lcd.setCursor(0, 1);
  227.       lcd.print(" risposta esatta");
  228.       risposte++;
  229.       lcd.clear();
  230.     }
  231.     else {
  232.       lcd.clear();
  233.       lcd.setCursor(0, 1);
  234.       lcd.print(" risposta errata");
  235.       risposte = 0;
  236.       delay(2000);
  237.       lcd.clear();
  238.     }
  239.   }
  240.   else if (currentmillis - previousmillis > interval) {
  241.     lcd.clear();
  242.     lcd.setCursor(0, 1);
  243.     lcd.print(" risposta errata");
  244.     risposte = 0;
  245.     delay(2000);
  246.     lcd.clear();
  247.   }
  248. }
  249. void domanda4() {
  250.   unsigned long currentmillis = millis();
  251.   lcd.clear();
  252.   lcd.print("Chi è l'uomo più");
  253.   lcd.setCursor(0, 1);
  254.   lcd.print("veloce al mondo");
  255.   delay(2000);
  256.   lcd.setCursor(0, 0);
  257.   lcd.print(" A. Ronaldo      C.Gesu'");
  258.   lcd.setCursor(0, 1);
  259.   lcd.print("    B. Usain Bolt        D.Giuda");
  260.   delay(1500);
  261.   lcd.clear();
  262.   previousmillis = currentmillis;
  263.   while (Serial.available() == 0 and currentmillis - previousmillis <= interval) {
  264.   }
  265.   if (Serial.available() > 0) {
  266.     tuarisposta = Serial.read();
  267.     if (tuarisposta == 'B') {
  268.       lcd.clear();
  269.       lcd.setCursor(0, 1);
  270.       lcd.print(" risposta esatta");
  271.       risposte++;
  272.       lcd.clear();
  273.     }
  274.     else {
  275.       lcd.clear();
  276.       lcd.setCursor(0, 1);
  277.       lcd.print(" risposta errata");
  278.       risposte = 0;
  279.       delay(2000);
  280.       lcd.clear();
  281.     }
  282.   }
  283.   else if (currentmillis - previousmillis > interval) {
  284.     lcd.clear();
  285.     lcd.setCursor(0, 1);
  286.     lcd.print(" risposta errata");
  287.     risposte = 0;
  288.     delay(2000);
  289.     lcd.clear();
  290.   }
  291. }
  292.  
  293. void domanda5() {
  294.   unsigned long currentmillis = millis();
  295.   lcd.clear();
  296.   lcd.print("Quanti iscritti");
  297.   lcd.setCursor(0, 1);
  298.   lcd.print("ha Cicciogamer89");
  299.   delay(2000);
  300.   lcd.setCursor(0, 0);
  301.   lcd.print(" A. 3mln      C.4,2mln'");
  302.   lcd.setCursor(0, 1);
  303.   lcd.print("    B. 1,09mln        D.3.04mln");
  304.   delay(1500);
  305.   lcd.clear();
  306.   previousmillis = currentmillis;
  307.   while (Serial.available() == 0 and currentmillis - previousmillis <= interval) {
  308.   }
  309.   if (Serial.available() > 0) {
  310.     tuarisposta = Serial.read();
  311.     if (tuarisposta == 'D') {
  312.       lcd.clear();
  313.       lcd.print(" risposta esatta");
  314.       Serial.println(tuarisposta);
  315.       risposte++;
  316.       lcd.clear();
  317.     }
  318.     else {
  319.       lcd.clear();
  320.       lcd.print(" risposta errata");
  321.       Serial.println(tuarisposta);
  322.       risposte = 0;
  323.       delay(2000);
  324.       lcd.clear();
  325.     }
  326.   }
  327.   if (currentmillis - previousmillis > interval) {
  328.     lcd.clear();
  329.     lcd.print(" risposta errata");
  330.     Serial.println(tuarisposta);
  331.     risposte = 0;
  332.     delay(2000);
  333.     lcd.clear();
  334.   }
  335. }
  336.  
  337. void vinto() {
  338.   lcd.clear();
  339.   delay(1500);
  340.   lcd.setCursor(5, 0);
  341.   lcd.print("Hai vinto");
  342.   risposte = 0;
  343.  
  344. }