Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- //Copyright Jorgga 2012
- //jorgga@gmail.com
- //You may modify and use this code but you must give me credit.
- //You may not use this code for profitable applications.
- //Muuttujat
- const int NextButton = 2; //Play nappula porttiin 2
- const int StopButton = 3; //Stop 3
- const int PlayPause = 4; //Play/pause 4
- const int PrevButton = 5; //Prev 5
- int ButtonStates[4] = {0,0,0,0}; //Nappuloiden tilat
- boolean Playing = true; //Toistetaanko, Juu Muutentaan false jos pausea painetaan
- boolean Connected = false; //Ei oo yhistetty oletuksena
- int Delay = 1000; //Pingauksen aikaväli
- String InputString = ""; //Minne tulevat viestit piillotetaan
- boolean StringComplete = false; //Onko tuleva viesti valmis
- long Pinged = 0; //Edellisen pingin aika
- //Ashetuksia
- void setup() {
- Serial.begin(9600); //Seriaalin nopeus
- pinMode(NextButton, INPUT); //Portit nappuloille
- pinMode(StopButton, INPUT); //sisäänpäin
- pinMode(PlayPause, INPUT);
- pinMode(PrevButton, INPUT);
- InputString.reserve(200); //Jotain bufferia
- }
- void loop() {
- if (Serial.available() > 0) seriaaliEventti(); //Mikäli sarjadataa tulee
- if(Connected == false)
- {
- Ping(); //pingataan jos ei oo yhteyttä
- }
- else
- {
- Ping(); //Pingataan kuitenkin
- Buttons();
- }
- if(StringComplete)
- {
- Serial.print("Answer: ");
- Serial.print(InputString);
- if(InputString == "Pong\n")
- {
- //Serial.print("Set Connected True\n");
- Delay = 10000;
- Pinged = millis() / 1000;
- //Serial.print(Pinged);
- //Serial.print("\n");
- Connected = true;
- }
- StringComplete = false;
- InputString = "";
- }
- }
- //Loopin loppu
- void Ping()
- {
- if((millis() % Delay) == 0)
- {
- Serial.print("Ping ");
- Serial.print(millis()/1000);
- Serial.print("\n");
- delay(1);
- } else if((millis() / 1000) > (Pinged + 10))
- {
- Connected = false;
- Delay = 1000;
- }
- }
- void Buttons()
- {
- //Buttons Begin
- if(digitalRead(NextButton) == HIGH)
- {
- ButtonStates[0] = 1;
- } else if(digitalRead(StopButton) == HIGH)
- {
- ButtonStates[1] = 1;
- } else if(digitalRead(PlayPause) == HIGH)
- {
- ButtonStates[2] = 1;
- } else if(digitalRead(PrevButton) == HIGH)
- {
- ButtonStates[3] = 1;
- }
- if(digitalRead(NextButton) == LOW && ButtonStates[0] == 1)
- {
- Serial.print("Next\n");
- ResetButtons();
- } else if(digitalRead(StopButton) == LOW && ButtonStates[1] == 1)
- {
- Serial.print("Stop\n");
- ResetButtons();
- } else if(digitalRead(PlayPause) == LOW && ButtonStates[2] == 1)
- {
- if(Playing == true)
- {
- Playing = false;
- Serial.print("Pause\n");
- } else if(Playing == false)
- {
- Playing = true;
- Serial.print("Play\n");
- }
- ResetButtons();
- } else if(digitalRead(PrevButton) == LOW && ButtonStates[3] == 1)
- {
- Serial.print("Prev\n");
- ResetButtons();
- }
- //Buttons End
- }
- void ResetButtons()
- {
- for(int i = 0;i<4;i++)
- {
- ButtonStates[i] = 0;
- }
- }
- void seriaaliEventti()
- {
- while (Serial.available())
- {
- char inChar = (char)Serial.read();
- InputString += inChar;
- if(inChar == '\n')
- {
- StringComplete = true;
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement