buenas tardes .
Soy bastante nuevo en el foro pero siempre busco apoyo en sus lecturas y códigos para fabricar los propios.
me encuentro con un proyecto con led RGV que quisiera solicitar su apoyo en corrección e ideas.
el proyecto consiste en controlar un led RGB por medio de tres pulsadores y solo un potenciometro .
me explico :
mantengo pulsado el primer pulsador y modifico el valor del primer pwm con el potenciometro luego lo suelto y el valor queda guardado para esa salida ,
manualmente vuelvo el potenciometro a cero y comienzo con el segundo pwm.
mantengo presiono el segundo boton y modifico el valor pwm 2 con el potenciometro , luego lo suelto y el valor queda grabado para esa salida .
manualmente vuelvo el potenciometro a cero y comienzo con el tercer pwm.
mantengo presiono el tercer boton y modifico el valor pwm 3 con el potenciometro , luego lo suelto y el valor queda grabado para esa salida .
les presento el codigo el cual funciona pero tengo ciertas dudad ya que al soltar el pulsador queda igual modificando el pwm y solo se detiene al pulsar otro de los pulsadores.
int pot=A0;
int v1=0;
int v2=0;
int v3=0;
int l1=9;
int l2=10;
int l3=11;
const int p1=5;
const int p2=6;
const int p3=7;
int j;
int k;
int l;
int num;
void setup() {
Serial.begin(9600);
pinMode(l1,OUTPUT);
pinMode(l2,OUTPUT);
pinMode(l3,OUTPUT);
pinMode(p1,INPUT);
pinMode(p2,INPUT);
pinMode(p3,INPUT);
}
void pulso1(){
v1 = (analogRead(pot)/4);
analogWrite(l1,v1);
}
void pulso2(){
v2 = (analogRead(pot)/4);
analogWrite(l2,v2);
}
void pulso3(){
v3 = (analogRead(pot)/4);
analogWrite(l3,v3);
}
void loop() {
j= digitalRead(p1);
if (j==HIGH){
num=1;
delay(100);
}
k= digitalRead(p2);
if(k==HIGH){
num=2;
delay(10);
}
l= digitalRead(p3);
if(l==HIGH){
num=3;
delay(10);
}
pot =analogRead(A0);
if(num==1)//j ==1 && k==0 && l==0)
{
pulso1();
}
if(num==2)//j ==0 && k==1 && l==0)
{
pulso2();
}
if(num==3)//j ==0 && k==0 && l==1)
{
pulso3();
}
Serial.print("valor pot = ");
Serial.print(pot);
Serial.print(" ");
Serial.print("valor l1 = ");
Serial.print(v1);
Serial.print(" ");
Serial.print("valor l2 = ");
Serial.print(v2);
Serial.print(" ");
Serial.print("valor l3 = ");
Serial.print(v3);
Serial.print(" ");
Serial.print("valor num = ");
Serial.println(num);
//delay(10);
}
En la imagen tengo colocado 3 led simulando el led RGB
[/img].de antemano muchas gracias por su ayudas y consejos

.