Ir ao conteúdo
  • Cadastre-se

Código arduino não funciona


Posts recomendados

Olá! para aprender a usar a função de pino de entrada fiz o código a seguir e ele não funciona na prática. Não acusa erro nenhum, mas os LEDs não acendem, não muda o estado, nada acontece. O que pode ser? Sempre que eu tento outro código com os LEDs nessa mesma configuração (so que nao sendo acionados por botao) eles funcionam.

int botao = 8;
int led1 = 7;
int led2 = 6;
int estadobotao = digitalRead(botao);

void setup() {
pinMode(botao, INPUT_PULLUP);
pinMode(led1, OUTPUT);
pinMode(led2, OUTPUT); 

}

void loop() {
  if (estadobotao == HIGH){
    led1 = HIGH;
    led2 = LOW;
  }else{
    led1 = LOW;
    led2 = HIGH;
  }

}

 

Link para o comentário
Compartilhar em outros sites

  • Membro VIP

você não está lendo em tempo real (dentro do loop) o estadobotao e sim só na inicialização. Tente...

void loop() {
  estadobotao = digitalRead(botao);
  if (estadobotao == HIGH)
    {
    led1 = HIGH;
    led2 = LOW;
    }
    else
    {
    led1 = LOW;
    led2 = HIGH;
    }
}

Não, não entendo do arduino.

De nada...

Link para o comentário
Compartilhar em outros sites

Bem,você colocar no inicio isto : "int estadobotao = digitalRead(botao);"

e depois para ler o botton você coloca isto "if (estadobotao == HIGH)",

contudo o que você fez foi ler o botão uma vez apenas no inicio,depois fica no mesmo resultado.

Você teria varias alternativas:

  • Na linha anterior a "if (estadobotao == HIGH)" você coloca "estadobotao = digitalRead(botao);",mantendo todo resto codigo.
  • Troca  "if (estadobotao == HIGH)" por "if ( digitalRead(botao)== HIGH)",mantendo todo o resto do codigo.
  • Troca  "int estadobotao = digitalRead(botao);" por " #define digitalRead(botao)"

Essas seriam algumas alternativas,mais seria interessante você dar um aprofunda em c,tentar entender "define",isto é bom principalmente quando principal refatorar código.

16 horas atrás, lithium_ion disse:

Olá! para aprender a usar a função de pino de entrada fiz o código a seguir e ele não funciona na prática. Não acusa erro nenhum, mas os LEDs não acendem, não muda o estado, nada acontece. O que pode ser? Sempre que eu tento outro código com os LEDs nessa mesma configuração (so que nao sendo acionados por botao) eles funcionam.


int botao = 8;
int led1 = 7;
int led2 = 6;
int estadobotao = digitalRead(botao);

void setup() {
pinMode(botao, INPUT_PULLUP);
pinMode(led1, OUTPUT);
pinMode(led2, OUTPUT); 

}

void loop() {
  if (estadobotao == HIGH){
    led1 = HIGH;
    led2 = LOW;
  }else{
    led1 = LOW;
    led2 = HIGH;
  }

}

 

 

  • Curtir 1
Link para o comentário
Compartilhar em outros sites

Visitante
Este tópico está impedido de receber novas respostas.

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...