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;
}

 

Laisser un 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 )

Image Twitter

Vous commentez à l'aide de votre compte Twitter. Déconnexion / Changer )

Photo Facebook

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

Photo Google+

Vous commentez à l'aide de votre compte Google+. Déconnexion / Changer )

Connexion à %s

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