Ir ao conteúdo
  • Cadastre-se
lithium_ion

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;
  }

}

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

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...

Compartilhar este post


Link para o post
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;
  }

}

 

 

Compartilhar este post


Link para o post
Compartilhar em outros sites
Este tópico está parado há muito tempo. Certifique-se que a sua mensagem tem a ver com o tema sendo discutido. Obrigado.

Junte-se à conversa

Você pode postar agora e cadastrar-se depois. Se você tem uma conta, faça o login para postar.

Visitante
Responder

×   Você colou conteúdo com formatação.   Restore formatting

  Só é possível ter até 75 emoticons.

×   O link foi automaticamente convertido para mostrar o conteúdo.   Clique aqui para mostrá-lo como link comum

×   Seu texto anterior foi restaurado.   Limpar o editor

×   You cannot paste images directly. Upload or insert images from URL.






Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas publicações 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...

GRÁTIS: minicurso “Como ganhar dinheiro montando computadores”

Gabriel TorresGabriel Torres, fundador e editor executivo do Clube do Hardware, acaba de lançar um minicurso totalmente gratuito: "Como ganhar dinheiro montando computadores".

Você aprenderá sobre o quanto pode ganhar, como cobrar, como lidar com a concorrência, como se tornar um profissional altamente qualificado e muito mais!

Inscreva-se agora!