Úvod do Arduina

Vrchol našeho kroužku je práce s Arduiny. Přece jen, jsme programování hardware. Budeme pracovat s Arduino Uno. V DDM je máme fyzicky a budeme používat program Arduino IDE V2, doma si programování můžete zkoušet na simulátoru zde: https://wokwi.com/projects/new/arduino-uno. Arduino se neprogramuje v C#, na který jsme zvyklí, ale je programování v upraveném jazyce C++.

Jako první připojíme naše Arduino kabelem k počítači. Poté můžeme zapnout program Arduino IDE. Náš program by měl vypadat nějak takto:

Výběr zařízení

První musíme vybrat port, na kterém máme naše Arduino připojeno. To vybereme pomocí selektoru Select Board v levém horním rohu. V našem případě používáme Arduino Uno.

Struktura kódu

Jak můžete vidět na obrázku níže, náš kód obsahuje dvě části. setup obsahuje kód, který se spustí jednou na začátku. loop obsahuje kód, který se bude spouštět pořád dokola.

Konzole

Naše Arduino nám podobně, jako konzolové aplikace v C#, ukazují konzoli. Můžeme ji zobrazit pomocí tlačítka v pravém horním rohu.

Abychom mohli do konzole posílat text, musíme Arduinu říct, že ji má použít. Tuto tzv. inicializaci konzole provedeme následovně:

void setup() {
    // put your setup code here, to run once:
    Serial.begin(9600);
    Serial.println("Hello wolrd!");

  }

  void loop() {
    // put your main code here, to run repeatedly:

  }

Když se nyní podíváme do naší sériové konzole, měli bychom vidět nápis Hello World!

Pokud chceme, aby se nám text Hello world! ukazoval donekonečka, můžeme tuto část dát do loop části.

void setup() {
    // put your setup code here, to run once:
    Serial.begin(9600);
}
void loop() {
    // put your main code here, to run repeatedly:
    Serial.println("Hello world!");
}
Hello world!
Hello world!
Hello world!
Hello world!
Hello world!
Hello world!
Hello world!
Hello world!
Hello world!
Hello world!
Hello world!

Můžeme také rovnou například zkusit sečíst dvě čísla, kód bude vypadat následovně:

void setup() {
  // put your setup code here, to run once:
  Serial.begin(9600);
  Serial.println("Hello wolrd!");
  Serial.println(6 + 1);
}

void loop() {
  // put your main code here, to run repeatedly:

}

Při takovém kódu dostaneme následující výstup:

Hello wolrd!
7

Můžeme rovnou upravit kód tak, aby se nám vše ukázalo na jednom řádku. Pokud nechceme dát po vypsání další řádek, stačí nám použít Serial.print(); místo Serial.println(); .

void setup() {
    // put your setup code here, to run once:
    Serial.begin(9600);
    Serial.print("Součet čísel 6 a 1 = ");
    Serial.println(6 + 1);
}

void loop() {
    // put your main code here, to run repeatedly:

}
Součet čísel 6 a 1 = 7

Proměnné - int

Stejně jako v jiných programovacích jazycích, také zde máme proměnné. Definovat a sečíst dvě čísla můžeme následovně:

void setup() {
    // put your setup code here, to run once:
    Serial.begin(9600);

    int cislo1 = 6;
    int cislo2 = 1;

    Serial.println(cislo1 + cislo2);
}

void loop() {
    // put your main code here, to run repeatedly:

}
7

Můžeme také sečíst dvě čísla a uložit je do proměnné.

void setup() {
    // put your setup code here, to run once:
    Serial.begin(9600);

    int cislo1 = 6;
    int cislo2 = 1;
    int vysledek = cislo1 + cislo2;

    Serial.println(vysledek);
}

void loop() {
    // put your main code here, to run repeatedly:

}
7

Proměnné - String

Můžeme si definovat text jako String.

void setup() {
    // put your setup code here, to run once:
    Serial.begin(9600);

    String text = "Součet čísel 6 a 1 = ";

    int cislo1 = 6;
    int cislo2 = 1;
    int vysledek = cislo1 + cislo2;

    Serial.print(text);
    Serial.println(vysledek);
}

void loop() {
    // put your main code here, to run repeatedly:

}
Součet čísel 6 a 1 = 7

Úkol

Vytvořte program, který vypíše čísla od 1 do 15 bez toho, aby jste použili while. Použijte void loop().

int x = 1;

void setup() {
  // put your setup code here, to run once:
  Serial.begin(9600);
}

void loop() {
  // put your main code here, to run repeatedly:
  if (x <= 15) {
    Serial.println(x);
    x++;
  }
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15