Gostaria de fazer com que quando pressionasse o botão, acendesse o led e ficasse aceso ate que o mesmo botão fosse pressionado, alguém sabe qual alteração deve ser feita no seguinte código?
const int led = 8;
const int botao = 2;
int estadoBotao = 0;
void setup() {
pinMode(led,OUTPUT);
pinMode(botao,INPUT);
Serial.begin(9600);
}
void loop() {
estadoBotao = digitalRead(botao);
if (estadoBotao == 1) {
digitalWrite(led,HIGH);
Serial.print("Aceso \n");
} else {
digitalWrite(led,LOW);
Serial.print("Apagado \n");
}
delay(10);
}
Tags:
Ola amigo, testa este ai pra ve se ta como vc quer.
const int led = 8;
const int botao = 2;
int estadoBotao = 0;
void setup() {
pinMode(led,OUTPUT);
pinMode(botao,INPUT);
Serial.begin(9600);
}
void loop() {
if (digitalRead(botao) == HIGH)
{ estadoBotao = !estadoBotao;}
if(estadoBotao == 1)
{
digitalWrite(led,HIGH);
Serial.print("Aceso \n");
}
if(estadoBotao == 0)
{
digitalWrite(led,LOW);
Serial.print("Apagado \n");
}
delay(700);// Este tempo não pode ser pequeno pois ele pode ler o botão varias vezes quando na verdade vc aperto somente uma vez.
}
Deu certo, obrigado!
cara, achei esse codigo aqui na NET:
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
}
}
int state = 0; // variable for reading the pushbutton status
int led = 0;
void setup() {
pinMode(13, OUTPUT);
digitalWrite(13,0); // inicia desligado
pinMode(2, INPUT);
digitalWrite(2,1);//pull up
}
void loop ()
{
state=digitalRead(2);
if (state == 0)
{
led =! led;
digitalWrite(13, led);
delay (500);
}
}
Boa tarde amigo, tenta esse código aqui, veja se há nescessidade de complemento ok ?
int led=5; // led no pino 13
int botao=7; // 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
}
}
Bem-vindo a
Laboratorio de Garagem (arduino, eletrônica, robotica, hacking)
© 2024 Criado por Marcelo Rodrigues. Ativado por