//naloga 6
// Program lahko iz serijskega porta prebere do 50 znakov
// in jih zapise v seznam tipa char
// vsebino seznama zapisemo na serijski port
//sesteva stevilo vejic
/*
#define MAKSsteviloZnakov 50
char seznam[MAKSsteviloZnakov];
bool novPodatek = false; // preberemo vse podatke iz porta
void setup() {
Serial.begin(9600);
Serial.println("Vpisi niz znakov");
}
void loop() {
int stevec = 0;
if(Serial.available()){
Serial.readBytesUntil('\n', seznam, MAKSsteviloZnakov); // preberemo vse znake
novPodatek = true;
}
if(novPodatek){
Serial.print("Vpisani znaki so: ");
Serial.println(seznam);
novPodatek = false;
for (int i=0; i < MAKSsteviloZnakov; i++) {
if (seznam[i] == ',') stevec ++;
}
for (int i=0; i < MAKSsteviloZnakov; i++) seznam[i] = 0; // seznam se izbriše
Serial.println(stevec);
}
}*/
/*
//naloga 7
// s pomocjo funkcije strtok() razdeli seznam na posamezne podsezname
// locilni znak je vejica
char imena[] = "Janko! Meta,00, Nika";
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() {
}
*/
// preberi stanje serijskega predpomnilnika s funkcijo Serial.readBytesUntil()
// in jo zapisi v seznam buffer tipa char
// s pomocjo funkcije strtok() razdeli niz znakov seznama buffer na podnize
// locilni string naj bo ","
// s pomocjo funkcije atol() pretvori niz znakov v celo stevilo
// stevilke zapisi v seznam stevila[]
// doloci najmanjsi in najvecjo stevilko seznam stevila[]
// za brisanje seznamov uporabi funkcijo memset()
/*
#define MAKS_STEVILK 50
#define BUFFER_SIZE 50
char buffer[BUFFER_SIZE];
int indeks = 0; // indeks trenutno shranjenih stevilk seznama seznamStevilk[]
long seznamStevilk[MAKS_STEVILK];
void setup(){
Serial.begin(9600);
Serial.println("Vpiši stevilo");
}
void loop(){
if(Serial.available()){
memset(buffer, 0, sizeof(buffer)); //pobrisemo vsebino predpomnilnika
Serial.readBytesUntil('\n', buffer, BUFFER_SIZE);
char *token = strtok(buffer, ",");
while(token != NULL){
seznamStevilk[indeks] = atol(token);
token = strtok(NULL, ",");
indeks++;
}
Serial.println("Seznam shranjenih številk: ");
for(int i = 0; i < indeks; i++){
Serial.print(seznamStevilk[i]);
Serial.print(",");
}
//brisanje seznama stevilk
memset(seznamStevilk, 0, MAKS_STEVILK);
indeks = 0; // ponastavimo indeks seznama na nič
}
}*/
// naloga 8
// program prebere zanke (števke) iz serijskega porta. Uporabi serial.readBytesUntil()
// Med znaki se nahajajo tudi vejice.
// seznam razdeli na posamezne besede (številke) kot dolocajo vejice. uporabi strtok
// stevilke na koncu pretvori v integer
#define BUFFER_SIZE 50 // št. znakov začasnega seznama za branje znakov
#define MAKS_STEVILK 5 // največ 5 številk
void setup(){
Serial.begin(9600);
Serial.println("Vpisi niz znakov:");
}
int indeks = 0;
int seznamStevilk[MAKS_STEVILK];
void loop() {
if (Serial.available()) {
char buffer[BUFFER_SIZE];
memset(buffer,0,sizeof(buffer)); // namesto zanke for buffer[i] = 0
Serial.readBytesUntil('\n', buffer, BUFFER_SIZE);
Serial.println(buffer);
//seznam razdelimo na številke, ločeno z vejico
char *token = strtok(buffer, ',');
while (token != NULL && indeks < MAKS_STEVILK) {
seznamStevilk[indeks++] = atoi(token);
token = strtok(NULL, ',');
}
// izpis vsebine seznama seznamStevilk
Serial.println("Seznam stevilk");
for (int i = 0; i < indeks; i++) Serial.println(seznamStevilk[i]);
// brisanje seznam številk
memset(seznamStevilk,0,sizeof(seznamStevilk));
}
}
uno:A5.2
uno:A4.2
uno:AREF
uno:GND.1
uno:13
uno:12
uno:11
uno:10
uno:9
uno:8
uno:7
uno:6
uno:5
uno:4
uno:3
uno:2
uno:1
uno:0
uno:IOREF
uno:RESET
uno:3.3V
uno:5V
uno:GND.2
uno:GND.3
uno:VIN
uno:A0
uno:A1
uno:A2
uno:A3
uno:A4
uno:A5
lcd1:GND
lcd1:VCC
lcd1:SDA
lcd1:SCL