/* 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);
}