Close

Začátečnická chyba

Úvodní stránka Fórum Vaše projekty Arduino Začátečnická chyba

Aktuálně jsou na stránce zobrazeny 3 příspěvky - 1. až 3. (celkem z 3)
  • Autor
    Příspěvky
  • #11189
    pedyngro
    Účastník

    Zdravím
    Jakožto úplný začátečník s Arduinem jsem začal postupovat podle e-booku průvodce světem Arduina, kde jsem se zatím dostal ke druhému příkladu, kde se poprvé pracuje s tlačítkem jako se vstupem (zde: https://bastlirna.hwkitchen.cz/zakladni-struktury-jazyka-wiring/ )
    Program funguje tak, že kdž zmáčknu tlačítko, vstup to přečte a rozsvítí se dioda.

    Jakožto ne úplný začátečník v programování jsem se funkci programu pokusil invertovat (tlačítkem zhasínám diodu)následujícím způsobem:

    byte cteni;
    byte led = 50;
    byte tlacitko = 52;
    void setup() {
    pinMode(led,OUTPUT);
    pinMode(tlacitko,INPUT);
    Serial.begin(9600);
    }
    void loop() {
    Serial.println(„loop“);
    digitalWrite(led,HIGH);
    cteni = digitalRead(tlacitko);
    while(cteni == 1){
    digitalWrite(led,LOW);
    Serial.println(„low“);
    }
    }

    Po stisku tlačítka sice dioda zhasne, ale pak už se nerozsvítí. Přidal jsem proto do programu printy a zjistil jsem, že se vždy z nějakého důvodu zasekne ve while cyklu a zbytek loopu už neprovede.

    Nevíte, kde jsem mohl udělat chybu?

    #11191
    pedyngro
    Účastník

    Už jsem to vyřešil trochu šikovnějším kódem:

    byte led = 50;
    byte tlacitko = 52;
    void setup() {
    pinMode(led,OUTPUT);
    pinMode(tlacitko,INPUT);
    Serial.begin(9600);
    }

    void loop() {
    cteni = digitalRead(tlacitko);
    if(cteni == 0){
    Serial.println(„high“);
    digitalWrite(led,HIGH);
    }
    else if(cteni == 1){
    digitalWrite(led,LOW);
    Serial.println(„low“);
    }
    }

    Stejně ale nevím, kde jsem předtím udělal chybu…

    #11192
    pedyngro
    Účastník

    Právě jsem se dozvěděl o možnosti INPUT_PULLUP 😀
    Rád bych ale věděl, proč nefungovala první verze

Aktuálně jsou na stránce zobrazeny 3 příspěvky - 1. až 3. (celkem z 3)
  • Pro reakci na toto téma se musíte přihlásit.