Slaven 1-3

You might also like

Download as docx, pdf, or txt
Download as docx, pdf, or txt
You are on page 1of 5

// komentar se pise sa dvije kose crtice

// i ovo je komentar
// i ovo isto
/*
ovo je komentar
ovaj komentar se može pisati u više redova
bitno je da otvorimo i zatvorimo komentar
*/

// deklaracija globalne varijable - ona je dostupna u svim funkcijama koje su deklarirane kasnije
int var3 = 7;

// deklaracija i poziv funkcije setup - ona se izvršava TOČNO JEDNOM na početku rada
// funkcija setup se poziva automatski pri pokretanju rada procesora i izvršava se samo jednom
void setup() {

Serial.begin(115200);
Serial.print("hello world \n"); //
Serial.print("prvi C program \n");
Serial.println();
Serial.println("nesto");
Serial.println("jos nesto");

// lokalne varijable - imaju doseg (mogu se koristiti) samo unutar funkcije u kojoj su deklarirane
int var1; //deklaracija - davanje imena varijabli i tipa podataka koje će primati
var1 = 10; //inicijalizacija - davanje vrijednosti unaprijed deklariranoj varijabli
Serial.print("var1: ");
Serial.println(var1);

float var2 = 6.1; // u ovom slučaju deklariramo i inicijaliziramo varijablu - u istoj liniji koda dadnemo i
vrijednost
Serial.print("var2: ");
Serial.println(var2);

Serial.println(var3);
var3 = 21;
Serial.println(var3);

//Serial.println(Serial.available());

/* ovo je komentar
ovaj komentar se može pisati u više redova
bitno je da otvorimo i zatvorimo komentar
*/
}

// funkcija loop se poziva automatski nakon što se izvrši funkcija setup i ponavlja se beskonačan broj puta
(dok god ne isključimo napajanje)
void loop() {
// put your main code here, to run repeatedly:
//Serial.println("loop");
int serial_available = Serial.available();
if (serial_available > 0) {
//Serial.println(serial_available);
int moja_vrij = Serial.read(); // vraća vrijednosti kao cijeli broj (dekadski sustav)
Serial.println(char(moja_vrij));
//Serial.println(Serial.readString());

if ((moja_vrij == 100) && (serial_available == 4)) { //slovo d


Serial.println("Pogodio si trazeno slovo");
}
else if ((moja_vrij == 97) && (serial_available == 3)) { //slovo a
Serial.println("Pogodio si trazeno slovo");
}
else if ((moja_vrij == 109) && (serial_available == 2)) { //slovo m
Serial.println("Pogodio si trazeno slovo");
}
else if ((moja_vrij == 110) && (serial_available == 1)) { //slovo n
Serial.println("Pogodio si trazeno slovo");
}
else {
Serial.println("Nisi pogodio");
}
}

//Serial.println(Serial.available());
//Serial.println(var4);
Serial.println("aa");
delay(1000);
}

int var4 = 8;

drugo

//globalne varijable
int g1 = 0;
int g2 = 0;

