Hub 010 - Piscar 2 leds com intervalos diferentes usando a função millis() - Arduino

Básico - Hub 010

Fazer Piscar 2 usando a função millis()

 

Sugerido por: Jhulio Cesar ENVIAR SUGESTÃO

Objetivo

Monte um circuito com 2 LEDs (um vermelho e um verde) e faça um programa blink "duplo", que faça com que os 2 LEDs pisquem, cada um, com um intervalo diferente. O vermelho deve piscar com um intervalo de 0,6 segundo e o verde com um intervalo de 2 segundos. Nesta implementação, o comando "delay" não poderá ser utilizado. Dica: utilize a função "millis()".

Componentes necessários

Referência

Componente

Quantidade

Imagem

Observação

Protoboard Protoboard 830 pontos 1 Resultado de imagem para protoboard 830v

No mínimo utilizar protoboard com 400 pontos

Jumpers Kit cabos ligação macho / macho 1  
Led 5mm

LED 5mm

2

No projeto utilizamos 2 leds (1 vermelho e 1 verde)

Você também poderá utilizar LEDs de 5 ou 3 mm nas cores que desejar, alto brilho ou difuso.

Resistor

Resistor

2

2 Resistores 150Ω (ou superiores)

Se precisar usar outros valores, calcule o resistor apropriado para o led utilizado

Arduino UNO R3 Arduino UNO 1

Você poderá utilizar uma placa Arduino UNO original ou similar

Montagem do Circuito - Simulação


Referências

Como usar temporizadores no Arduino

millis() - Documentação de Referência do Arduino

Código do Projeto (Sketch)

Faça o download e abra o arquivo hub010.ino no IDE do Arduino: DOWNLOAD - hb010.ino

Ou se preferir, copie e cole o código abaixo no IDE do Arduino:

/*******************************************************************************
*
*    Hub 10 - 2 Leds piscam em intervalos diferentes com millis() - Arduino
*    Autor: Angelo Luis Ferreira
*    18/05/2021
*    http://squids.com.br/arduino
*
*******************************************************************************/

// define pinos 
const int ledVermelho = 13;
const int ledVerde = 7;

// declara variáveis
unsigned long anteriorVermelho;
unsigned long anteriorVerde;
boolean ligaVermelho = 0; // desligado 
boolean ligaVerde = 0; // desligado 

// inicialização
void setup() {
  // define modo (INPUT ou OUTPUT) 
  pinMode(ledVermelho, OUTPUT);
  pinMode(ledVerde, OUTPUT);  
}

// loop infinito
void loop() {
  // pegar valor de millis() atual
  unsigned long atual = millis();

  // faz piscar led vermelho (intervalo 0.6s)
  if (atual - anteriorVermelho > 600) {
    digitalWrite(ledVermelho, ligaVermelho);
    ligaVermelho = !ligaVermelho;
    anteriorVermelho = atual;
  }

  // faz piscar led verde (intervalo 2s)
  if (atual - anteriorVerde > 2000) {
    digitalWrite(ledVerde, ligaVerde);
    ligaVerde = !ligaVerde;
    anteriorVerde = atual;
  }  
}

Simulação

O anúncio abaixo ajuda a manter o Squids Arduino funcionando

Comentários

×

Infomações do site / SEO








×

Adicionar Marcadores