//Program lahko iz serijskega porta prebere do 50 znakov in jih zapiše v seznam tipa char.
//Vsebino seznama zapišemo na serijski port
//Program dopolni s števcem vejc
/*
#include <LiquidCrystal_I2C.h>
#define I2C_ADDR 0x27
#define LCD_COLUMNS 20
#define LCD_LINES 4
#define MAKSstevloZnakov 50
char seznam[MAKSstevloZnakov];
bool novPodatek = false;
int stevec = 0;
LiquidCrystal_I2C lcd(I2C_ADDR, LCD_COLUMNS, LCD_LINES);
void setup() {
lcd.init();
lcd.setCursor(0,0);
lcd.print("Vpiši niz znakov: ")
Serial.begin(9600);
Serial.println("vpiši niz znakov: ");
}
void loop() {
int stevec = 0;
if (Serial.available()){
Serial.readBytesUntil('\n', seznam, MAKSsteviloZnakov); // preberemo vse znake
novPodatek = true;
}
if(novPodatek) {
lcd.setCursor(0,0);
lcd.print("Vpisni znako so:");
lcd.setCursor(0,1);
lcd.print(seznam);
Serial.print("Vpisani znaki so: ");
Serial.println(seznam);
novPodatek = false;
for(int i = 0; i < MAKSsteviloZnakov; i++){
if(seznam[i] == ',') stevec++;
}
//seznam se mora izbrisati
for(int i = 0; i < MAKSsteviloZnakov; i++) seznam[i] = 0;
Serial.println(stevec);
stevec = 0;
}
}
*/
//7. s pomočjo funkcije strtok() razdeli seztnam na posamezne popdseznamse
//Ločilni znak vjecija
/*
char imena [] = "Janko! Panko? Marko.,00";
char deli[] = ",.!? ";
void setup(){
Serial.begin(9600);
Serial.println("Razdeli seznam na posamezna imena.");
char *token = strtok(imena, deli);
while(token != NULL){
Serial.println(token);
token = strtok(NULL,deli);
}
}
void loop(){
}
*/
//8. program prebere zanke (števke) iz serijskega porta; uporabi Serial.readBytesUntil(). Med znaki se nahajajo tudi vejice.
// Seznam razdeli na besede (številke) kot določajo. Številke na koncu pretvori v intiger.
# define MAKS_STEVILK 5 // največ 5 številk
#define BUFFER_SIZE 50 // št. znakov začasnega seznama za branje znakov
void setup(){
Serial.begin(9600);
Serial.println("Vpiši niz znakov");
}
int indeks = 0;
int seznamStevilk[MAKS_STEVILK];
void loop(){
if(Serial.available()){
memset(buffer,0,sizeof(buffer));
char buffer[BUFFER_SIZE];
Serial.readBytesUntil('\n', buffer, BUFFER_SIZE );
Serial.println(buffer);
// seznam razdewlimo na številke, ločene z vejico
char *token = strtok(buffer,',');
while(token != NULL && indeks < MAKS_STEVILK ){
seznamStevilk[indeks++] = atol(token);
token = strtok (NULL, ',');
}
//izpis vsebine seznama seznamStevilk
Serial.println("Seznam številk");
for ( int = 0; i < indeks; i++) Serial.println(seznamStevilk[i]);
}