LED RGB. Fazendo um LED RGB com Arduino shimmer com todas as cores do arco-íris Arduino rgb LED mudança de cor suave

Este projeto é sobre como fazer a iluminação LED controlada da sala ao lado para não se levantar do sofá. A iluminação LED RGB é igualmente boa para decorar um pequeno aquário ou uma grande sala.

Você pode iluminar o banho com cores diferentes da fita RGB no Arduino. Para criar, por assim dizer, um banho no controle do microprocessador do Arduino.

Tudo o que você precisa para montar uma luz de fundo RGB são os seguintes componentes:

  1. Módulo Bluetooth HC-05 para comunicação sem fio com Arduino.
  2. Arduino nano, mini, placa Uno com microprocessador ATmega 8, ATmega 168, ATmega 328.
  3. Fita LED RGB, com ou sem design à prova d'água IP65, se necessário.
  4. Smartphone com Android como controle remoto para iluminação RGB.
  5. MOSFETs como P3055LD, P3055LDG, PHD3355L, mas melhor com furos para furos de montagem. Transistores bipolares funcionam pior .
  6. Resistores 10 kOhm, 0,125 W - 3 peças.

Um pouco de teoria sobre como conectar fita RGB aArduino

Você não pode conectar a faixa de LED diretamente à placa Arduino. A faixa de LED acende a partir de 12 V, enquanto o microprocessador precisa de apenas 5 V para funcionar.

Mas, o principal problema é que as saídas do microprocessador não têm energia suficiente para alimentar uma faixa inteira de LEDs. Em média, uma fita de LED com um metro de comprimento consome 600 mA. Tal corrente definitivamente desabilitará a placa Arduino.

As saídas PWM utilizadas pelo microprocessador não possuem potência suficiente para iluminar a fita RGB, mas ainda assim podem ser utilizadas para remover o sinal de controle.

Para desacoplamento de potência, recomenda-se o uso de transistores como chaves. É melhor usar MOSFETs: eles precisam de uma corrente escassa até o “portão” para ligar e, além disso, têm mais potência em comparação com interruptores bipolares do mesmo tamanho.

RGBfitas paraArduino

No diagrama de fiação, as saídas PWM são usadas para controlar a fita: 9 (vermelho), 10 (verde), 11 (azul).

Três resistores de 10 kOhm, 0,125 W são pendurados na "porta" de cada transistor.

Além disso, da fonte de alimentação de 12 V (fio vermelho) vai diretamente para a fita RGB.

O menos da fonte de alimentação de 12 V (fio preto) é distribuído pelas "fontes" dos transistores de efeito de campo.

O “dreno” de cada transistor é conectado a um contato de fita separado: R, G, B. Recomenda-se por conveniência ao conectar o uso de fios vermelho, verde e azul.

O pino terra GND da placa Arduino deve ser conectado ao menos da potência de entrada.

A própria placa Arduino Uno é alimentada por um adaptador AC separado. Para o Arduino nano, mini, você precisará montar uma fonte de alimentação simples em um estabilizador 7805 integrado.

Conectando o módulo Bluetooth HC-05:

  • VCC - 5V (alimentação +5 V);
  • GND - GND (terra, comum);
  • RX - TX no Arduino nano, mini, Uno;
  • TX - RX no Arduino nano, mini, Uno;
  • LED - não usado;
  • CHAVE - não usada.

O esboço do programa abaixo é genérico para acionar um único LED e uma faixa de LED. O principal é deixar as linhas necessárias e excluir as desnecessárias ou fazer comentários em barras.

x longo sem sinal; int LED = 9; // verde está conectado ao pino 9 int LED2 = 10; // azul está conectado ao pino 10 int LED3 = 11; // vermelho está conectado ao pino 11 int a,b,c = 0; void setup() ( Serial.begin(9600); Serial.setTimeout(4); pinMode(LED, OUTPUT); pinMode(LED2, OUTPUT); pinMode(LED3, OUTPUT); ) void loop() ( if (Serial. available()) ( x = Serial.parseInt(); if (x>=0 && x<=255) { a = x; // для RGB ленты //a = 255-x; // для светодиода analogWrite(LED, a); } if (x>=256 && x<=511) { b = x-256; // для RGB ленты //b = 511-x; // для светодиода analogWrite(LED2, b); } if (x>=512 && x<=767) { c = x-512; // для RGB ленты //c = 767-x; // для светодиода analogWrite(LED3, c); } /* Serial.println(x); Serial.println(a); Serial.println(b); Serial.println(c); */ } }

