Arduino RGB Color Mixer
Componentes e suprimentos
| | × | 1 | |
| | × | 1 | |
| Potenciômetro rotativo (genérico) | | × | 3 | |
| SparkFun Botão de pressão 12 mm | | × | 1 | |
| | × | 1 | |
| | × | 3 | |
| | × | 1 | |
| Fios de jumpers (genérico) | | × | 1 | |
Aplicativos e serviços online
Sobre este projeto
Para quem é isso? :Este projeto de misturador de cores RGB LED é perfeito para o usuário iniciante do Arduino que deseja tentar construir um gadget interativo que não é apenas divertido e fácil de fazer, mas pode ser útil para qualquer pessoa que usa cores RBG, como artistas, web desenvolvedores e controladores de iluminação interativos.
O que faz: Este circuito simples combina três potenciômetros para definir o brilho para cada um dos LEDs vermelho, verde e azul dentro de um LED RGB.
Um botão de pressão é adicionado como um recurso extra para ligar e desligar o circuito.
Como faço para criá-lo? Conecte o diagrama conforme mostrado nos esquemas. O LED RGB é conectado aos pinos 9, 10 e 11 do PMW no Arduino. O botão de pressão é conectado ao pino 7 e os 3 potenciômetros a A0, A1 e A2. Lembre-se de adicionar um resistor pull up de 10K ohm à conexão de aterramento no botão de pressão. Para obter uma explicação de como isso funciona, verifique aqui https://playground.arduino.cc/CommonTopics/PullUpDownResistor
Certifique-se também de conectar 3 resistores de 220 ohms entre o LED e os pinos de saída, isso garantirá que o LED não queime.
O valor de cada potenciômetro é impresso no monitor serial, portanto, se você estiver mexendo no LED e encontrar uma cor de sua preferência, poderá registrar o valor RGB para usar mais tarde.
Depois de ter o circuito conectado e o esboço carregado, tente girar os botões nos potenciômetros. Nada deve acontecer no início até que você aperte o botão. Agora tente girar os botões novamente. O led agora deve acender. É hora de brincar com a luz! Lembre-se de que a luz RGB não é como misturar tinta. quando todos os potenciômetros estão no máximo, a luz deve ser branca. Experimente deixar um dos potenciômetros desligado ou muito baixo e variar os outros dois.
Uma extensão a este projeto seria codificar alguns valores RBG para cores específicas que você gosta e adicionar mais alguns botões que, quando pressionados, definiriam o LED RGB para essas cores. Sinta-se à vontade para compartilhar o código se tentar uma extensão como esta!
Aproveitar!
Código
Misturador de cores Rgb C / C ++
int azul =9; // Definir pinos digitais para cada cor do LEDint green =10; int red =11; int redPot =A0; int greenPot =A1; // Definir pinos analógicos para os 3 potenciômetrosint bluePot =A2; int greenVal =0; // Cria uma variável para armazenar o estado de cada Potenciômetroint blueVal =0; int redVal =0; const int BUTTON =7; // Definir o botão Pinint state =0; // Cria uma variável para armazenar se o botão está ligado ou desligado val =0; // Cria uma variável para armazenar o estado momentâneo do buttonint old_val =0; // crie uma variável para armazenar o estado anterior do buttonvoid setup () {// coloque seu código de configuração aqui, para ser executado uma vez:pinMode (green, OUTPUT); // Define LEDs como saídas, botão como entrada pinMode (blue, OUTPUT); pinMode (vermelho, SAÍDA); pinMode (BUTTON, INPUT); Serial.begin (9600);} void loop () {// coloque seu código principal aqui, para executar repetidamente:Serial.begin (9600); // Abra o monitor serial em 9600 baud val =digitalRead (BUTTON); // Verifique o estado do botão if ((val ==HIGH) &&(old_val ==LOW)) {// Verifique se o estado do botão mudou de estado =1 - estado; // Defina o botão como on (1) ou off (0) delay (10); } old_val =val; // Salva a leitura do botão anterior para comparar na próxima vez através do loop greenVal =analogRead (greenPot); // Lê a posição dos potenciômetros blueVal =analogRead (bluePot); redVal =analogRead (redPot); if (state ==1) {// Se o botão estiver ligado, defina o estado de cada LED de acordo com a posição analogWrite (green, greenVal / 4); // de seu potenciômetro correspondente. As entradas do anolog variam de 0 a 1023, analogWrite (azul, blueVal / 4); // enquanto as saídas anolog como PMW podem ser de 0-255. Portanto, devemos analogWrite (red, redVal / 4); // divida as leituras do potenciômetro por 4 para definir o estado corretamente Serial.print ("RGB ("); Serial.print (redVal / 4); Serial.print (","); Serial.print (greenVal / 4); Serial.print (","); Serial.print (blueVal / 4); // Imprimir o código RGB, resuable em qualquer aplicativo RGB Serial.println (")"); atraso (50); } else {// Se o botão estiver desligado, defina todos os LEDs para BAIXO / desligado analogWrite (verde, 0); analogWrite (azul, 0); analogWrite (vermelho, 0); atraso (50); }}
Esquemas