#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);
}