#include <LiquidCrystal.h>
const int lededpin = 9; // 〜const int ledbluepin = 10; //青色のピン付き〜const int int ledgreenpin = 11; //緑色のピンと〜
const int rs = 7、en = 6、d4 = 5、d5 = 4、d6 = 3、d7 = 2; Liquid -Crystal LCD(RS、EN、D4、D5、D6、D7);
const int buttonok = 8; // pushbutton pin const int buttonless = 12; // pushbutton pin const int buttonmore = 13; // pushbutton pin
int buttonStateok; int buttonStatemore; int buttonStatoless;
const int int fhotosensorpinfirst = 0; //アナログ入力ピンconst int phohodensorpinsecond = 1; //アナログ入力ピン
int lightlevelfirst; int lightlevelsecond;
署名されていない長いタイムスタート。署名されていない長い時計= 0;署名されていない長い時期型;署名されていない長いタイムテンポン;署名されていない長い時期宣言。 bool ispaused = false;
bool isrunning = false; bool firstrun = true; int numberofpeople = 1; const char blank [17] = {""};
void setup(){// lcd setup colums/rows lcd.begin(16、2); lcd.print( "welcome"); // pushButtons PIN入力PinMode(buttonok、input); PinMode(ButtonMore、input); PinMode(ボタンレス、入力);
// LED PIN出力PinMode(LEDREDPIN、出力); PinMode(LEDBLUEPIN、出力); PinMode(LedGreenpin、出力);
}
void loop(){sensorreadings();
if(buttonStateok == high && firstrun){isrunning = true; } if(isrunning){modeselection();
}
displayswitch(1); if(buttonStateok == high &&!isrunning){theend(); }
}
void theend(){Timepassed = millis() - Timestart -Timepaused; TimeTempone = millis() - Timestart; TimeTemptwo = Timepassed/TimeTempone; TimeTemptwo *= 100; displayswitch(2);
if(timeTemptwo <= 40){digitalwrite(ledredpin、high);
} if(timeTemptwo> 40 && timeTemptwo <70){digitalWrite(LEDBLUEPIN、HIGH);
} if(timeTemptwo> = 70){digitalWrite(ledgreenpin、high);
}} void sensorReadings(){buttonStateok = digitalRead(buttonok); ButtonStateMore = DigitalRead(ButtonMore); ButtonStateLesse = DigitalRead(ButtonLess); lightlevelfirst = alalogread(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(mode){ケース0:
lcd.setcursor(0,0); //lcd.print(blank); lcd.print( "player number:");
lcd.setcursor(0,1); // lcd.print(blank); lcd.print(numberofpeople); lcd.display();壊す;
case 1:
lcd.setCursor(0,0);
//lcd.print(blank);
lcd.print("Time Passed:");
lcd.setCursor(0,1);
// lcd.print(blank); lcd.print(millis() - timestart); lcd.display();壊す;
case 2:
lcd.setCursor(0,0);
//lcd.print(blank);
lcd.print("Success Rate:");
lcd.setCursor(0,1);
// lcd.print(blank); lcd.print(ティムパス); lcd.display();壊す;
default:
lcd.setCursor(0,0);
// lcd.print(blank); lcd.setcursor(0,1); // lcd.print(blank); lcd.display(); }
}
void lightshow(){digitalwrite(ledredpin、high);遅延(100); DigitalWrite(LedGreenpin、High);遅延(100); DigitalWrite(LedBluepin、High);遅延(100); DigitalWrite(LEDREDPIN、LOW);遅延(100); DigitalWrite(LedGreenpin、Low);遅延(100); DigitalWrite(LedBluepin、Low);
}
void modeselection(){
if(firstRun)
{
lightShow();
firstRun= false;
}
do {displayswitch(0); if(buttonStateMore == high && numberofpeople <7){numberofpeople ++; }
if(buttonStateLess == HIGH && numberOfPeople>1)
{
numberOfPeople--;
}
if(buttonStateOk == HIGH)
{
isRunning=false;
timeStart = millis();
}
} while(isrunning);
}