Esse código controla quatro fitas de LED RGB utilizando o Arduino, alternando sequencialmente as cores de cada fita.
Código abaixo:
// Pinos RGB da Fita 1
const int fita1Vermelho = 2;
const int fita1Verde = 3;
const int fita1Azul = 4;
// Pinos RGB da Fita 2
const int fita2Vermelho = 5;
const int fita2Verde = 6;
const int fita2Azul = 7;
// Pinos RGB da Fita 3
const int fita3Vermelho = 8;
const int fita3Verde = 9;
const int fita3Azul = 10;
// Pinos RGB da Fita 4
const int fita4Vermelho = 11;
const int fita4Verde = 12;
const int fita4Azul = 13;
void setup() {
// Configura os pinos como saída
pinMode(fita1Vermelho, OUTPUT);
pinMode(fita1Verde, OUTPUT);
pinMode(fita1Azul, OUTPUT);
pinMode(fita2Vermelho, OUTPUT);
pinMode(fita2Verde, OUTPUT);
pinMode(fita2Azul, OUTPUT);
pinMode(fita3Vermelho, OUTPUT);
pinMode(fita3Verde, OUTPUT);
pinMode(fita3Azul, OUTPUT);
pinMode(fita4Vermelho, OUTPUT);
pinMode(fita4Verde, OUTPUT);
pinMode(fita4Azul, OUTPUT);
}
void loop() {
// Alterna entre diferentes cores em todas as fitas
setColor(fita1Vermelho, fita1Verde, fita1Azul, 255, 0, 0); // Fita 1: Vermelho
setColor(fita2Vermelho, fita2Verde, fita2Azul, 0, 255, 0); // Fita 2: Verde
setColor(fita3Vermelho, fita3Verde, fita3Azul, 0, 0, 255); // Fita 3: Azul
setColor(fita4Vermelho, fita4Verde, fita4Azul, 255, 255, 0); // Fita 4: Amarelo
delay(1000);
setColor(fita1Vermelho, fita1Verde, fita1Azul, 0, 255, 255); // Fita 1: Ciano
setColor(fita2Vermelho, fita2Verde, fita2Azul, 255, 0, 255); // Fita 2: Magenta
setColor(fita3Vermelho, fita3Verde, fita3Azul, 255, 255, 255); // Fita 3: Branco
setColor(fita4Vermelho, fita4Verde, fita4Azul, 0, 0, 0); // Fita 4: Desligado
delay(1000);
}
// Função para definir a cor de uma fita de LED RGB
void setColor(int corVermelha, int corVerde, int corAzul, int vermelho, int verde, int azul) {
analogWrite(corVermelha, vermelho);
analogWrite(corVerde, verde);
analogWrite(corAzul, azul);
}
Explicação do código:
Este código para Arduino controla quatro tiras de LED RGB, permitindo que você alterne entre cores diferentes usando a função analogWrite().
A seguir, explicamos cada parte do código em detalhes:
Definição dos pinos das fitas RGB
// Pinos RGB da Fita 1
const int fita1Vermelho = 2;
const int fita1Verde = 3;
const int fita1Azul = 4;
// Pinos RGB da Fita 2
const int fita2Vermelho = 5;
const int fita2Verde = 6;
const int fita2Azul = 7;
// Pinos RGB da Fita 3
const int fita3Vermelho = 8;
const int fita3Verde = 9;
const int fita3Azul = 10;
// Pinos RGB da Fita 4
const int fita4Vermelho = 11;
const int fita4Verde = 12;
const int fita4Azul = 13;
São declaradas constantes (const int) que definem os pinos digitais do Arduino conectados aos canais R , G e B de cada fita RGB.
Cada fita possui três pinos: um para a cor vermelha, um para a verde e outro para a azul.
2. Configuração inicial dos pinos no setup()
void setup() {
// Configura os pinos como saída
pinMode(fita1Vermelho, OUTPUT);
pinMode(fita1Verde, OUTPUT);
pinMode(fita1Azul, OUTPUT);
pinMode(fita2Vermelho, OUTPUT);
pinMode(fita2Verde, OUTPUT);
pinMode(fita2Azul, OUTPUT);
pinMode(fita3Vermelho, OUTPUT);
pinMode(fita3Verde, OUTPUT);
pinMode(fita3Azul, OUTPUT);
pinMode(fita4Vermelho, OUTPUT);
pinMode(fita4Verde, OUTPUT);
pinMode(fita4Azul, OUTPUT);
}
Na função setup(), todos os pinos digitais são configurados como saída utilizando a função pinMode().
Isso permite que o Arduino envie sinais PWM (Pulse Width Modulation) para controlar a intensidade de cada cor das fitas RGB.
3. Loop principal do programa
void loop() {
// Alterna entre diferentes cores em todas as fitas
setColor(fita1Vermelho, fita1Verde, fita1Azul, 255, 0, 0); // Fita 1: Vermelho
setColor(fita2Vermelho, fita2Verde, fita2Azul, 0, 255, 0); // Fita 2: Verde
setColor(fita3Vermelho, fita3Verde, fita3Azul, 0, 0, 255); // Fita 3: Azul
setColor(fita4Vermelho, fita4Verde, fita4Azul, 255, 255, 0); // Fita 4: Amarelo
delay(1000);
setColor(fita1Vermelho, fita1Verde, fita1Azul, 0, 255, 255); // Fita 1: Ciano
setColor(fita2Vermelho, fita2Verde, fita2Azul, 255, 0, 255); // Fita 2: Magenta
setColor(fita3Vermelho, fita3Verde, fita3Azul, 255, 255, 255); // Fita 3: Branco
setColor(fita4Vermelho, fita4Verde, fita4Azul, 0, 0, 0); // Fita 4: Desligado
delay(1000);
}
A função loop() é executada continuamente pelo Arduino.
Na primeira parte, são definidas cores diferentes para cada fita:
Fita 1: Vermelho (255, 0, 0)
Fita 2: Verde (0, 255, 0)
Fita 3: Azul (0, 0, 255)
Fita 4: Amarelo (255, 255, 0)
Após definir as cores, há um atraso de 1000 ms (1 segundo) utilizando a função delay(1000).
Na segunda parte, as cores das fitas mudam novamente:
Fita 1: Ciano (0, 255, 255)
Fita 2: Magenta (255, 0, 255)
Fita 3: Branco (255, 255, 255)
Fita 4: Desligado (0, 0, 0)
Outro atraso de 1 segundo ocorre antes de o processo se repetir.
4. Função void setColor()
A função setColor() recebe como parâmetros:
Os pinos correspondentes às cores vermelha, verde e azul de uma fita.
Os valores de intensidade para cada cor (vermelho, verde e azul) variando de 0 a 255.
A função analogWrite() gera um sinal PWM nos pinos, ajustando a intensidade de cada cor.
255 representa intensidade máxima.
0 representa a cor completamente apagada.
Resumo do funcionamento
O código alterna as cores das fitas a cada segundo, utilizando a função setColor() para definir as cores de cada fita.
A função analogWrite() permite gerar variações de brilho em cada canal RGB, criando diferentes cores ao combinar as intensidades de vermelho, verde e azul.
O ciclo se repete indefinidamente, alternando as cores das fitas RGB em sequência.
Tópicos relacionados: