[Arduino] Controlando um LED RGB com potenciômetros
Pesquisando como controlar as cores de um LED RGB através de potenciômetros usando uma Arduino, achei uma serie de tutoriais, mas a maioria faltava alguma informação. Logo reuni as informações aqui.

Objetivo
Controlar individualmente cada cor de um LED RGB por potenciômetros.
Materiais necessários
Arduino
Protoboard
LED RGB
Potenciômetro
Resistor 300 ohm
Fios
Circuito
Protoboard
Esquemático
O pino negativo do LED é ligado na entrada GND e os outros 3 pinos RGB nas entradas digitais 9, 10 e 11, respectivamente. Colocando um resistor 300 Ohm entre os pinos do LED e a Arduino.
Nos potenciômetros o primeiro pino é ligado na entrada GND, o terceiro é o pino é ligado na entrada +5V, e o segundo pino deve se ligar nas entradas analógicas 0, 1 e 2. 0 para a cor vermelha, 1 para a cor verde e 2 para cor azul.
Código
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 | //Declarando as variáveis do pinos do LED RGB const int redPin = 9; const int greenPin = 10; const int bluePin = 11; //Declarando as variáveis do pinos dos potenciômetros const int redPotPin = 0; const int greenPotPin = 1; const int bluePotPin = 2; // Init das nossas variáveis int currentColorValueRed; int currentColorValueGreen; int currentColorValueBlue; void setup() { pinMode(redPin, OUTPUT); pinMode(greenPin, OUTPUT); pinMode(bluePin, OUTPUT); } void loop() { //Pega a tensão em cada pino analógico, reduzir para o intervalo de 0 até 255 e inverte o valor do pólo negativo currentColorValueRed = (255 - map( analogRead(redPotPin), 0, 1024, 0, 255 ) ); currentColorValueBlue = (255 - map( analogRead(bluePotPin), 0, 1024, 0, 255 ) ); currentColorValueGreen = (255 - map( analogRead(greenPotPin), 0, 1024, 0, 255 ) ); //Envia a cor para cada pino do LED analogWrite(redPin, currentColorValueRed); analogWrite(bluePin, currentColorValueBlue); analogWrite(greenPin, currentColorValueGreen); } |
//Declarando as variáveis do pinos do LED RGB
const int redPin = 9;
const int greenPin = 10;
const int bluePin = 11;
//Declarando as variáveis do pinos dos potenciômetros
const int redPotPin = 0;
const int greenPotPin = 1;
const int bluePotPin = 2;
// Init das nossas variáveis
int currentColorValueRed;
int currentColorValueGreen;
int currentColorValueBlue;
void setup() {
pinMode(redPin, OUTPUT);
pinMode(greenPin, OUTPUT);
pinMode(bluePin, OUTPUT);
}
void loop() {
//Pega a tensão em cada pino analógico, reduzir para o intervalo de 0 até 255 e inverte o valor do pólo negativo
currentColorValueRed = (255 - map( analogRead(redPotPin), 0, 1024, 0, 255 ) );
currentColorValueBlue = (255 - map( analogRead(bluePotPin), 0, 1024, 0, 255 ) );
currentColorValueGreen = (255 - map( analogRead(greenPotPin), 0, 1024, 0, 255 ) );
//Envia a cor para cada pino do LED
analogWrite(redPin, currentColorValueRed);
analogWrite(bluePin, currentColorValueBlue);
analogWrite(greenPin, currentColorValueGreen);
}Código retirado de RGB LED Color Chooser em Arduino playground.