/*Controle de cores RGB*/
#include <EEPROM.h> //Biblioteca EEPROM Lê e grava dados na memoria do arduino
//não se apaga mesmo desligando
const int R = 9; //pino 9, 10, 11 PWM
const int G = 10;
const int B = 11;
const int Pot = A0; //Porta analogica Potenciometro
byte bot0 = 5; //variaveis dos botões
byte bot1 = 6;
byte bot2 = 7;
int valor; //Valor da leitura do potenciometro de 0 a 255
int valor_R = EEPROM.read(0); //Ler dados da EEPROM,
int valor_G = EEPROM.read(1);
int valor_B = EEPROM.read(2);
byte bot0s; //armazena estado do botao = 0 ou 1
byte bot1s;
byte bot2s;
void setup() {
Serial.begin(9600); //Inicia porta serial
pinMode(R, OUTPUT); //modos de entrada e saida dos pinos
pinMode(G, OUTPUT);
pinMode(B, OUTPUT);
pinMode(bot0, INPUT_PULLUP); ///habilita entrada em linha com GND e resistor interno
pinMode(bot1, INPUT_PULLUP);
pinMode(bot2, INPUT_PULLUP);
}
void loop() {
valor = analogRead(Pot); //Leitura dos dados analogicos do Potenciometro
valor = map (valor,0,1023, 0, 255); //conversão dos dados da porta analogica para digital
bot0s=digitalRead(bot0); //lendo informação de pressão dos botões (0 = pressionado)
bot1s=digitalRead(bot1);
bot2s=digitalRead(bot2);
if (bot0s == 0) {valor_R = valor;} //Coletando informação do potenciometro e gravando EEPROM
EEPROM.write(0, valor_R), analogWrite(R,valor_R); //enviando informação para a cor R
if (bot1s == 0) {valor_G = valor;}
EEPROM.write(1, valor_G), analogWrite(G, valor_G); //enviando informação para a cor G
if (bot2s == 0) {valor_B = valor;}
EEPROM.write(2, valor_B), analogWrite(B, valor_B); //enviando informação para a cor B
/*Imprime os dados no Monitor Serial*/
Serial.print(" - Botoes:");
Serial.print(bot0s), Serial.print(bot1s),Serial.println(bot2s);;
Serial.print("potenciometro:");
Serial.print(valor);
Serial.print(" - LEDs-R:");
Serial.print(EEPROM.read(0));
Serial.print(" -G:");
Serial.print(EEPROM.read(1));
Serial.print(" -B:");
Serial.print(EEPROM.read(2));
delay(250);
}