Se você precisar conectar um LED RGB, há um diagrama de fiação para sua conexão.

Instalando o aplicativo em seu telefone

Baixe o aplicativo com o nome curto RGB no telefone. .

Após a instalação, inicie o aplicativo pelo ícone.

Clique na legenda

Encontramos o módulo Bluetooth HC-05 instalado na lista.

Se houver conexão, em vez da inscrição, será exibido o endereço e o nome do módulo Bluetooth instalado.

Bem, isso é tudo, o controle de luz de fundo RGB está configurado!

Aqui está um exemplo de vídeo do nosso projeto em ação:

Relógio GPS no Arduino Fechadura biométrica - layout e montagem do LCD

Na lição anterior, já tentamos . Agora vamos lidar com um LED multicolorido, que muitas vezes é chamado de abreviado: LED RGB.

RGB é uma abreviatura que significa: Vermelho - vermelho, Verde - verde, Azul - azul. Ou seja, três LEDs separados são colocados dentro deste dispositivo de uma só vez. Dependendo do tipo, um LED RGB pode ser um cátodo comum ou um ânodo comum.

mistura de cores

Por que um LED RGB é melhor que três comuns? É tudo sobre a propriedade da nossa visão de misturar a luz de diferentes fontes colocadas próximas umas das outras. Por exemplo, se colocarmos LEDs azuis e vermelhos próximos um do outro, a uma distância de vários metros, seu brilho se fundirá e o olho verá um ponto roxo. E se também adicionarmos verde, o ponto parecerá branco para nós. É assim que monitores de computador, televisores e telas externas funcionam.

A matriz de TV consiste em pontos separados de cores diferentes. Se você pegar uma lupa e olhar através dela no monitor incluído, esses pontos poderão ser vistos facilmente. Mas na tela externa, os pontos não são colocados com muita força, para que possam ser distinguidos a olho nu. Mas a uma distância de várias dezenas de metros, esses pontos são indistinguíveis.

Acontece que quanto mais densos são os pontos multicoloridos entre si, menor a distância que o olho precisa para misturar essas cores. Daí a conclusão: ao contrário de três LEDs independentes, a mistura de cores de um LED RGB já é perceptível a uma distância de 30-70 cm, aliás, um LED RGB com lente fosca se mostra ainda melhor.

Em muitas aplicações, tanto amadoras quanto profissionais, às vezes é necessário gerar cores de vários tons. O uso de LEDs de cor única separados nesses casos é injustificado construtivamente e economicamente. Por isso, os LEDs RGB foram desenvolvidos para tais fins.



RGB LED (sigla para RED, GREEN, BLUE) é uma combinação de cristais capazes de gerar as cores vermelho, verde e azul. Graças a essa combinação, esses LEDs podem reproduzir 16 milhões de tons de luz. Os LEDs RGB são fáceis de controlar e podem ser usados ​​em projetos Arduino sem problemas. Este artigo mostrará um exemplo de controle de um LED RGB usando um Arduino.


Como o LED RGB, como observado acima, é uma combinação de cristais de três cores básicas diferentes, ele é representado no circuito como três LEDs. Estruturalmente, esse LED tem uma saída comum e três saídas para cada cor. Abaixo está um diagrama de conexão de um LED RGB a um Arduino. Também no circuito há um display LCD alfanumérico 16x2, potenciômetros e resistores conectados em série com as linhas de LED RGB. Esses resistores (R1 = 100 ohms, R2 = 270 ohms, R3 = 330 ohms) limitam a corrente dos LEDs para que eles não queimem. Os resistores variáveis ​​(potenciômetros) VR1-VR3 com resistência de 10 KΩ são usados ​​para controlar a intensidade do brilho do LED RGB, ou seja, podem ser usados ​​para definir a cor do LED alterando a intensidade do vermelho, cristais verdes e azuis. O potenciômetro VR1 está conectado à entrada analógica A0, VR2 à entrada analógica A1 e VR3 à entrada analógica A2.



