Social Icons

Mostrando postagens com marcador Pisca LED. Mostrar todas as postagens
Mostrando postagens com marcador Pisca LED. Mostrar todas as postagens

Piscando LED Sem delay()

Às vezes você precisa fazer piscar um Led (ou alguma outra função sensitiva de tempo) ao mesmo tempo que outra coisa (como observar o teclar de um botão por exemplo). Isso significa que você não pode usar a função delay, ou você pararia qualquer outro programa enquanto o Led pisca. Aqui segue um código que mostra como piscar um Led sem delay. O código mantém a informação da última vez que o Led ligou ou desligou. Assim, para cada loop ele checa se passou um intervalo de tempo suficiente; se passou tempo suficiente ele desliga o Led caso estivesse aceso, e vice-versa.





Código

int ledPin = 13;                // LED conectado na port digital 13
int value = LOW;                // ligado ou desligado? 
long previousMillis = 0;        //grava ultima posição (On/Off)
long interval = 1000;           // valor de intervalo em milisegundos

void setup()
{
  pinMode(ledPin, OUTPUT);      // sets the digital pin as output
}

void loop()
{
  // aqui você coloca o aódigo que irá rodar enquanto pisca o led
   // the interval at which we want to blink the LED.
  if (millis() - previousMillis > interval) {
    previousMillis = millis();   // remember the last time we blinked the LED

    // if the LED is off turn it on and vice-versa.
    if (value == LOW)
      value = HIGH;
    else
      value = LOW;

    digitalWrite(ledPin, value);
  }
}
 

Jeremy Blum Projects - Arduino Parte [1]



Achei esse cara pesquisando por ai ele cria VideoAulas toda semana sobre arduino e como criar coisas passo a passo muito simples e fácil.
Já esta na semana 11 mas eu colocarei aqui pouco à pouco por falta de tempo.
Para quem não entende inglês estarei explicando abaixo basicamente o que ele fez, mesmo sendo extremamente intuitivo o video não precisando necessariamente de tradução mas...

Episódio 1
Esse Episódio em específico trata sobre:

--> Arduino
--> LED
--> C/C++
--> Efeitos Pisca-Pisca (Blink no arduino.cc)

Após o video todos os código que precisara e circuitos:





/*
Jeremy's First Program
It's awesome!
*/

int ledPin = 13;

void setup()
{
  //initialize pins as outputs
  pinMode(ledPin, OUTPUT);
}

void loop()
{
  digitalWrite(ledPin, HIGH);
  delay(1000);
  digitalWrite(ledPin, LOW);
  delay(1000);
}