Fala pessoal,

Alguém pode me ajudar?

O problema é o seguinte:

Estou tentando fazer dois leds piscarem descompassadamente. Ou seja, um pisca mais rápido e o outro mais devagar.

O problema é que por mais que eu tente qualquer tipo de comparação lógica entre os tempos(interval  e intervala) ou ele soma o tempo ou os leds ficam acessos direto.

Qualquer ajuda é bem vinda, alguma leitura na net mesmos valeu

segue a baixo o programa:

const int ledPin = 13;
const int ledPin1 = 12;
int ledState = LOW;
int ledState1 = HIGH;
long previousMillis = 0;
long interval = 2000;
long intervala = 500;
void setup() {
pinMode(ledPin, OUTPUT);
pinMode(ledPin1, OUTPUT);
}
void loop()
{
unsigned long currentMillis = millis();
if(currentMillis - previousMillis > interval) {
previousMillis = currentMillis;
if ((ledState == LOW)&&(ledState1 == HIGH))
{ledState = HIGH; ledState1 = LOW;}
else
{ledState = LOW; ledState1 = HIGH;}
digitalWrite(ledPin, ledState);
digitalWrite(ledPin1, ledState1);
}
}

Exibições: 341

Responder esta

Respostas a este tópico

Isso acontece pq o processamento é linear, executa uma linha de cada vez, não há como deixar os dois funcionando paralelamente, ao menos não que eu saiba, pode ser que tenha. O que você pode fazer é, enquanto um está aceso ou desligado o outro pisque mais vezes. por exemplo:

digitalWrite(ledPin, HIGH);

digitalWrite(ledPin1,HIGH);

delay(500);

digitalWrite(ledPin1,LOW);

delay(500);

digitalWrite(ledPin, LOW);

digitalWrite(ledPin1,HIGH);

delay(500);

digitalWrite(ledPin1,LOW);

delay(500);

Nesse exemplo, enquanto um está aceso ou apagado(dura um segundo cada estado) o outro pisca duas vezes(dura meio segundo cada estado).

O valeu pela resposta.....
A questao era q eu nao queria usar o delay...
sobre o processamento linear eu vi alguma coisa sobre "thread" uma biblioteca q simula um processamento "duplo" nao pesquisei direito...
A ideia desse programa era fazer um sinaleiro q fica piscando o amarelo quando desligado, ai vc aperta o botao e ele funciona normal mas a qual quer momento q vc aperte o botao ele volte a desligar. Independente do estado q esteja os leds.
Cara valeu.... muito obrigado pela sua atencao

RSS

© 2024   Criado por Marcelo Rodrigues.   Ativado por

Badges  |  Relatar um incidente  |  Termos de serviço