Básico - Hub 010

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

 

Sugerido por: Jhulio Cesar

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 830 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 - Calcular Resistor ou use a Tabela Resistor para Leds

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

Compartilhe:

Doações

Contribua pra manter o site online :)

Inscreva-se no canal Squids

Squids Arduino News

Desafio 88 - Projeto I12 Cronômetro contador de voltas com sensor infravermelho Com base no projeto I12 - Cronômetro com pause controlado por leds infravermelhos - Arduino resolva os seguintes ...

Intermediário - Projeto 12 Cronômetro com pause, sensor infravermelho e reset - Arduino Objetivo Criar um cronômetro utilizando o módulo TM1637 (opcional) e/ou o display LCD com pause controla...

Básico - Hub 013 Cronômetro com pause e reset (interrupção por timer)   Sugerido por: Wagner G L Objetivo O objetivo é adaptar o Projeto 64 - Cronômetro com display TM1637 e Arduino acresc...

Básico - Hub 012 Cronômetro com pause e reset   Sugerido por: Wagner G L Objetivo O objetivo é adaptar o Projeto 64 - Cronômetro com display TM1637 e Arduino acrescentando botões de pause ...

Básico - Hub 011 Acertar número aleatório usando potenciômetro - jogo   Sugerido por: Juliandrew Facundo Para iniciar o jogo deve-se pedir ao usuário que digite o valor 1 no teclado do comp...

Outros artigos

Mais: Desafios Projetos Intermediários Básico Projetos Básicos Arduino Maker

Você está preparado?

Topo