void setup() {
// put your setup code here, to run once:

Serial.begin(115200);
int var1 = 4;
Serial.println("Varijabla 1: " + String(var1));
int var2 = 100;
Serial.println("Varijabla 2: " + String(var2));
int var3 = var1 + var2;
Serial.print("Rezultat: ");
Serial.println(var3);
int var4;
Serial.println();
// Serial.println("Rezultat: "+ String(var3));
// Serial.printf("Rezultat: %d\n", var3);

// Nek se upisu dvije vrijednosti i ako je vrijednost prvog broja manja od 10


// nek se izvrsi operacija mnozenja, a ako je vrijednost veca od 10
// nek se izvrsi operacija zbrajanja, inace ispisi nesto.
if (var1 < 10) {
var4 = var1 * var2;
Serial.println("Broj je manji od 10 ");
Serial.print("Rezultat umnoška dva unesena broja je: ");
Serial.println(var4);

}
else if (var1 > 10) {
var4 = var1 + var2;
Serial.println("Broj je veci od 10 ");
Serial.print("Rezultat zbroja dva unesena broja je: ");
Serial.println(var4);
}
else {
Serial.println("Broj je 10.");
}

Serial.println("==KRAJ SETUPA==");

void loop() {
// 1. kreirati 2 globalne varijable koje će primati cijeli broj. Neka su tim varijablama na početku pridjeljene
vrijednosti 0.
// Ako je vrijednost prve varijable 0, provjeriti je li procesor primio neki podatak putem serijske
komunikacije i ispiši rezultat
// Vrijednost koja je primljena putem serijske kom. pohraniti u prvu varijablu g1.
// Primljena vrijednost mora biti broj od 1 do 9 (ako koristimo funkciju parseInt() može biti i veći broj)
//
// Ako vrijednost prve varijable nije nula, provjeri je li vrijednost druge varijable 0. Ukoliko je 0, provjeri
je li dobio neki broj putem serijske komunikacije.
// Primljenu vrijednost pohrani u drugu varijablu.
//
// Kada su u obje varijable upisane nove vrijednosti (nisu više 0), tada ih zbroji i ispiši rezultat zbroja
// Nakon ispisa zbroja, obje varijable opet postavi na 0
if (g1 == 0) {
int av = Serial.available();
if (av > 0) {
Serial.println(av);
//g1 = Serial.read() - 48; // radimo pomak (offset) za 48 mjesta u ASCII tablici. Tako da ćemo primljeni
broj (tekstualni znak) pomjeriti na željeno mjesto
g1 = Serial.parseInt();
Serial.print("vrijednost g1: ");
Serial.println(g1);
}
}
else if (g2 == 0) {
int ab = Serial.available();
if (ab > 0) {
g2 = Serial.parseInt();
Serial.print("vrijednost g2: ");
Serial.println(g2);
}
}
else {
int zbroj = g1 + g2;
Serial.print("Zbroj: ");
Serial.println(zbroj);
g1 = 0;
g2 = 0;
}

treće

int tipkalo = 0; // neka naša varijabla u koju pohranjujemo broj pina (ulazno-izlaznog konektora)
int stanje = 0; //varijabla u koju ćemo spremati prethodnu vrijednost
int prekidac = 0; //varijabla koja će nam predstavljati prekidač

void setup() {

Serial.begin(115200);

pinMode(tipkalo, INPUT); // funkcija koja određuje kojeg će tipa biti neki pin. Hoće li primati
informacije (INPUT) ili slati informacije (OUTPUT)

void loop() {

int dug = digitalRead(tipkalo); // funkcija koja vraća vrijednost primljenu na nekom pinu. Ova
funkcija uvijek vraća digitalnu vrijednost 0 ili 1
dug = !dug; // uskličnik obrne vrijednost. Ono što je 1, uskličnik pretvori u 0, a što je 0 uskličnik
pretvori u 1 -> uzmi vrijednost iz varijable "dug", okreni je i novu vrijednost pohrani u varijablu
"dug"
/*
if (stanje != dug) { //provjera je li nova vrijednost varijable "dug" različita od prethodne
vrijednosti. Tek ako je došlo do promjene vrijednosti izvršavamo kod ispod
Serial.println(dug);
//Serial.println(" novo");
prekidac = dug; //postavljamo prekidač na novu vrijednost
if (prekidac == 1) {
Serial.println("Prekidac upaljen");
}
else {
Serial.println("Prekidac ugasen");
}
stanje = dug; //nova vrijednost varijable "dug" će ubuduće biti "prethodna (stara)
vrijednost"
}
*/
if (stanje != dug) { //provjeravamo je li došlo do promjene vrijednosti
if (dug == 1) { //dodatni uvjet kojim provjeravamo je li nova vrijednost jednaka 1 (dugme
pritisnuto). Ako stavimo dug == 0 ovdje, onda će se čekati da nova vrijednost bude 0, odnosno da
dugme bude otpušteno
//Serial.println("nova vrijednost postavljena");
prekidac = !prekidac;
if (prekidac == 1) {
Serial.println("Prekidac upaljen");
}
else {
Serial.println("Prekidac ugasen");
}
}
// else if (dug == 1) {
// Serial.println("na pola puta, otpusti dugme");
// }
stanje = dug; //nova vrijednost varijable "dug" će ubuduće biti "prethodna (stara) vrijednost"
}

delay(20); // ako ćemo imati beskonačni ispis, dobro je dodati bar malu pauzu da se smanji broj
ispisa u sekundi (uz uvjet da nam to ne remeti logiku)

You might also like