Základy programovania

Zo stránky 3D liga wiki
Prejsť na navigáciu Prejsť na vyhľadávanie

Základy programovania

Počas tutoriálu budeme používať niekoľko základných typov premenných a konceptov. Tu je rýchly prehľad:

Premenné

Premenná je "škatuľka" v pamäti mikrokontroléra, do ktorej si uložíme nejakú hodnotu. Každá premenná má typ – ten určuje aké hodnoty môže uchovávať.

Typ Čo uchováva Rozsah Príklad
int Celé číslo -32 768 až 32 767 int frekvencia = 1000;
long Veľké celé číslo -2 147 483 648 až 2 147 483 647 long trvanie = 50000;
float Desatinné číslo ±3.4 × 10³⁸ float vzdialenost = 23.5;
bool Pravda / nepravda true alebo false bool aktivny = false;
String Text ľubovoľný text String text = "Ahoj";

Operátory

Operátor Význam Príklad
+ - * / Základná aritmetika int x = 10 + 5;
== Rovná sa (porovnanie) if (x == 15)
!= Nerovná sa if (x != 0)
> < Väčší / menší ako if (x > 10)
++ Zvýš o 1 i++ → rovnaké ako i = i + 1
-- Zníž o 1 i-- → rovnaké ako i = i - 1
! Negácia (otočí bool) !true = false

Štruktúra programu

Každý Arduino program má dve povinné funkcie:

Funkcia Kedy sa spustí Na čo slúži
setup() Raz pri zapnutí Nastavenie pinov, spustenie sériovej komunikácie
loop() Dookola stále znova Hlavná logika programu

Funkcie

Funkcia je pomenovaný blok kódu, ktorý môžeme zavolať kedykoľvek potrebujeme. Namiesto toho aby sme ten istý kód písali viackrát, napíšeme ho raz do funkcie a potom ju len voláme.

// Definícia funkcie
void playNote(int note) {
  // kód funkcie
}

// Volanie funkcie
playNote(1000);
Časť Vysvetlenie Príklad
Návratový typ Čo funkcia vracia. void = nič nevracia void, int, float, long
Názov Ľubovoľné meno funkcie playNote, setColor, stoj
Parametre Hodnoty ktoré funkcia dostane zvonku int note, int r, int g, int b
Telo Kód ktorý sa vykoná pri zavolaní všetko medzi { a }

Funkcie môžu aj vracať hodnotu pomocou return:

// Funkcia ktorá vráti vzdialenosť v cm
float getDistance() {
  long trvanie = measurePulse();
  return (trvanie * 0.0343) / 2.0;  // vráti vypočítanú hodnotu
}

// Použitie
float dist = getDistance();  // dist bude obsahovať výsledok

Funkcie môžu mať aj viac parametrov:

// Funkcia s troma parametrami
void setColor(int r, int g, int b) {
  digitalWrite(PIN_R, r);
  digitalWrite(PIN_G, g);
  digitalWrite(PIN_B, b);
}

// Volanie – hodnoty sa priradia v rovnakom poradí
setColor(HIGH, LOW, HIGH);  // r=HIGH, g=LOW, b=HIGH → fialová

Podmienky

Štruktúra Použitie Príklad
if Vykoná kód ak je podmienka splnená if (x > 10) { ... }
if / else Vykoná jeden z dvoch blokov if (x > 10) { ... } else { ... }
if / else if / else Vykoná jeden z viacerých blokov if (x > 30) { ... } else if (x > 10) { ... } else { ... }
float vzdialenost = getDistance();

if (vzdialenost > 30) {
  // ďaleko
} else if (vzdialenost > 10) {
  // stredne
} else {
  // blízko
}

Cykly

Štruktúra Použitie Príklad
for Opakuj N-krát for (int i = 0; i < 10; i++)
while Opakuj kým je podmienka splnená while (millis() - start < 1000)
// for – prejdi pole frekvencií
for (int i = 0; i < pocetFrekvencii; i++) {
  playNote(frekvencie[i]);
}

// while – hraj tón po dobu 1 sekundy
long start = millis();
while (millis() - start < 1000) {
  playNote(1000);
}