É uma dúvida boba, mas não conseguir fazer um programa que liga e desliga um led atraves de um único botão, se alguem puder me ajudar.

Exibições: 4791

Responder esta

Respostas a este tópico

int switchPin = 10; // pino liga/desliga

int LEDPin = 11; // pino do LED

int switchPinValue = 0;

int status = 0;

void setup()

{

  pinMode(switchPin,INPUT);

  pinMode(LEDPin,OUTPUT);

void loop()

{

   switchPinValue=digitalRead(switchPin);

   if (switchPinValue != status)

   {

      digitalWrite(LEDPin,switchPinValue);

      status=switchPinValue;

   }

   delay(300); // Aqui vc pode experimentar outros valores

}

A idéia é armazenar o estado (high/low) do led numa variável. Assim, quando o botão for pressionado vc verifica através da variável se o led estava ligado ou desligado. Como no exemplo de código postado aqui pelo Mauro.

fiz assim, mas as vezes funciona outras não,


int led_1 = 13 ;


int button_1 = 8;
int val = 0;

int val_2 = 0;


void setup()

{
pinMode(led_1,OUTPUT);

pinMode(button_1,INPUT);

Serial.begin(9600);

}


void loop()
{

val = digitalRead(button_1);

delayMicroseconds(100);

digitalWrite(led_1,LOW);

if(val == LOW)

{

while(val == LOW)

{
digitalWrite(led_1,HIGH);

val_2 = digitalRead(button_1);

delayMicroseconds(100);


if(val_2 == LOW)

{
val = HIGH;

break;

}

}


}

}

RSS

© 2024   Criado por Marcelo Rodrigues.   Ativado por

Badges  |  Relatar um incidente  |  Termos de serviço