Arduino - Zhrnutie druhého dňa

From DT^2
Jump to: navigation, search
  • keď sa nedá poslať program do pripojeného Arduina, tak skontrolujeme, či je vybratý sériový port (Tools-Port) a či máme vybratý správny typ arduina (pre nás: Arduino Nano), ak sa nejaké dolu vypíše - prečítame si oranžovú chybovú správu a pokúsime sa pochopiť, čo nám Arduino chce povedať
    • možno nám niekde chýba bodkočiarka
    • možno nesedia zátvorky - namiesto zloženej zátvorky je niekde okrúhla alebo naopak, alebo v programe nie je rovnaký počet otvorených a zatvorených zložených zátvoriek, alebo nie sú na správnom mieste - príkazy musia byť vždy vnútri vo funkciách, nie mimo nich
  • hoci väčšinou k Arduinu pripájame zariadenia, ktoré komunikujú iba pomocou dvoch hodnôt 0 a 1 (vtedy používame digitálne piny), Arduino vie prečítať aj signál, ktorý obsahuje plynule sa meniacu hodnotu (v skutočnosti je to elektrické napätie typicky medzi 0V a 5V) pomocou funkcie analogRead(číslo_analógového_pinu) - táto funkcia vráti hodnotu 0 (pre 0V) až 1023 (pre 5V)
  • Arduino môže do počítača vysielať texty alebo čísla, ktoré si na počítači môžeme zobraziť v sériovom monitore (ikonka vpravo hore): najskôr vo funkcii setup() nastavíme rýchlosť komunikácie: Serial.begin(9600); a potom v programe môžeme vyslať správu pomocou Serial.println("textová správa"); alebo Serial.println(123); - prípadne Serial.println(premenná); - ak namiesto println() použijeme print(), za výpisom sa nevytvorí nový riadok.
  • Táto komunikácia môže prebiehať aj opačným smerom: do horného riadku v serial monitore môžeme niečo napísať a stlačiť Send - vtedy sa zadaný text prenesie cez USB kábel z počítača do Arduina. V Arduine môžeme zistiť, či nejaká správa prišla pomocou funkcie Serial.available() - napr. v podmienke: if (Serial.available()} { prečítaj a spracuj správu... } - pričom správu môžeme čítať napr. po jednom znaku pomocou funkcie Serial.read()
  • zistili sme, že premenné môžu byť definované buď vnútri vo funkcii - vtedy sú viditeľné iba vnútri tejto funkcie, alebo mimo funkcií a vtedy sú viditeľné vo všetkých funkciách
  • hoci bežne sa v jednej premennej uchováva iba jedna hodnota, existujú aj premenné, v ktorých môžeme uchovať veľa hodnôt (napríklad 100) - sú to tzv. polia. Pole, do ktorého môžeme uložiť 100 čísel, vytvoríme takto:
    int pole[100];
    a potom môžeme zapísať hodnotu do hociktorej z vytvorených 100 položiek tohto poľa, napr.
    pole[33] = 1;
    zapíše do 34. položky číslo 1 (áno 34. položky, nie je to preklep, pretože sú číslované od 0). Hodnotu z poľa môžeme prečítať a použiť podobným spôsobom, napr: Serial.println(pole[7]); - vypíše na sériový port hodnotu 8. položky poľa. Pole sme využili na záznam rytmu.
  • Existujú dva druhy servo-motorov: bežné, ktoré sa otáčajú iba v rozmedzí 0-180 stupňov, ale môžeme im povedať do ktorej polohy sa majú natočiť a tzv. continuous, ktoré sa vedia točiť dookola oboma smermi. Servo motor riadime pomocou knižnice Servo.h a objektu Servo pomocou jeho metódy write(uhol), potom, čo vo funkcii setup() nastavíme pomocou metódy attach(), na ktorom pine je k Arduinu pripojené.