Catégorie « DEL RVB »

 

1. DEL_RVB_Synthese_additive

 

 

Dans cette activité, nous allons utiliser 3 potentiomètres respectivement connectés aux entrées analogiques A2, A1 et A0 de l’Arduino pour régler les luminosités des DELs Rouge, Verte et Bleue d’une DEL RVB à cathode commune.

En effet, une DEL RVB à cathode commune dispose de 4 broches, 1 cathode et 3 anodes. Chaque anode correspond à une couleur (Rouge, Vert et Bleu).

En modulant les signaux sur les anodes, il est possible d’obtenir de multiples couleurs avec la DEL RVB.
C’est le principe de la synthèse additive des couleurs des pixels des écrans d’ordinateur ou de télévision.

Le code de l’activité permet :

– Dans un premier temps, d’allumer la DEL RVB en appuyant sur le bouton poussoir,

– de faire varier la luminosité des DELs en fonction de la tension des entrées A2, A1 et A0,

– d’éteindre la DEL RVB en appuyant de nouveau sur le bouton poussoir.

// Déclaration des constantes et variables

const int PinLEDR = 11;
const int PinLEDB = 10;
const int PinLEDV = 9;
const int PinPOTR = A2;
const int PinPOTB = A0;
const int PinPOTV = A1;
const int PinButton = 12;

int ValButton = 0;
int OldValButton = 0;
int State = 0;

int BrightnessR = 0;
int BrightnessB = 0;
int BrightnessV = 0;


// Initialisation des entrées et sorties

void setup() {
pinMode (PinLEDR, OUTPUT);
pinMode (PinLEDB, OUTPUT);
pinMode (PinLEDV, OUTPUT);
pinMode (PinButton, INPUT);
}


// Fonction principale en boucle

void loop() {
ValButton = digitalRead(PinButton);
delay(10);
if ((ValButton == HIGH) && (OldValButton == LOW)) {
State=1-State;
}
OldValButton = ValButton;
if (State == 1) {
BrightnessR = analogRead(PinPOTR);
BrightnessB = analogRead(PinPOTB);
BrightnessV = analogRead(PinPOTV);
analogWrite(PinLEDR, 255 – BrightnessR/4);
analogWrite(PinLEDB, 255 – BrightnessB/4);
analogWrite(PinLEDV, 255 – BrightnessV/4);
}
else {
analogWrite(PinLEDR, 0);
analogWrite(PinLEDB, 0);
analogWrite(PinLEDV, 0);
}
}