O LCD neste caso é usado para exibir o valor da cor e o valor hexadecimal do código de cor. O valor do código de cor é exibido na 1ª linha do LCD (como Rxxx Gxxx Bxxx, onde xxx é um valor numérico) e o código hexadecimal é exibido na 2ª linha do LCD (como HEXxxxxxx). Um resistor R4 de 100Ω é usado para limitar a corrente aplicada à luz de fundo do LCD e um resistor variável VR4 de 10KΩ é usado para ajustar o contraste do LCD.


Abaixo está um código (esboço) que permite controlar a mudança de cor de um LED RGB usando uma placa Arduino e potenciômetros conectados a ela.


#incluir // biblioteca para display LCD LiquidCrystal lcd(7, 6, 5, 4, 3, 2); // Linhas Arduino para conectar o LCD int Radj; int Gadj; int Badj; intRval=0; int Gval=0; intBval=0; int R = 9; intG = 10; intB = 11; void setup() ( pinMode(R, OUTPUT); // Linha 9 é roteada para saída pinMode(G, OUTPUT); // Linha 10 é roteada para saída pinMode(B, OUTPUT); // Linha 11 é roteada para saída lcd.begin(16,2); // Inicializa display delay(1); lcd.setCursor(0,0); lcd.print("RGB COLOUR"); lcd.setCursor(4,1); lcd.print( "GENERATOR" ); delay(2000); lcd.setCursor(0, 0); lcd.print(" R G B "); lcd.setCursor(3,1); lcd.print("HEX= "); ) void loop () ( Radj = analogRead(0); Gadj = analogRead(1); Badj = analogRead(2); Rval=Radj/4; // Converte o intervalo de (0-1023) para (0-255) Gval=Gadj /4; // Converte o intervalo de (0-1023) para (0-255) Bval=Badj/4; // Converte o intervalo de (0-1023) para (0-255) lcd.setCursor(2,0 ); se (Rval<10) { lcd.setCursor(2,0); lcd.print("00"); lcd.print(Rval); } else if(Rval<100) { lcd.setCursor(2,0); lcd.print("0"); lcd.print(Rval); } else { lcd.setCursor(2,0); lcd.print(Rval); } lcd.setCursor(8,1); if (Rval<16) { lcd.print("0"); lcd.print(Rval, 16); } else { lcd.print(Rval, 16); } lcd.setCursor(7,0); if (Gval<10) { lcd.setCursor(7,0); lcd.print("00"); lcd.print(Gval); } else if(Gval<100) { lcd.setCursor(7,0); lcd.print("0"); lcd.print(Gval); } else { lcd.setCursor(7,0); lcd.print(Gval); } lcd.setCursor(10,1); if (Gval<16) { lcd.print("0"); lcd.print(Gval, 16); } else { lcd.print(Gval, 16); } lcd.setCursor(12,0); if (Bval<10) { lcd.setCursor(12,0); lcd.print("00"); lcd.print(Bval); } else if(Bval<100) { lcd.setCursor(12,0); lcd.print("0"); lcd.print(Bval); } else { lcd.setCursor(12,0); lcd.print(Bval); } lcd.setCursor(12,1); if (Bval<16) { lcd.print("0"); lcd.print(Bval, 16); } else { lcd.print(Bval, 16); } analogWrite(R, Rval); // ШИМ-выход для красного цвета analogWrite(G, Gval); // ШИМ-выход для зеленого цвета analogWrite(B, Bval); // ШИМ-выход для синего цвета }

Este artigo aborda os fundamentos do uso de um LED RGB (Vermelho Verde Azul) com um Arduino.

Usamos a função analogWrite para controlar a cor do LED RGB.

À primeira vista, os LEDs RGB parecem LEDs comuns, mas na verdade eles têm três LEDs instalados dentro deles: um vermelho, um verde e sim, um azul. Ao controlar o brilho de cada um, você pode controlar a cor do LED.

