-
Notifications
You must be signed in to change notification settings - Fork 0
Čítanie tlačidiel
V tomto programe si vyskúšame čítať vstup z tlačidiel. Na konci článku je celý program.
Na čítanie tlačidiel si musíme najprv do programu načítať knižnicu robot/button.h
#include <robot/button.h>Potom si vytvoríme objekt tlačidla.
Button tlacidlo1(buttonIndex);Kde buttonIndex je číslo tlačidla. Hodnoty sú od 0 do 5.
Hodnotu tlačidla vieme zistiť funkciou isPressed(), ktorá nám vráti:
-
trueak je tlačidlo stlačené -
falseak tlačidlo nieje stlačené
bool tlacidloStlacene = tlacidlo1.isPressed();Šrobko vie komunikovať s počítačom pomocou sériového portu. Sériový port inicializujeme takto:
Serial.begin(rychlostPrenosu);Rýchlosť prenosu je zvyčajne 9600.
Keď chceme niečo poslať počítaču, použijeme príkaz Serial.println()
Serial.println("sprava");Na vyhodnotenie vstupu z tlačidlá budeme potrebovať podmeinky. Pomocou nich vieme programu povedať čo má robiť ak sa niečo stane.
Tu je jeden príklad podmienky
if (vyraz) {
// Kod, ktory sa vykona ak je podmenka splnena.
}Do podmienky píšeme logický výraz. Tu je niekoľko typov logických výrazov:
-
a == ba je rovné b -
a < ba je menšie ako b -
a <= ba je menšie alebo rovné b -
a > ba je väčšie ako b -
a >= ba je väčšie alebo rovné b -
a != ba sa nerovná b
Ak chceme niečo vykonať pri nesplnení podmienky, použijeme if-else
if (vyraz) {
// Ak podmienka plati.
} else {
// Ak podmienka neplati.
}Ak chceme mať viacero podmienok za sebou, môžme napísať:
if (vyraz1) {
// Ak podmienka plati.
}
if (vyraz2) {
// Ak podmienka plati.
}
if (vyraz3) {
// Ak podmienka plati.
}
.
.
.Ale efektívnejšie to je napísať pomocou else if:
if (vyraz1) {
// Ak vyraz1 plati.
} else if (vyraz2) {
// Ak vyraz1 neplati a vyraz2 plati.
} else if (vyraz3) {
// Ak vyraz1 a vyraz2 neplati a vyraz3 plati.
} else {
// Ak ziadna podmienka neplati.
}Najprv si načítame potrebné knižnice.
// Pridanie kniznic srobka.
#include <Arduino.h>
#include <robot/types.h>
#include <robot/motors.h>
#include <robot/button.h>Potom si vytvoríme potrebné premenné.
HeadPosition position;
Motors motors;
Button b1(0);
Button b2(1);Vo funkcií setup() si spustíme komunikáciu s počítačom.
// Program zbehne raz.
void setup() {
Serial.begin(9600);
}Vo funkcií loop() čítame vstup z tlačidlá a otáčame hlavou.
// Program sa opakuje.
void loop() {
if (b1.isPressed()) {
Serial.println("tlacidlo 1 je stlacene");
position.headX = 90;
motors.moveHead(position);
} else if (b2.isPressed()) {
Serial.println("tlacidlo 2 je stlacene");
position.headX = -90;
motors.moveHead(position);
} else {
position.headX = 0;
motors.moveHead(position);
}
}
// Pridanie kniznic srobka.
#include <Arduino.h>
#include <robot/types.h>
#include <robot/motors.h>
#include <robot/button.h>
HeadPosition position;
Motors motors;
Button b1(0);
Button b2(1);
// Program zbehne raz.
void setup() {
Serial.begin(9600);
}
// Program sa opakuje.
void loop() {
if (b1.isPressed()) {
Serial.println("tlacidlo 1 je stlacene");
position.headX = 90;
motors.moveHead(position);
} else if (b2.isPressed()) {
Serial.println("tlacidlo 2 je stlacene");
position.headX = -90;
motors.moveHead(position);
} else {
position.headX = 0;
motors.moveHead(position);
}
}