Projeto de Efeitos Sequenciais Aleatórios com 10 LEDs no Arduino

Projeto de Efeitos Sequenciais Aleatórios com 10 LEDs no Arduino

Introdução

Neste projeto, vamos explorar como criar efeitos sequenciais aleatórios em 10 LEDs conectados a um Arduino. Os LEDs estarão ligados nas portas digitais 4 a 13, e os padrões de iluminação mudarão de forma randômica após um intervalo de tempo. Este projeto é uma ótima maneira de aprender sobre controle de LEDs, geração de números aleatórios e estruturas de programação no Arduino.


Materiais Necessários

  • Arduino (Uno, Nano ou similar)

  • 10 LEDs (qualquer cor)

  • 10 resistores (220Ω a 330Ω)

  • Protoboard e jumpers


Montagem do Circuito

Conecte os LEDs nas portas 4 a 13 do Arduino, cada um com um resistor em série para limitar a corrente.

  • Anodo (+) do LED → Resistor → Pino digital (4-13)

  • Catodo (-) do LED → GND




Programação no Arduino

O código abaixo gera efeitos aleatórios em sequência, alternando entre diferentes padrões de LED.

Código Completo

cpp
Copy
Download
const int ledPins[] = {4, 5, 6, 7, 8, 9, 10, 11, 12, 13}; // LEDs nos pinos 4-13
int effectDuration = 2000; // Tempo de cada efeito (2 segundos)
unsigned long lastEffectChange = 0;
int currentEffect = 0;

void setup() {
  for (int i = 0; i < 10; i++) {
    pinMode(ledPins[i], OUTPUT); // Configura todos os LEDs como saída
  }
  randomSeed(analogRead(0)); // Inicializa a semente aleatória
}

void loop() {
  if (millis() - lastEffectChange > effectDuration) {
    currentEffect = random(4); // Seleciona um efeito aleatório (0 a 3)
    lastEffectChange = millis();
    resetLeds(); // Apaga todos os LEDs antes do próximo efeito
  }

  switch (currentEffect) {
    case 0:
      effect1(); // Sequência simples
      break;
    case 1:
      effect2(); // Vai e volta
      break;
    case 2:
      effect3(); // Pisca aleatório
      break;
    case 3:
      effect4(); // Onda crescente
      break;
  }
}

void resetLeds() {
  for (int i = 0; i < 10; i++) {
    digitalWrite(ledPins[i], LOW);
  }
}

// Efeito 1: Sequência simples (um LED de cada vez)
void effect1() {
  for (int i = 0; i < 10; i++) {
    digitalWrite(ledPins[i], HIGH);
    delay(100);
    digitalWrite(ledPins[i], LOW);
  }
}

// Efeito 2: Vai e volta (ida e volta nos LEDs)
void effect2() {
  for (int i = 0; i < 10; i++) {
    digitalWrite(ledPins[i], HIGH);
    delay(100);
    digitalWrite(ledPins[i], LOW);
  }
  for (int i = 8; i > 0; i--) {
    digitalWrite(ledPins[i], HIGH);
    delay(100);
    digitalWrite(ledPins[i], LOW);
  }
}

// Efeito 3: Pisca aleatório (LEDs aleatórios acendem)
void effect3() {
  int randomLed = random(10);
  digitalWrite(ledPins[randomLed], HIGH);
  delay(100);
  digitalWrite(ledPins[randomLed], LOW);
}

// Efeito 4: Onda crescente (todos acendem e apagam em sequência)
void effect4() {
  for (int i = 0; i < 10; i++) {
    digitalWrite(ledPins[i], HIGH);
    delay(100);
  }
  for (int i = 0; i < 10; i++) {
    digitalWrite(ledPins[i], LOW);
    delay(100);
  }
}

Funcionamento do Projeto

  1. Seleção Aleatória: A cada 2 segundos, o Arduino escolhe um novo efeito aleatoriamente.

  2. Efeitos Implementados:

    • Efeito 1: Sequência linear (um LED por vez).

    • Efeito 2: Sequência de ida e volta.

    • Efeito 3: LEDs piscando aleatoriamente.

    • Efeito 4: Onda crescente (todos acendem e apagam em ordem).


Importância do Projeto

Este projeto é valioso para o aprendizado em Arduino e eletrônica porque:

✅ Introduz o uso de números aleatórios com random() e randomSeed().
✅ Aprimora o controle de múltiplos LEDs usando arrays e loops.
✅ Estimula a lógica de programação com estruturas switch-case.
✅ Pode ser adaptado para sistemas mais complexos, como jogos de luzes ou sinalização.
✅ Prepara para projetos com sensores e automação, onde comportamentos aleatórios são úteis (ex: pisca-pisca natalino).


Expansões Possíveis

  • Adicionar um botão para mudar manualmente os efeitos.

  • Incluir um buzzer para criar efeitos sonoros sincronizados.

  • Usar um sensor de movimento para ativar os LEDs apenas quando detectar presença.


Conclusão

Este projeto demonstra como criar sequências de LEDs aleatórias de forma simples e eficiente com Arduino. Ele é ideal para iniciantes que desejam explorar programação criativa e eletrônica básica. 

Comentários

Postagens mais visitadas