RGB a Catodo Comune & Anodo Comune

Salve,sto utilizzando questo Sketch per testare gli RGB

const int redPin = 3;
const int greenPin = 6;
const int bluePin = 9;

void setup() {
  // Imposta i pin come uscite
  pinMode(redPin, OUTPUT);
  pinMode(greenPin, OUTPUT);
  pinMode(bluePin, OUTPUT);
}
void setColor(int red, int green, int blue) {
  // LED RGB ad anodo comune, quindi inverti i valori
  analogWrite(redPin, 255 - red);
  analogWrite(greenPin, 255 - green);
  analogWrite(bluePin, 255 - blue);
}

void loop() {
  // Accendi il rosso
  setColor(255, 0, 0);
  delay(2000); // Aspetta 1 secondo

  // Accendi il verde
  setColor(0, 255, 0);
  delay(2000); // Aspetta 1 secondo

  // Accendi il blu
  setColor(0, 0, 255);
  delay(2000); // Aspetta 1 secondo

  // Accendi tutti e tre i colori (bianco)
  //setColor(255, 255, 255);
  //delay(1000); // Aspetta 1 secondo

 // spegni tutto
  setColor(0,0,0);
  delay(3000);
}

Il problema riscontrato è che con il RGB ad Anodo comune i Colori si evidenziano correttamente, diversamente con l'RGB a Catodo Comune il rosso è Fuxia il Verde è quasi Giallo ecd il blu è di colore chiarissimo( azzurrino)
ed in piu come si vede dal codice alla fine cè un spegnimento dei colori per poi ripartire con l'anodo comune lo esegue correttamente diverssamente lil Catodo comune gira i colori di continuo.
non capisco dove ci sia il problema.

Hai messo le resistenze in serie ai LED?

Non vedo l'alternanza di catodo comune e anodo comune...

Si le resistenze le ho messe e ne ho provate di diversi valori senza sucesso con il catodo al GNG, alla fine dello sketch cè il comando deley ( 3000 );

In questo momento ho in uso quello con Anodo Comune e funziona correttamente almeno i colori ci sono Rosso Verde Blù

Non so se sia importante ma l'RGB ad anodo comune è trasparente invece quello a Catodo comune è Opaco

Non capisco la domanda: Non Vedo l'alternanza di catodo Comune e Anodo Comune

Il codice che hai postato va bene per l'anodo comune, il valore del PWM viene infatti invertito dal codice (il valore di comando è 255 - valore), mentre con il catodo comune devi usare direttamente il valore.

Ciao, Ale.

Comunque, red, green e blue dovrebbero essere uint8_t.

This topic was automatically closed 180 days after the last reply. New replies are no longer allowed.