Das Erste!
Das war mein Ausgangspunkt :
Adafruit RGB LED Lektion
Ein gutes Lehrbuch (aber teuer!). Ich habe es auf Englisch.
Blau ist pin 5, grün ist pin 6, und rot ist pin 7.
rgb_led_continuous
int rot_pin = 5;
int gruen_pin = 6;
int blau_pin = 7;
// common cathode
void setup()
{
pinMode(rot_pin,OUTPUT);
pinMode(gruen_pin,OUTPUT);
pinMode(blau_pin,OUTPUT);
}
void loop()
{
//setColor(255,0,0);
//delay(1000);
for (int n=0; n<8; n++) {
for (int x=0; x<8; x++) {
for (int y=0; y<16; y++) {
setColor(16*n,255-16*x,0);
delay(1);
}
}
}
setColor(0,0,10);
delay(5000);
}
void setColor(int rot, int gruen, int blau)
{
analogWrite(rot_pin,rot);
analogWrite(gruen_pin,gruen);
analogWrite(blau_pin,blau);
}
Was es tut
rgb_led_ask
int rot_pin = 7; int gruen_pin = 6; int blau_pin = 5;
// common cathode
int rot; int gruen; int blau;
int field_index = 0;
int colors[3];
void setup()
{
pinMode(rot_pin,OUTPUT);
pinMode(gruen_pin,OUTPUT);
pinMode(blau_pin,OUTPUT);
Serial.begin(19200);
Serial.println("(Wie viel Rot?), (Wie viel Grün?), (Wie viel Blau?)");
}
void loop()
{
if (Serial.available()) {
char num = Serial.read();
if (isDigit(num)) { // is ascii between 0 and 9?
if(field_index < 3) {
colors[field_index] = (colors[field_index] * 10) + (num - '0');
}
}
else if (num == ',') {
field_index++;
}
else {
rot = colors[0]; gruen = colors[1]; blau = colors[2];
Serial.print("Rot = "); Serial.print(rot);
Serial.print(" Gruen = "); Serial.print(gruen);
Serial.print(" Blau = "); Serial.println(blau);
setColor(rot,gruen,blau);
field_index = 0;
colors[0] = 0; colors[1] = 0; colors[2] = 0;
}
}
}
void setColor(int rot, int gruen, int blau)
{
analogWrite(rot_pin,rot);
analogWrite(gruen_pin,gruen);
analogWrite(blau_pin,blau);
}