Olha eu fiz um projeto basico Ao clicar no botão, o led acende, e ao clicar novamente ele apaga, esta funcionando só que não entendi o codigo:

int led=13; // led no pino 13
int botao=12; // botão no pino 12
int var=0; // valor instantaneo enviado pelo botão
int var2=0; // valor guardado
int estado=0; // guarda o valor 0 ou 1 (HIGH ou LOW)
void setup()
{
pinMode(led,OUTPUT);
pinMode(botao,INPUT);
}
void loop()
{
var=digitalRead(botao); // ler o valor enviado pelo botão: "HIGH" ou "LOW"
if ((var == HIGH) && (var2 == LOW)) {
estado = 1 - estado;
delay(20); // de-bouncing
}
var2=var;
if (estado == 1) {
digitalWrite(led, HIGH); // liga o led
} else {
digitalWrite(led, LOW); // desliga o led
}
}

Não entendi :

var2=var;
if (estado == 1) {
digitalWrite(led, HIGH); // liga o led
} else {
digitalWrite(led, LOW); // desliga o led

E

var=digitalRead(botao); // ler o valor enviado pelo botão: "HIGH" ou "LOW"
if ((var == HIGH) && (var2 == LOW)) {
estado = 1 - estado;
delay(20); // de-bouncing

Espero que me ajudem

Exibições: 1409

Responder esta

Respostas a este tópico

Na primeira parte

var=digitalRead(botao); // ler o valor enviado pelo botão: "HIGH" ou "LOW"
if ((var == HIGH) && (var2 == LOW)) {
estado = 1 - estado;
delay(20); // de-bouncing


serve para pegar o estado do botao (HIGH ou LOW) e guardar na variavel var

depois no IF ele verifica se o botao está em HIGH e se antes ele estava em LOW (var2), se sim, ele define o valor 1 para a variavel estado.

Na segunda parte

var2=var;
if (estado == 1) {
digitalWrite(led, HIGH); // liga o led
} else {
digitalWrite(led, LOW); // desliga o led


var2 recebe o valor de var para que este passe a ser o estado anterior, e verifica se a variavel estado esta em 1, se sim, acende o led, e caso o valor da variavel estado seja 0, o led apaga.

Espero ter ajudado

RSS

© 2024   Criado por Marcelo Rodrigues.   Ativado por

Badges  |  Relatar um incidente  |  Termos de serviço