/* 1. naloga
program prebere iz predpomnilnika serijske komunikacije znak (ASSCI koda) če prebere znak:
(ASCII 49) '1' izpišemo nazaj na Serijski port: utrip 1x
(ASCII 50) '2' izpišemo nazaj na Serijski port: utrip 2x
'+' izpišemo nazaj na Serijski port LED on
'-' izpišemo nazaj na Serijski port LED off


# define LED 9
void setup() {
  Serial.begin(9600);
  Serial.println("Vpiši znak: ");
  pinMode(9, OUTPUT);

}

void loop() {
  if(Serial.available()){   // ali je v predpomnilniku kakšen znak
    char znak=Serial.read(); // preberemo 1 znak iz predpomnilnika
    switch(znak){
      case '1':
        Serial.println("utrip 1x");
        utrip();
        break;
      case '2':
        Serial.println("utrip 2x");
        utrip();
        utrip();
        break;
      case '+':
        Serial.println("LED on");
        digitalWrite(LED, HIGH);
        break;
      case '-':
        Serial.println("LED off");
        digitalWrite(LED, LOW);
        break;
      default:
        Serial.println("Vpiši pravi znak.");
    }
  }

}


void utrip(){
  digitalWrite(LED, HIGH);
  delay(300);
  digitalWrite(LED, LOW);
  delay(300);
}
*/

/*2. naloga
program prebere iz serijskega predpomnilnika znak(ASCII koda)
Prebrane znake pretvorimo v številčno vrednost in jo izpišemo na serijski port
Vrednost določa frekvenso utripanja LED diode


int value = 0;
#define LED 9

void setup(){
  Serial.begin(9600);
  Serial.println("Vpiši število: ");
  pinMode(LED, OUTPUT);
}

void loop(){
  static int m = 0;
  if(Serial.available()){
    char znak = Serial.read();
    if(znak>='0' && znak<='9'){
      value=(value*10)+(znak-'0');
    }
    else if(znak==10){
      Serial.println(value);
      m = value;
      value=0;
    }
  }
  utripanje(m);
}

void utripanje(int x){
  digitalWrite(LED, HIGH);
  delay(x);
  digitalWrite(LED, LOW);
  delay(x);
}
*/



/* 3. naloga
podobna kot 2 naloga,vendar z omejitvijo, da lahko naenkrat prebere samo 5 znakov
znake prebereo v seznam
*/
int value = 0;
#define LED 9
#define MAX 5 // 5 znakov
int index=0; // index seznama
char seznam[6];
int utrip=0;

void setup(){
  Serial.begin(9600);
  Serial.println("Vpisi število: ");
  pinMode(LED, OUTPUT);
}

void loop(){
  static int m = 0;
  if(Serial.available()){
    char znak = Serial.read();
    if(znak>='0' && znak<='9' && index<MAX){
      seznam[index]=znak;
      index++;
    }
    else{
      seznam[index]=0; // seznam zakljičimo z NULL
      utrip=atoi(seznam); // str v int; atol long
      Serial.println(utrip);
      index=0; // prepišemo znake v seznamu z novim vnosom
    }
  }
  utripanje(utrip);
}

void utripanje(int x){
  digitalWrite(LED, HIGH);
  delay(x);
  digitalWrite(LED, LOW);
  delay(x);
}