#include <liquidCrystal.h>
const int ledredpin = 9; // pino de cor vermelha com ~ const int ledbluepin = 10; // pino de cor azul com ~ const int ledGreenpin = 11; // pino de cor verde com ~
const int rs = 7, en = 6, d4 = 5, d5 = 4, d6 = 3, d7 = 2; Liquidcrystal lcd (rs, en, d4, d5, d6, d7);
const int buttonOk = 8; // pushbutton pin const int buttonless = 12; // pushbutton pin const int buttonmore = 13; // pino de pushbutton
int buttonstateok; int buttonstatemore; Int ButtonStatateless;
const Int Photosensorpinfirst = 0; // Pin de entrada analógico const int photosensorpInsecond = 1; // pino de entrada analógica
int lightlevelfirst; int LightLevelSegund;
Timestart de longa data não assinado; tempo de tempo muito não assinado = 0; Passagem de longo tempo não assinada; Timetempone longa não assinada; cronograma longo não assinado; bool isPaUsed = false;
bool isrunning = false; bool firstrun = true; int numberofpeople = 1; const char em branco [17] = {""};
void setup () {// LCD Setup Colums/linhas lcd.begin (16, 2); lcd.print ("Welcome"); // pushButtons Pin entradas pinmode (buttonok, entrada); pinmode (buttonmore, entrada); pinmode (sem botão, entrada);
// Saídas do pino LED Pinmode (LEDREDPIN, saída); pinmode (ledbluepin, saída); pinmode (ledGreenpin, saída);
}
void loop () {sensorReadings ();
if (buttonStateok == High && firstrun) {isrunning = true; } if (isrunning) {modeselection ();
}
displayswitch (1); if (buttonStateok == High &&! Isrunning) {theEnd (); }
}
void thend () {timePassed = millis () -timeStart -TimePaUsed; timeTEMPONE = millis ()-timeStart; horário de tempo = TimePassed/timeTemPone; cronograma de cronograma *= 100; displayswitch (2);
if (cronogrameppwo <= 40) {digitalWrite (ledredpin, alto);
} if (timetemptwo> 40 && timetemptwo <70) {DigitalWrite (Ledbluepin, alto);
} if (timetemptwo> = 70) {DigitalWrite (ledGreenpin, alto);
}} void SensorReadings () {ButtonStateok = DigitalRead (ButtonOk); ButtonStatemore = DigitalRead (Buttonmore); ButtonStatateless = DigitalRead (sem botão); LightLeVelfirst = analogread (photosensorpinfirst); LightLevelSecond = analogread (PhotosensorPinsecond); }
Void checkLight () {if (LightLeVelfirst> = 800 &&! ISPAUSED) {paUseevent (isPaUsed);
isPaused = true;
} else {if (LightLeVelfirst <800) {Pauseevent (ISPAUSED); isPaUsed = false; }
} if (LightLevelSecond> = 800 &&! ISPAUSED) {paUseevent (ISPAUSED);
isPaused = true;
} else {if (LightLevelSecond <800) {Pauseevent (ISPAUSED); isPaUsed = false; }
}} void pauseevent (bool ispaused) {if (ispaUsed) {timetemptwo = millis ();
timePaused += timeTempTwo-timeTempOne;
} else {timeTemPone = millis (); }
}
void Displayswitch (Int Mode) {char temp [] = ""; switch (modo) {case 0:
lcd.setCursor (0,0); //lcd.print(blank); lcd.print ("Número do jogador:");
lcd.setCursor (0,1); // lcd.print (em branco); lcd.print (número de pessoas); lcd.display (); quebrar;
case 1:
lcd.setCursor(0,0);
//lcd.print(blank);
lcd.print("Time Passed:");
lcd.setCursor(0,1);
// lcd.print (em branco); lcd.print (millis ()-timeStart); lcd.display (); quebrar;
case 2:
lcd.setCursor(0,0);
//lcd.print(blank);
lcd.print("Success Rate:");
lcd.setCursor(0,1);
// lcd.print (em branco); lcd.print (TimePassed); lcd.display (); quebrar;
default:
lcd.setCursor(0,0);
// lcd.print (em branco); lcd.setCursor (0,1); // lcd.print (em branco); lcd.display (); }
}
Void LightShow () {DigitalWrite (Ledredpin, High); atraso (100); DigitalWrite (LedGreenpin, alto); atraso (100); DigitalWrite (Ledbluepin, alto); atraso (100); DigitalWrite (Ledredpin, Low); atraso (100); DigitalWrite (LedGreenpin, Low); atraso (100); DigitalWrite (Ledbluepin, baixo);
}
Void modeselection () {
if(firstRun)
{
lightShow();
firstRun= false;
}
do {displayswitch (0); if (buttonStatemore == High && Numberofpeople <7) {número de pessoas ++; }
if(buttonStateLess == HIGH && numberOfPeople>1)
{
numberOfPeople--;
}
if(buttonStateOk == HIGH)
{
isRunning=false;
timeStart = millis();
}
} while (isrunning);
}