Arduino - Piscar Vários LEDs

Este tutorial ensina você a programar um Arduino para fazer vários LEDs piscarem ao mesmo tempo sem usar a função delay. O tutorial traz o código de duas formas:

Vamos usar três LEDs como exemplo. Você pode modificar facilmente o código para dois LEDs, quatro LEDs ou até mais.

Hardware Necessário

1×Arduino Uno R3
1×Cabo USB 2.0 tipo A/B (para PC com USB-A)
1×Cabo USB 2.0 tipo C/B (para PC com USB-C)
1×LED Kit
1×LED (red)
1×LED Module
1×(Alternativa) Button and LED Kit
1×220Ω Resistor
1×Protoboard
1×Fios Jumper
1×(Recomendado) Shield com Bornes de Parafuso para Arduino Uno
1×(Recomendado) Sensors/Servo Expansion Shield for Arduino Uno
1×(Recomendado) Shield de Protoboard para Arduino Uno
1×(Recomendado) Case para Arduino Uno
1×(Recomendado) Placa Base de Prototipagem e Kit de Protoboard para Arduino Uno

Or you can buy the following kits:

1×DIYables STEM V3 Starter Kit (Arduino included)
1×DIYables Sensor Kit (18 sensors/displays)
Divulgação: Alguns dos links desta seção são links de afiliado da Amazon. Podemos receber uma comissão pelas compras feitas por meio desses links, sem custo adicional para você. Agradecemos o seu apoio.

Buy Note: Use the LED Module for easier wiring. It includes an integrated resistor.

Sobre o LED

Temos um tutorial detalhado sobre LED, com a pinagem do hardware, o princípio de funcionamento, a ligação com o Arduino e instruções de código. Saiba mais aqui:

Diagrama de Ligação

Diagrama de ligação de vários LEDs com Arduino

This image is created using Fritzing. Click to enlarge image

Código Arduino - Piscar Vários LEDs

Para piscar vários LEDs ao mesmo tempo, não podemos depender da função delay(). Isso porque usar delay() bloqueia a execução de outros códigos, o que nos impede de piscar vários LEDs ao mesmo tempo. Em vez disso, usamos a função millis() para gerenciar os timestamps de forma eficaz.

Para iniciantes, gerenciar timestamps enquanto pisca vários LEDs pode ser difícil. Felizmente, a biblioteca ezLED simplifica esse processo, gerenciando os timestamps internamente. Assim, quem usa a biblioteca não precisa se preocupar com os timestamps. Além disso, usar um array de LEDs pode deixar o código mais claro e conciso.

/* * Este código de Arduino foi desenvolvido por pt.newbiely.com * Este código de Arduino é disponibilizado ao público sem nenhuma restrição. * Para tutoriais completos e diagramas de ligação, visite: * https://pt.newbiely.com/tutorials/arduino/arduino-blink-multiple-led */ #include <ezLED.h> // ezLED library by ArduinoGetStarted.com #define PIN_LED_1 7 // The Arduino pin connected to LED 1 #define PIN_LED_2 8 // The Arduino pin connected to LED 2 #define PIN_LED_3 9 // The Arduino pin connected to LED 3 ezLED led1(PIN_LED_1); // create ezLED object that attach to pin PIN_LED_1 ezLED led2(PIN_LED_2); // create ezLED object that attach to pin PIN_LED_2 ezLED led3(PIN_LED_3); // create ezLED object that attach to pin PIN_LED_3 void setup() { Serial.begin(9600); led1.blink(500, 500); // 500ms ON, 500ms OFF, blink immediately led2.blink(200, 800); // 200ms ON, 800ms OFF, blink immediately led3.blink(800, 200); // 800ms ON, 200ms OFF, blink immediately } void loop() { led1.loop(); // MUST call the led1.loop() function in loop() led2.loop(); // MUST call the led2.loop() function in loop() led3.loop(); // MUST call the led3.loop() function in loop() // DO SOMETHING HERE }

Passos Rápidos

  • Faça a ligação conforme a imagem acima.
  • Conecte a placa Arduino ao seu PC por meio de um cabo USB
  • Abra o Arduino IDE no seu PC.
  • Selecione a placa Arduino correta (por exemplo, Arduino Uno) e a porta COM.
  • Clique no ícone Libraries na barra esquerda do Arduino IDE.
  • Pesquise “ezLED” e encontre a biblioteca de LED da ArduinoGetStarted
  • Clique no botão Install para instalar a biblioteca ezLED.
Biblioteca de LED para Arduino
  • Copie o código acima e cole-o no Arduino IDE.
  • Compile e carregue o código na placa Arduino clicando no botão Upload do Arduino IDE
Como carregar o código Arduino no Arduino IDE
  • Observe o estado dos LEDs

Código Arduino - Piscar Vários LEDs Usando Array

Podemos melhorar o código acima usando um array de LEDs. O código a seguir usa esse array para gerenciar os objetos LED.

/* * Este código de Arduino foi desenvolvido por pt.newbiely.com * Este código de Arduino é disponibilizado ao público sem nenhuma restrição. * Para tutoriais completos e diagramas de ligação, visite: * https://pt.newbiely.com/tutorials/arduino/arduino-blink-multiple-led */ #include <ezLED.h> // ezLED library by ArduinoGetStarted.com #define NUM_LED 3 // three LEDs #define PIN_LED_1 7 // The Arduino pin connected to LED 1 #define PIN_LED_2 8 // The Arduino pin connected to LED 2 #define PIN_LED_3 9 // The Arduino pin connected to LED 3 ezLED ledArray[NUM_LED] = { ezLED(PIN_LED_1), // create ezLED object that attach to pin PIN_LED_1 ezLED(PIN_LED_2), // create ezLED object that attach to pin PIN_LED_2 ezLED(PIN_LED_3) // create ezLED object that attach to pin PIN_LED_3 }; void setup() { Serial.begin(9600); ledArray[0].blink(500, 500); // 500ms ON, 500ms OFF, blink immediately ledArray[1].blink(200, 800); // 200ms ON, 800ms OFF, blink immediately ledArray[2].blink(800, 200); // 800ms ON, 200ms OFF, blink immediately } void loop() { for (int i = 0; i < NUM_LED; i++) ledArray[i].loop(); // MUST call the led.loop() function in loop() // DO SOMETHING HERE }

Usando a biblioteca ezLED, podemos piscar vários LEDs de forma flexível, assim:

  • Piscar vários LEDs com frequências diferentes
  • Piscar vários LEDs com tempos de início diferentes
  • Piscar cada LED durante um período de tempo
  • Piscar cada LED um número de vezes (ciclos)

Veja o código de exemplo na biblioteca.

Vídeo

※ NOSSAS MENSAGENS

  • Fique à vontade para compartilhar o link deste tutorial. Porém, por favor, não use nosso conteúdo em outros sites. Investimos muito esforço e tempo para criar este conteúdo, por favor respeite nosso trabalho!