int Ledrojo = 6;
int Ledverde = 5;
int Ledazul = 4;
int Pulsrojo = 8;
int Pulsverde = 9;
int Pulsazul = 10;
int Pulsrojo2 = 11;
int Pulsverde2 = 12;
int Pulsazul2 = 13;
int rojo = 0;
int azul = 0;
int verde = 0;
void setup()
{
pinMode(Ledrojo, OUTPUT);
pinMode(Ledverde, OUTPUT);
pinMode(Ledazul, OUTPUT);
pinMode(Pulsrojo, INPUT_PULLUP);
pinMode(Pulsverde, INPUT_PULLUP);
pinMode(Pulsazul, INPUT_PULLUP);
pinMode(Pulsrojo2, INPUT_PULLUP);
pinMode(Pulsverde2, INPUT_PULLUP);
pinMode(Pulsazul2, INPUT_PULLUP);
}
void loop()
{
if (digitalRead(Pulsrojo) == LOW)
{
rojo ++;
if (rojo > 255) rojo = rojo + 50;
}
if (digitalRead(Pulsverde) == LOW)
{
verde ++;
if (verde > 255) verde = verde + 50;
}
if (digitalRead(Pulsazul) == LOW)
{
azul ++;
if (azul > 255) azul = azul + 50;
}
if (digitalRead(Pulsrojo2) == LOW)
{
rojo --;
if (rojo > 255) rojo = rojo + 50;
}
if (digitalRead(Pulsverde2) == LOW)
{
verde --;
if (verde > 255) verde = verde + 50;
}
if (digitalRead(Pulsazul2) == LOW)
{
azul --;
if (azul > 255) azul = azul + 50;
}
analogWrite(Ledrojo, rojo);
analogWrite(Ledverde, verde);
analogWrite(Ledazul, azul);
delay(50);
}
Ahora he intentado, que cada vez que pulse uno de los tres primeros pulsadores se sume 50, pero cada vez que se pulse uno de los tres últimos se reste. Tengo el problema que cada vez que llego a 0 y vuelvo a restar, se pone automáticamente en el máximo y no funciona.