Este tópico contém 1 resposta, possui 2 vozes e foi atualizado pela última vez por  Felipe Santos 1 mês .

Visualizando 2 posts - 1 até 2 (de 2 do total)
  • Autor
    Posts
  • #433083

    v.andrade
    Participante

    Pessoal, tudo bem?

    Estou com uma dúvida em um código usando o delay().

    O funcionamento está correto até eu colocar delay() entre o acender de cada led.

    Veja o código:

    const int led1 = 8; // define LED
    const int led2 = 9; // define LED
    const int led3 = 10; // define LED
    const int led4 = 11; // define LED
    const int led5 = 12; // define LED
    const int botao = 2; // define botao

    int estadoBotao = 0; // define que o estado do botão é 0

    void setup() {
    // put your setup code here, to run once:
    pinMode (led1, OUTPUT); // define led1 como saída
    pinMode (led2, OUTPUT); // define led2 como saída
    pinMode (led3, OUTPUT); // define led3 como saída
    pinMode (led4, OUTPUT); // define led4 como saída
    pinMode (led5, OUTPUT); // define led5 como saída
    pinMode (botao, INPUT_PULLUP);
    }

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

    estadoBotao = digitalRead (botao);

    if (estadoBotao == LOW) { // se o estado do botão for ligado
    digitalWrite (led1, !estadoBotao); // acende led1
    digitalWrite (led2, !estadoBotao); // acende led2
    digitalWrite (led3, !estadoBotao); // acende led3
    digitalWrite (led4, !estadoBotao); // acende led4
    digitalWrite (led5, !estadoBotao); // acende led5
    } else { // se não, apaga todos os LEDS
    digitalWrite (led1, LOW);
    digitalWrite (led2, LOW);
    digitalWrite (led3, LOW);
    digitalWrite (led4, LOW);
    digitalWrite (led5, LOW);
    }
    }

    se eu colocar delay() entre cada digitalWrite ligando o LED, mesmo eu soltando o botão depois de acender o primeiro LED, ele não vai para a função else para desliga todos os LEDs.

    Alguém pode me ajudar?

    A ideia é que ao pressionar o botão, eu acenda 1 led de cada vez com uma pausa de 1 segundo e imediatamente ao soltar o botão, todos os LEDs se apaguem.

    #439682

    Felipe Santos
    Participante

    Boa tarde, aconselho você a utilizar no lugar do !estadoBotao a palavra HIGH em todos os digitalWrite()

    digitalWrite (led1, HIGH); // acende led1
    digitalWrite (led2, HIGH); // acende led2
    digitalWrite (led3, HIGH); // acende led3
    digitalWrite (led4, HIGH); // acende led4
    digitalWrite (led5, HIGH); // acende led5

    depois tente adicionar o delay() entre os LEDs

    isso deve funcionar.

Visualizando 2 posts - 1 até 2 (de 2 do total)

Você deve fazer login para responder a este tópico.