Tlačítko

V dnešní hodině si ukážeme, jak pracovat s tlačítky. V našem edushield je tlačítko na pinu číslo 2. Více info ohledně pinů v edushield: https://github.com/arduino-edushield/edushield/blob/master/extras/learning/course/cz/cheatsheet.md

Následující kód nám zařídí, že se bude do konzole vypisovat číslo 0, pokud je tlačítko stisknutu. Pokud není, bude se nám vypisovat číslo 1.

#define button 2

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

void loop() {
  // put your main code here, to run repeatedly:
  int b = digitalRead(button);
  Serial.println(b);
}

Vzhledem k tomu, že víme, že 0 znamená že tlačítko bylo stisknuto a 1 znamená že tlačítko bylo puštěno, můžeme si pomocí podmínky výstup trochu zpřehlednit.

#define button 2

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

void loop() {
  // put your main code here, to run repeatedly:
  int b = digitalRead(button);

  if (b == 0) {
    Serial.println("Tlačítko bylo stisknuto");
  }
  else if (b == 1) {
    Serial.println("Tlačítko bylo puštěno");
  }
}

Můžeme si rovnou vytvořit pro uživatele trochu přívětivější kód, kdy se nám do konzole vypíše pouze změna stavu:

#define button 2
int lastState = 1;

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

void loop() {
  // put your main code here, to run repeatedly:
  int b = digitalRead(button);

  if (lastState != b){
    if (b == 0) {
      Serial.println("Tlačítko bylo stisknuto");
    }
    else if (b == 1) {
      Serial.println("Tlačítko bylo puštěno");
    }
    lastState = b;
  }
}

Zadání

Vzpomeňte si na předchozí lekci a vytvořte program, který rozsvítí diodu, pokud je tlačítko stisknuto. Pokud bude tlačítko puštěno, dioda zhasne. Led diodu máte připojenou na pinu číslo 13.

Doporučuji pro led diodu nastavit následující kód v části setup: pinMode(led,OUTPUT);, čímž Arduinu řeknete, že tam je led dioda a bude tam posílat vyšší proud -> led dioda bude svítit více.

Nezapomeňte odevzdat váš kód do Google Učebny: https://classroom.google.com/c/NTkwMDUxNjcyMjUy/a/Njc0MTQzNTQ2MTk2/details

Příliš snadné?

Na arduinu máme také další led diody na pinech 16 a 17. Udělejte kód, kdy se při stisknutí tlačítka rozsvítí jedna z těchto diod a po opětovném stisknutí ta co nyní svítí zhasne a rozsvítí se jiná.