Led RGB

Contôle des LEDs RGB avec Shift Register  74hc595 :

http://www.zem.fr/arduino-controler-des-leds-rgb-avec-shiftpwm-et-des-74hc595/

Inspiré par http://www.elcojacobs.com/shiftpwm/

Led de type « Keyes » avec cathode commune (-)

https://learn.adafruit.com/adafruit-arduino-lesson-3-rgb-leds/arduino-sketch

Placer des résistances de 220 ohms  sur chaque broche.

/*
RGB LED
*/

int redPin = A0; //– Avec Resistance 220 Ohms
int greenPin = A1;//– Avec Resistance 220 Ohms
int bluePin = A2;//– Avec Resistance 220 Ohms
//Et Cathode (-) //– Avec Resistance 220 Ohms

//uncomment this line if using a Common Anode LED
//#define COMMON_ANODE

void setup()
{
pinMode(redPin, OUTPUT);
pinMode(greenPin, OUTPUT);
pinMode(bluePin, OUTPUT);
}

void loop()
{
setColor(255, 0, 0); // red
delay(1000);
setColor(0, 255, 0); // green
delay(1000);
setColor(0, 0, 255); // blue
delay(1000);
setColor(255, 255, 0); // yellow
delay(1000);
setColor(80, 0, 80); // purple
delay(1000);
setColor(0, 255, 255); // aqua
delay(1000);
}

void setColor(int red, int green, int blue)
{
#ifdef COMMON_ANODE
red = 255 – red;
green = 255 – green;
blue = 255 – blue;
#endif
analogWrite(redPin, red);
analogWrite(greenPin, green);
analogWrite(bluePin, blue);
}

In this circuit, you will need to use 3 Pulse Width Modulation pins, PWM for short. Pins that are not specified as PWM pins are digital pins, which can only turn on and off. PWM pins can go from lets say 3.3 volts to five volts to 1.1 volts.

In my program  Red = pin 3, Blue = pin 5, and Green = pin 6.
int prevR = 0, prevG = 0, prevB = 0; // all of the previous RGB values
int const Red = 3; //pin 3
int const Blue = 5; // pin 4
int const Green = 6; // pin 5

void setup(){} // sets up the program
void loop() { //main loop of the program
RGB(255, 255, 255); // this calls the RGB function
delay(1000); //stays on white for one second
RGB(0, 0, 255);
delay(1000);
RGB(0,120,255);
delay(1000);
RGB(0, 255, 0);
delay(1000);
RGB(255, 0, 255);
delay(10);
RGB(0,0,0);
delay(1000);

}
void RGB(int R, int G, int B) {
for (int i = 0; i <= 255; i++)
{
if (i >= prevR – R && prevR < R) {

analogWrite(Red, prevR + i);
}
if (i >= prevG – G && prevG < G) {

analogWrite(Green, prevG + i);

}
if (i >= prevB – B && prevB < B) {

analogWrite(Blue, prevB + i);

}
//delay(10);
//}
//for (int i = 0; i <= 255; i++)
//{
if (i >= R – prevR && prevR > R) {

analogWrite(Red, prevR – i);
}
if (i >= G – prevG && prevG > G) {
analogWrite(Green, prevG – i);

}
if (i >= B – prevB && prevB > B) {

analogWrite(Blue, prevB – i);

}
delay(10);
}
delay(10);
analogWrite(Red, R);
analogWrite(Green, G);
analogWrite(Blue, B);
prevR = R;
prevG = G;
prevB = B;
}

 

Votre commentaire

Entrez vos coordonnées ci-dessous ou cliquez sur une icône pour vous connecter:

Logo WordPress.com

Vous commentez à l’aide de votre compte WordPress.com. Déconnexion /  Changer )

Photo Facebook

Vous commentez à l’aide de votre compte Facebook. Déconnexion /  Changer )

Connexion à %s

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur la façon dont les données de vos commentaires sont traitées.

Articles récents
Commentaires récents
fatima dans Bienvenue !
AdminDroid dans Bienvenue !
fatima dans Bienvenue !
Archives
Catégories
%d blogueurs aiment cette page :