Ou seja, vamos ajustar o brilho de cada LED e obter a cor desejada na saída, como se fosse uma paleta de artista ou como se você estivesse ajustando as frequências do seu player. Para fazer isso, você pode usar resistores variáveis. Mas, como resultado, o esquema será bastante complicado. Felizmente, o Arduino nos oferece a função analogWrite. Se usarmos os contatos marcados com um símbolo “~” na placa, podemos regular a tensão que é fornecida ao LED correspondente.

Nós obrigatórios

Para implementar nosso pequeno projeto, precisamos:

1 LED RGB 10mm

3 resistores de 270 Ω (listras vermelhas, roxas, marrons). Você pode usar um resistor de até 1 kΩ, mas lembre-se de que, à medida que a resistência aumenta, o LED não brilha tanto.


Os seis dígitos do número correspondem aos três pares de números; o primeiro par é o componente vermelho da cor, os próximos dois dígitos são o componente verde e o último par é o componente azul. Ou seja, #FF0000 corresponde à cor vermelha, pois este será o brilho máximo do LED vermelho (FF é 255 em hexadecimal), e os componentes vermelho e azul são 0.

Experimente acender o LED usando, por exemplo, o tom índigo: #4B0082.

Os componentes vermelho, verde e azul índigo são 4B, 00 e 82, respectivamente. Podemos usá-los dentro da função "setColor" com a seguinte linha de código:

setColor(0x4B, 0x0, 0x82); // índigo

Para três componentes, usamos uma notação em que cada um deles é precedido por um caractere "0x" no início.

À medida que você brinca com diferentes tons de LED RGB, não se esqueça de definir um 'atraso' depois de usar cada um.

PWM e Arduino

A Modulação por Largura de Pulso (PWM) é um dos métodos de gerenciamento de energia. No nosso caso, o PWM é usado para controlar o brilho de cada LED individual.

A figura abaixo mostra esquematicamente o sinal de um dos pinos do Arduino PWM.


A cada 1/500 segundo a saída PWM gera um pulso. A duração deste pulso é controlada pela função "analogWrite". Ou seja, "analogWrite(0)" não gerará nenhum pulso, mas "analogWrite(255)" gerará um sinal que durará até o início do próximo. Ou seja, dará a impressão de que um pulso contínuo está sendo aplicado.

Quando especificamos um valor na faixa de 0 a 255 dentro da função analogWrite, geramos um pulso de certa duração. Se o comprimento do pulso for de 5%, aplicaremos 5% da potência máxima disponível na saída especificada do Arduino e parece que o LED não está aceso no brilho máximo.

Deixe seus comentários, perguntas e compartilhe sua experiência pessoal abaixo. Na discussão, muitas vezes nascem novas ideias e projetos!

Este projeto simples do Arduino é projetado para controle PWM (Pulse Width Modulation). Ele pode alterar o nível de cada cor independentemente alterando o ciclo de trabalho PWM. Desta forma, qualquer cor pode ser criada misturando cores diferentes em porcentagens. A ativação do encoder na placa permite ao usuário selecionar o canal desejado e alterar seu brilho. Transistores com baixa resistência de comutação criam uma dissipação de calor muito baixa, mesmo com um grande número de LEDs. Por exemplo, o transistor IRF540 tem uma resistência de passagem RDS muito baixa - cerca de 70 mΩ.

Esquema do controlador de fita

O LED RGB é um tipo muito comum de fita de LED que inclui um chip de LED vermelho, verde e azul em um único pacote. Embora estejam na mesma caixa, cada cristal pode ser controlado de forma independente. Graças a este recurso, podemos obter um grande número de cores diferentes com LEDs RGB e, claro, a cor resultante pode ser alterada dinamicamente com um controle deslizante.

O controlador principal é feito usando Arduino Uno. Ele lê os dados de entrada do encoder e de acordo com essas informações, os transistores são comutados. Os transistores são acionados pelos pinos 9, 10 e 11 que possuem funções PWM internas. A direção dos sinais do encoder A e B são lidos usando os elementos 2 e 3, que são conectados ao módulo. O botão do codificador é usado para selecionar um canal e é conectado ao pino 1, que é definido como entrada.