#include <liquidcrystal.h>
const int leddpin = 9; //帶有〜const int ledbluepin = 10的紅色銷釘; // blue const int in const int ledgreenpin = 11; // with〜
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 butthless = 12; // pushtButton pin const int buttonmore = 13; // pushtbutton pin
int buttonstateok; int buttonstatemore; int鈕扣
const int int photosenSorpinFirst = 0; //模擬輸入引腳const int photosensorpinsecond = 1; //模擬輸入銷
int lightlevelfirst; int lightlevelsecond;
未簽名的長時間時間;未簽名的長時間paused = 0;未簽名的長期超過了;未簽名的長時間;未簽名的長時間emptwo; bool ispaused = false;
bool isrunning = false; bool firstrun = true; int numberOfpeople = 1; const char black [17] = {“”};
void setup(){// lcd設置colums/lows lcd.begin(16,2); lcd.print(“歡迎”); // PUSHBUTTONS PIN輸入Pinmode(Buttonok,Input); pinmode(buttonmore,輸入); pinmode(無鈕扣,輸入);
// LED引腳輸出PINMODE(LEDREDPIN,輸出); Pinmode(LEDBluepin,輸出); Pinmode(Ledgreenpin,輸出);
}
void loop(){sensorreadings();
如果(buttonstateok == high && firstrun){isrunning = true; } if(isrunning){modeSelection();
}
顯示開關(1); if(buttonstateok == high &&!isrunning){theend(); }
}
void theend(){timepassed = millis() - timestart -timepaused; timetempone = millis()-timestart; timetEmptwo =時間超過/timetempone; TimetEmptwo *= 100;顯示開關(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); buttonstateless = digitalread(buttonless); LightleVelferst = Analogread(photenSorpinFirst); LightlevelSecond = Analogread(photenSorpinsecond); }
void checklight(){if(lightleVelfSt> = 800 &&!ispaused){pauseevent(ispaused);
isPaused = true;
} else {if(lightlevelferst <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模式){char temp [] =“”;開關(模式){情況0:
lcd.setcursor(0,0); //lcd.print(Blank); lcd.print(“玩家編號:”);
lcd.setcursor(0,1); // lcd.print(空白); lcd.print(numberOfpeople); lcd.display();休息;
case 1:
lcd.setCursor(0,0);
//lcd.print(blank);
lcd.print("Time Passed:");
lcd.setCursor(0,1);
// lcd.print(空白); 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(空白); lcd.print(時間超過); lcd.display();休息;
default:
lcd.setCursor(0,0);
// lcd.print(空白); lcd.setcursor(0,1); // lcd.print(空白); lcd.display(); }
}
void LightShow(){digitalwrite(Ledredpin,高);延遲(100); DigitalWrite(Ledgreenpin,高);延遲(100); DigitalWrite(Ledbluepin,高);延遲(100); DigitalWrite(Ledredpin,低);延遲(100); DigitalWrite(Ledgreenpin,低);延遲(100); DigitalWrite(Ledbluepin,低);
}
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);
}