Arduino – proměnné

Prosím pravověrné programátory se zkušenostmi, aby tento článek přeskočili. Případně, aby si při čtení zacpali pusu, sedli na ruce a zavázali šátkem oči. Tyto mé článečky jsou určené primárně dětem, které chodí na mé kroužky robotiky, případně rodičům (laikům), kteří spolu s dětmi doma objevují svět robotiky prostřednictvím arduina. Nehraji si tedy na programátorského guru (ani zdaleka), jde mi spíše o základy a motivaci do dalšího robokutění.

Proměnná

Asi by se slušelo na začátek napsat o čem že to vlastně mluvíme. Představte si program, který běží, jako velkou dílnu, kde se něco vyrábí. Po stolech se válí spousta materiálu-dat, mezi kouty dílny jezdí vozíky ve kterých se převáží sem a tam rozpracované výrobky a materiál – data. Úplně stejně to funguje při práci programu v arduinu. Program potřebuje někam ukládat data se kterými pracuje a v případě potřeby je zase z uložených míst vybírat. Pro tento účel se v arduinu používá paměť typu RAM (přepisovatelná), kde jsou malé vyhrazené prostory kam je možné data ukládat. Každý takovýto prostor má určitou velikost a název, aby ho bylo schopné arduino nalézt.

Deklarace proměnné cislo a vložení hodnoty do proměnné

Na obrázku si můžeme představit, jak to vlastně funguje. Máme šuplík na kterém je cedulka „cislo“. Šuplík je proměnná a cedulka na něm je jméno proměnné. V šuplíku je vložené číslo 8. Prostor v šuplíku je obsah proměnné a můžeme tedy říci, že proměnná cislo obsahuje číslo 8. Procesu, kterým v kódu řekneme s jakými proměnnými může arduino a program počítat se říká deklarace proměnné. Hodnotu do proměnné přiřadíme velmi jednoduše prostřednictvím znaménka „=“. Přesně jak je to na obrázku – „cislo = 8;„.

Jméno proměnné

Jméno proměnné si nemůžeme jen tak vycucat z prstu. Tvorba jmen proměnných má určitá pravidla a je třeba je respektovat, jinak nám editor programu arduina „odmítne“ schválit vytvářený program.

  • proměnná by neměla obsahovat mezery, písmenka s diakritikou (ěščřžýáíéúů), spodní tečkou (.), čárkou(,), lomítkem (/), znaky pro aritmetické operace (+,*,-,/,>,<,), závorky ((,),{,},[,]) a další speciální znaky, jejichž výčtem vás nebudu unavovat.
  • čísla ve jméně proměnné být mohou, ale ne na začátku. Není tedy povolena proměnná se jménem „1“, ovšem „test1“ bez problémů projde.
  • Pro jména proměnných nepoužívejte příkazy jazyka wiring, jen vyrobíte chaos.
  • Při vymýšlení jmen se snažte být jednodušší, ale zároveň popisní. Občas mi vtipálci vymýšlejí proměnné s náhodným shlukem písmen a sami sebe tím pěkně vytrestají v další práci.

Datové typy proměnných

Asi vás nepřekvapí, že pro zápis obsahu potřebujeme rozdílnou velikost paměti. Pokud chceme zapsat do paměti číslo 1, vejde se do mnohem menšího paměťového prostoru než číslo 4528974523695147852. Ale arduino nemá paměti neomezené množství a proto s ní musí hospodařit efektivně a hospodárně. Pro tento účel existují určité značky/tagy, které se používají při deklaraci proměnné. Na základě použitého tagu pak arduino pro každou proměnnou zarezervuje příslušně velký paměťový prostor.

typ proměnnévelikostrozsah se znaménkemrozsah bez znaménkapoužití
char8b-128 až 1270-255nízká čísla, číselné vyjádření znaků v kódu ASCII
int16b-32168 až 327670 – 65535nízká a středně vysoká celá čísla
long32b-2147483648 až 21474836470 až 4294967295vysoká čísla
boolean8btrue/falsetrue/falselogické operace typu pravda/nepravda
float32bvelmi vysoká čísla s desetinnou čárkou
double64bvelmi vysoká čísla s desetinnou čárkou
Přehled základních typů proměnných v jazyce wiring

Tip: Zkuste si nanečisto zadávat hodnoty do proměnných v prostředí arduino IDE. Pomoci by vám mohl následující obrázek. Nechte program prověřit, jestli jste hodnotu do proměnné vložili správně.

Deklarace různých typů proměnných

Testujeme proměnnou

Zkusíme si provést velmi jednoduchou „zkoušečku“ na proměnnou typu integer a zároveň si tím můžeme ukázat, jak jednoduše můžeme využít proměnnou v praxi. Zapojte si následující obvod.

Zkoušečka proměnné

Do arduina pak vložte následující kód.

/*
Program pro demonstraci vložené hodnoty
do proměnné testovaci_promenna
*/
int testovaci_promenna = 3;

void setup() {
pinMode(2,OUTPUT);
pinMode(3,OUTPUT);
pinMode(4,OUTPUT);
}


void loop() {
if (testovaci_promenna==0)
//pokud je proměnná 0
{
digitalWrite(2,0);
digitalWrite(3,0);
digitalWrite(4,0);
}
else if (testovaci_promenna==1)
//pokud je proměnná 1
{
digitalWrite(2,1);
digitalWrite(3,0);
digitalWrite(4,0);
}
else if (testovaci_promenna==2)
//pokud je proměnná 2
{
digitalWrite(2,0);
digitalWrite(3,1);
digitalWrite(4,0);
}
else if (testovaci_promenna==3)
//pokud je proměnná 3
{
digitalWrite(2,0);
digitalWrite(3,0);
digitalWrite(4,1);
}
}
program pro testování proměnných

Na začátku programu je deklarována proměnná se jménem „testovaci_promenna“, je do ní hned vložena hodnota 3. Tuto hodnotu si můžete zkusit měnit. Pokud nabude hodnoty 1,2 nebo 3. Rozsvítí se vám v obvodu LED diody určené pro signalizaci dané hodnoty.

Úkoly:

Zkuste rozšířit zkoušečku tak, aby ukazovala i další hodnoty proměnné.

Zkuste přeprogramovat zkoušečku tak, aby byla schopná ukazovat další hodnoty proměnné bez toho, abyste měnili jakkoliv obvod zkoušečky. Měnit je možné pouze vložený program.

1 komentář u „Arduino – proměnné

  1. Pingback: Monitor sériové komunikace – ondranauci.cz

Napsat komentář

Vaše e-mailová adresa nebude zveřejněna. Vyžadované informace jsou označeny *