#define led1 10
#define led2 11
#define koda 5461
// Serial.readBytes()
void setup (){
Serial.begin(115200);
Serial.print("vpiši kodo: ");
pinMode(led1, OUTPUT);
pinMode(led2, OUTPUT);
}
void loop(){
if(Serial.available()){
char vpis[5];
int lenVpis = Serial.readBytes(vpis,1);
if(lenVpis == 1){
vpis[1] = '\0'; // zaključni znak - terminator seznama tipa char {'n','i','c','e','\0'}
int stevilka = atoi(vpis);
Serial.println(stevilka);
switch(stevilka){
case 1:
Serial.println("vklop LED1");
digitalWrite(led1, HIGH);
break;
case 2:
Serial.println("vklop LED2");
digitalWrite(led2, HIGH);
break;
case 3:
Serial.println("izklop LED1");
digitalWrite(led1, LOW);
break;
case 4:
Serial.println("izklop LED1");
digitalWrite(led2, LOW);
break;
default:
Serial.println("poskusi ponovno");
break;
//pass | clearly don't need Serial.read();
}
}
}
}
/*
char imena[] = "Hedvika, Anja? rudolf! Anton, Zala, Ema";
char deli[] = ",?!";
void setup (){
Serial.begin(115200);
Serial.print("vpiši niz znakov: ");
char* token = strtok(imena, deli);
while (token!= NULL){
Serial.println(token);
token = strtok(NULL, deli);
}
}
void loop(){
}
const int maxStZnakov = 50;
char seznam[maxStZnakov];
void setup (){
Serial.begin(115200);
Serial.print("vpiši niz znakov");
}
void loop(){
static bool novPodatek = false;
if(Serial.available()){
Serial.readBytesUntil('\n', seznam, maxStZnakov);
novPodatek = true;
}
if (novPodatek){
Serial.print("vpisani znaki so: ");
Serial.print(seznam);
novPodatek = false;
}
}
*/
/*
//Preberi tri števila, ki so ločena z vejico (oblika zapisa: 45,123,45)
#define SEZNAMstevil 3
int seznamIndex = 0; // indeks posameznega stevila locenega z vejico
int stevila[SEZNAMstevil]; // seznam v katerega zapisemo vsa stevila
void setup(){
Serial.begin(115200);
Serial.println("Vpisi tri stevila, locena z vejico");
}
void loop(){
if(Serial.available()){
char znak = Serial.read();
if(znak >= '0' && znak <= '9'){
stevila[seznamIndex] = (stevila[seznamIndex] * 10) + (znak - '0');
}
else if (znak == ','){
if(seznamIndex < SEZNAMstevil -1) seznamIndex ++;
}
else if (znak ==10) { // if not 1-9 or '-' reset
Serial.print("stevilo stevil: ");
Serial.println(seznamIndex + 1);
for (int i = 0; i <= seznamIndex; i++){
Serial.print(stevila[i]);
if (i != seznamIndex){
Serial.print(", ");
}
stevila[i] = 0;
}
memset(stevila, 0, sizeof(stevila));
seznamIndex = 0;
}
}
}
*/
///////////////////////////////////////////
/*
//Preko serijskega porta preberi niz znakov (5 števil) in jih zapiši v seznam (tipa char).
//Končni seznam pretvori v celo število.
int ledPin = 11;
int utrip;
char seznam[6]; // seznam znakov
int index = 0; // indeks seznama
void setup(){
Serial.begin(9600);
Serial.println("Vpiši niz števil:");
pinMode(ledPin, OUTPUT);
}
void loop(){
if (Serial.available()){
char znak = Serial.read();
if( index < 5 && znak >='0' && znak <='9'){
seznam[index++] = znak;
}
else {
seznam[index] = 0; // seznam aključimo z 0
utrip = atoi(seznam); // pretvorba stringa v integer
Serial.println(utrip);
index = 0;
}
}
utripanje(utrip);
}
void utripanje(int x){
digitalWrite(ledPin, HIGH);
delay(x);
digitalWrite(ledPin, LOW);
delay(x);
}
*/
///////////////////////////////////////////////////////
/* Program prebere ASCII znak
// 1 - izpiše se 1 - utrip 1x
// 2 izpiše se 2 - utrip 2x
// + izpiše se + - LED on
// + izpiše se + - LED off
int ledPin = 11;
void setup(){
Serial.begin(9600);
pinMode(ledPin, OUTPUT);
Serial.println("Vpiši znak");
}
void loop(){
if( Serial.available()){
char znak = Serial.read();
switch(znak) {
case '1':
Serial.println("ena");
utripanje();
break;
case '2':
Serial.println("dve");
utripanje();
utripanje();
break;
case '+':
Serial.println("+");
digitalWrite(ledPin, HIGH);
break;
case '-':
Serial.println("-");
digitalWrite(ledPin, LOW);
break;
default :
Serial.println("Ni pravi znak.");
break;
}
}
}
void utripanje(){
digitalWrite(ledPin, HIGH);
delay(200);
digitalWrite(ledPin, LOW);
delay(200);
}
*/
///////////////////////////////////////////////////////
/* program prebere 3 znake (ASCII koda), ki jih pretvorimo v številčno vrednost
int ledPin = 11;
int utrip = 0;
int vrednost;
void setup() {
Serial.begin(9600);
Serial.println("Vpisi stevilo:");
pinMode(ledPin, OUTPUT);
}
void loop() {
if( Serial.available()) {
char znak = Serial.read();
if (znak >= '0' && znak <= '9'){ // '0' je 48
vrednost = (vrednost * 10) + (znak - '0');
}
else if (znak == 10) { // enter po ASCII je zap. št. 10
utrip = vrednost;
Serial.println(utrip);
vrednost = 0;
}
}
utripanje(utrip);
}
void utripanje(int x){
digitalWrite(ledPin, HIGH);
delay(x);
digitalWrite(ledPin,LOW);
delay(x);
}*/