Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- void DoNothingForNow(){}
- const int DARK_FORCE_LIGHT_PIN = 4;
- const int LIGHT_FORCE_LIGHT_PIN = 5;
- const int MUSIC_PIN = 10;
- const int DARK_FORCE_PIN = 7;
- const int LIGHT_FORCE_PIN = 8;
- const int LIGHTS_TIMEOUT = 1000 * 30;
- volatile int DarkForceMoney = 0;
- volatile int LightForceMoney = 0;
- volatile int CurrentSidePin = 0;
- volatile unsigned long LastActivityTime = 0;
- boolean VaderJustPressed()
- {
- return (digitalRead(DARK_FORCE_PIN) == HIGH);
- }
- boolean YodaJustPressed()
- {
- return (digitalRead(LIGHT_FORCE_PIN) == HIGH);
- }
- void PlayVaderSound()
- {
- //TODO: Implement
- }
- void PlayYodaSound()
- {
- //TODO: Implement
- }
- void MakeDarkCurrentSide()
- {
- CurrentSidePin = DARK_FORCE_LIGHT_PIN;
- LightTheLight();
- PlayVaderSound();
- }
- void MakeLightCurrentSide()
- {
- CurrentSidePin = LIGHT_FORCE_LIGHT_PIN;
- LightTheLight();
- PlayYodaSound();
- }
- void ShutDownLights()
- {
- CurrentSidePin = 0;
- LightTheLight();
- }
- void ResetTimer()
- {
- LastActivityTime = millis();
- }
- boolean TimeExceeded()
- {
- if ( (unsigned long)(millis() - LastActivityTime) >= LIGHTS_TIMEOUT)
- return true;
- return false;
- }
- void LightTheLight()
- {
- digitalWrite(LIGHT_FORCE_LIGHT_PIN, LOW);
- digitalWrite(DARK_FORCE_LIGHT_PIN, LOW);
- digitalWrite(CurrentSidePin, HIGH);
- }
- void InsertCoin()
- {
- if(CurrentSidePin == LIGHT_FORCE_LIGHT_PIN)
- {
- LightForceMoney = LightForceMoney + 1;
- }
- else if(CurrentSidePin == DARK_FORCE_LIGHT_PIN)
- {
- DarkForceMoney = DarkForceMoney + 1;
- }
- else
- {
- DoNothingForNow();
- //Play "NOOO"
- }
- Serial.print("Dark side money: ");
- Serial.println(DarkForceMoney);
- Serial.print("Light side money: ");
- Serial.println(LightForceMoney);
- }
- void setup()
- {
- Serial.begin(9600);
- pinMode(DARK_FORCE_LIGHT_PIN, OUTPUT);
- pinMode(LIGHT_FORCE_LIGHT_PIN, OUTPUT);
- pinMode(MUSIC_PIN, OUTPUT);
- pinMode(DARK_FORCE_PIN, INPUT);
- pinMode(LIGHT_FORCE_PIN, INPUT);
- attachInterrupt(0, InsertCoin, RISING);
- }
- void loop()
- {
- //Experimental Area
- if(VaderJustPressed())
- {
- MakeDarkCurrentSide();
- ResetTimer();
- }
- else if(YodaJustPressed())
- {
- MakeLightCurrentSide();
- ResetTimer();
- }
- if(TimeExceeded())
- {
- ShutDownLights();
- }
- //End of Experimental Area
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement