// Definisci i pin analogici per i trimmer
const int trimmerRossoPin = A0;
const int trimmerVerdePin = A1;
const int trimmerBluPin = A2;
// Definisci i pin digitali per il LED RGB
const int ledRossoPin = 9;
const int ledVerdePin = 10;
const int ledBluPin = 11;
class Trimmer {
private:
int pinAnalogico;
int valore;
public:
Trimmer(int pin) : pinAnalogico(pin), valore(0) {}
void leggi() {
valore = analogRead(pinAnalogico);
}
int getValore() const {
return valore;
}
};
class LedRgb {
private:
int pinRosso;
int pinVerde;
int pinBlu;
public:
LedRgb(int rosso, int verde, int blu) : pinRosso(rosso), pinVerde(verde), pinBlu(blu) {
pinMode(pinRosso, OUTPUT);
pinMode(pinVerde, OUTPUT);
pinMode(pinBlu, OUTPUT);
// Serial.print("Inizializzazione dei pin del LED RGB: Rosso="); Serial.print(pinRosso);
// Serial.print(", Verde="); Serial.print(pinVerde); Serial.print(", Blu="); Serial.println(pinBlu);
}
void impostaColore(int intensitaRosso, int intensitaVerde, int intensitaBlu) {
analogWrite(pinRosso, intensitaRosso);
analogWrite(pinVerde, intensitaVerde);
analogWrite(pinBlu, intensitaBlu);
// Serial.print("Impostazione del colore del LED: Rosso="); Serial.print(intensitaRosso);
// Serial.print(", Verde="); Serial.print(intensitaVerde); Serial.print(", Blu="); Serial.println(intensitaBlu);
}
};
// Crea le istanze degli oggetti
Trimmer trimmerRosso(trimmerRossoPin);
Trimmer trimmerVerde(trimmerVerdePin);
Trimmer trimmerBlu(trimmerBluPin);
LedRgb led(ledRossoPin, ledVerdePin, ledBluPin);
void setup() {
// Inizializza la comunicazione seriale per il debug (opzionale)
// Serial.begin(9600);
}
void loop() {
// Leggi i valori dei trimmer
trimmerRosso.leggi();
trimmerVerde.leggi();
trimmerBlu.leggi();
// Ottieni i valori letti
int valoreRosso = trimmerRosso.getValore();
int valoreVerde = trimmerVerde.getValore();
int valoreBlu = trimmerBlu.getValore();
// Mappa i valori del trimmer (0-1023) all'intervallo PWM (0-255)
int intensitaRosso = map(valoreRosso, 0, 1023, 0, 255);
int intensitaVerde = map(valoreVerde, 0, 1023, 0, 255);
int intensitaBlu = map(valoreBlu, 0, 1023, 0, 255);
// Imposta il colore del LED usando i valori mappati per il PWM
led.impostaColore(intensitaRosso, intensitaVerde, intensitaBlu);
// Aggiungi un piccolo ritardo
delay(50);
}