Arduino - Aula5 : Controlar a Intensidade de um Led RGB

  Nesta aula vamos integrar a funcionalidade das duas aulas anteriores e controlar o brilho ou intensidade de um Led RGB (Red, Green e Blue), desta forma podemos obter várias cores com a mistura dessas 3 três cores principais.
   O código abaixo define os pinos que serão utilizados como leitura de sinal analógico e também o pinos de saída com o periférico PWM. No programa principal as três primeiras linhas de comando tem a função de realizar a leitura das entradas analógicas e já dividir o valor lido por 4, essa divisão é preciso ter pelo fato das resoluções do PWM e do canal ADC não serem os mesmos, portanto o PWM trabalha de 0 a 255 e o ADC de 0 a 1023, com isto aplicando a divisão ( 1024/4 = 256) eu posso mover posteriormente o valor armazenado na variável diretamente para o pino com PWM.
  As três ultimas linhas de programação do programa principal tem a função de atualizar o valor do PWM, caso ocorra de um dos potenciômetros da entrada tenha seu valor alterado.

Detalhando o código de execução
// controle de cor utilizando um LED RGB
// Profº Bruno Orosco

//----------  Definição dos pinos de I/O  -------------//
#define   redpin     9     //Pin 9
#define   greenpin   10    //Pin 10
#define   bluepin    11    //Pin 11

#define   Control_Red     A1     //entrada Analogica1
#define   Control_Green   A2    //entrada Analogica2
#define   Control_Blue    A3    //entrada Analogica3
//------------ Fim das Definições ---------------//


//----------  Variaveis Globais  -------------//
int pot_R =0;      //cria uma variavel do tipo inteira
int pot_G =0;      //cria uma variavel do tipo inteira
int pot_B =0;      //cria uma variavel do tipo inteira
//----------  Fim das Variaveis Globais  -------------//

//----------  Configuração Inicial  -------------//
void setup()
{
  pinMode(redPin, OUTPUT);  //define pino como saída
  pinMode(greenPin, OUTPUT);//define pino como saída
  pinMode(bluePin, OUTPUT); //define pino como saída
}
//---------- Fim da Configuração Inicial  -------------//

//----------  Programa Principal  -------------//
void loop()
{
  //realiza a leitura dos potenciometros
  pot_R = analogRead(Control_Red/4);  //Lê o valor do Canal AD - A0 controle do vermelho
  pot_G = analogRead(Control_Green/4);//Lê o valor do Canal AD - A1 controle do verde
  pot_B = analogRead(Control_Blue/4); //Lê o valor do Canal AD - A2 controle do azul
  
  // atualiza valor do PWM
  analogWrite(redpin,pot_R);  // PWM COR VERMELHO
  analogWrite(greenpin,pot_G);  // PWM COR VERDE
  analogWrite(redpin,pot_B);    // PWM COR AZUL

}
//---------- fim do Programa Principal  -------------//  

Esquema Elétrico
 
 
Bom Trabalho!!!