Hola Amigos de la Comunidad:
En esta ocasiòn estoy necesitando una guìa para realizar un còdigo que me permita controlar un led RGB con dos botones o push-button, de la siguiente forma:
Al presionar repetidamente el Boton 1, se debe escoger entre los tres colores del led, rojo, verde, azul....de manera que....:
pulso 1--->Rojo
pulso 2--->Verde
pulso 3--->Azul
pulso 4--->Rojo
pulso 5--->Verde
Luego, con el auxilio del Boton 2, poder variar la intensidad del ùltimo color que quedò seleccionado con el boton 1. Mientras se tenga apretado el Boton 2, se va incrementando de 1 en 1 hasta 255, el valor de la intensidad de ese color.
En el Asunto puse la palabra ADAPTANDO, pues yo tengo realizado un pequeño còdigo que me funciona bien y hace lo mismo, solo que los datos son introducidos por el monitor serial, de manera que el usuario debe introducir la intensidad del rojo, la intensidad del verde y la intensidad del azul, en valores entre 0 y 255 separados por comas ","
Es lo màs parecido a lo que ahora me piden, pues buscando en Google y aquì en el foro, solo encuentro tratamiento de botones para acceder a menùs con displays LCD, con librerìas y todo, que no me parece sea este el caso.
Le dejo acontinuaciòn el còdigo que me funciona con la introducciòn manual (monitor serial) de las intensidades de cada color.
Si alguien tiene idea de como afrontar este ejercicio y me puede dar una mano, les estoy desde ya agradecido.
Muchas gracias y buen trabajo!
Juan Carlos
/*---------------------------------------------------
Pràctica 11, Ejercicio 1: LED RGB con colores a partir del monitor serial
--------------------------------------------------
Programa que genera diversas tonalidades de colores en
un led RGB.
Las diferentes tonalidades del color son introducidas por el usuario
a travès del monitor serial, con un formato como sigue:
"cantidad de rojo, cantidad de verde, cantidad de azul", que
seràn valores de 0-255 separados por comas
*/
//-----------------------------------------------------
//Declarar puertos de entrada y salida, variables, etc.
//-----------------------------------------------------
int ledRojo = 9; // declaro que el pin rojo es el 9
int ledVerde = 10; // declaro que el pin verde es el 10
int ledAzul = 11; // declaro que el pin azul es el 11
//------------------------------------
//Funciòn principal o de configuraciòn
//------------------------------------
void setup()
{
pinMode (ledRojo, OUTPUT); // inicializo el pin rojo como salida
pinMode (ledVerde, OUTPUT); // inicializo el pin verde como salida
pinMode (ledAzul, OUTPUT); // inicializo el pin azul como salida
Serial.begin (9699); // inicializo comnicaciòn serial
Serial.println("Hola: Escribe los valores entre 0 y 255 para cada color R,V,A separados por una coma");
}
//--------------------
//Funciòn cìclica
//--------------------
void loop()
{
if (Serial.available() > 0)
{
int rojo = Serial.parseInt(); //guardo el primer valor leìdo en "rojo"
int verde = Serial.parseInt(); //guardo el 2do. valor leìdo en "verde"
int azul = Serial.parseInt(); //guardo el 3er. valor leìdo en "azul"
analogWrite(ledRojo, rojo); // escritura del valor del led Rojo
analogWrite(ledVerde, verde); // escritura del valor del led Verde
analogWrite(ledAzul, azul); // escritura del valor del led Azul
Serial.print("rojo=");
Serial.println(rojo); // escribo el valor de rojo para verlo
Serial.print("verde=");
Serial.println(verde); // escribo el valor de verde para verlo
Serial.print("azul=");
Serial.println(azul); // escribo el valor de azul para verlo
}
}
// Fin del programa
