Aqui esta o codigo que estou a usar...

char comando;

int ledPin1 = 12; // the number of the LED pin
int ledState1 = LOW; // ledState used to set the LED
unsigned long previousMillis1 = 0; // will store last time LED was updated

int ledPin2 = 13; // the number of the LED pin
int ledState2 = LOW; // ledState used to set the LED
unsigned long previousMillis2 = 0; // will store last time LED was updated

long interval = 60000;

void setup()
{
// set the digital pin as output:
pinMode(ledPin1, OUTPUT);
pinMode(ledPin2, OUTPUT);
Serial.begin(9600);
}

void loop()
{
Alarm();
if (Serial.available() != 0){ // verificamos a existencia de dados serial
comando = Serial.read(); // comando recebe o dado lido na serial
Serial.println(comando);
switch(comando){ // função switch na variavel comando
case 'q': // caso comando seja a letra 'q'
digitalWrite(ledPin1, 1); // led1 vai para o nivel logico HIGH (1)
ledState1 = HIGH;
previousMillis1 = millis();
break; // finaliza o switch
case 'a':// caso comando seja a letra 'a'
digitalWrite(ledPin1, 0); // led1 vai para o nivel logico LOW (0)
break; // finaliza o switch
case 'w':
digitalWrite(ledPin2, 1);
ledState2 = HIGH;
previousMillis2 = millis();
break;
case 's':
digitalWrite(ledPin2, 0);
break;}}


}

void Alarm() {

if(ledState1 == HIGH) {

if((long)millis() - previousMillis1 > interval)
{
ledState1 = LOW; // Turn it off
digitalWrite(ledPin1, LOW); // Update the actual LED
}}


if(ledState2 == HIGH) {

if(millis() - previousMillis2 > 500)
{
ledState2 = LOW; // Turn it off
digitalWrite(ledPin2, LOW); // Update the actual LED
}}


}

Exibições: 926

Responder esta

Respostas a este tópico

e qual é a sua dúvida, amigo?

Boas, era so para mostrar o codigo, tinha uma duvida no tempo do intervalo, mas era problema do simulador online, depois testei em casa no arduino e funciona tudo bem... Obg

RSS

© 2024   Criado por Marcelo Rodrigues.   Ativado por

Badges  |  Relatar um incidente  |  Termos de serviço