// Code for controlling Flash with Arduino in project Lur Maskopi by Erik Rask and Markus Appelbäck

// http://www.jormahuset.se/lurmaskopi (swedish)



#define soundOne   0            

#define soundTwo   1

#define soundThree 2

#define soundFour  3

#define soundFive  4

#define soundSix   5


#define knappOne   2

#define knappTwo   3

#define knappThree 4

#define knappFour  5

#define knappFive  6

#define knappSix   7


#define soundOn    60

#define soundOff   70

#define knappOn    80

#define knappOff   90



#define ledOne     8

#define ledTwo     9

#define ledThree   10

#define ledFour    11

#define ledFive    12

#define ledSix     13


boolean knappActive[6] = {false, false, false, false, false, false};

boolean soundActive[6] = {false, false, false, false, false, false};

int knappVal = 0;

int soundVal = 0;

int soundHTH = 100;

int soundLTH = 30;


void setup()                   

{    

  pinMode(knappOne, INPUT);  

  pinMode(knappTwo, INPUT);  

  pinMode(knappThree, INPUT);  

  pinMode(knappFour, INPUT);  

  pinMode(knappFive, INPUT);  

  pinMode(knappSix, INPUT);  

  

  digitalWrite(knappOne, HIGH);

  digitalWrite(knappTwo, HIGH);

  digitalWrite(knappThree, HIGH);

  digitalWrite(knappFour, HIGH);

  digitalWrite(knappFive, HIGH);

  digitalWrite(knappSix, HIGH);

  

  pinMode(ledOne, OUTPUT);

  pinMode(ledTwo, OUTPUT);

  pinMode(ledThree, OUTPUT);

  pinMode(ledFour, OUTPUT);

  pinMode(ledFive, OUTPUT);

  pinMode(ledSix, OUTPUT);

 

  Serial.begin(115200);

}

 

void loop(){

  

  readAudio();

  readButtons();

  delay(5);

}

void readAudio(){

  for(int i=0; i<6; i++){

    soundVal = analogRead(soundOne+i);

    //Serial.println(soundOneVal);

    if (soundVal > soundHTH){

      if(soundActive[i] == false){

        Serial.print(soundOn+i);

        //Serial.print(soundVal);

        Serial.print("\0");

        digitalWrite(ledOne+i, HIGH);

        soundActive[i] = true;

      }

    }

    else {

      if(soundVal < soundLTH && soundActive[i] == true){

        digitalWrite(ledOne+i, LOW);

        Serial.print(soundOff+i);

        Serial.print("\0");

        soundActive[i] = false;

      }

    }

  }

}

void readButtons(){

  for(int i=0; i<6; i++){

    knappVal = digitalRead(knappOne+i);

    if(knappVal == LOW){

      if(knappActive[i] == false){

        Serial.print(knappOn+i);

        Serial.print("\0");

      }

      knappActive[i] = true;

    }

    else{

      if(knappActive[i]){

        Serial.print(knappOff+i);

        Serial.print("\0");

      }

      knappActive[i] = false; 

    }

  }

}