/*
- Adafruit Arduino - Lesson 3. RGB LED
+ RGB struct LED
RGB LED: mpostare i colori per un LED RGB
- common anode
+ common anode utilizzando uno struct
Schema: http://lab.piffa.net/schemi/rgb.jpg
*/
-byte pin[3] = {11, 10, 9}; // 2v a 20ma: che resistenza dovro usare?
+byte pin[3] = {11, 10, 9}; // 2v a 20ma: che resistenza dovro' usare?
struct color {
- byte red ;
- byte blue;
- byte green;
+ byte rpin ;
+ byte bpin;
+ byte gpin;
} ;
-color led;
-
+color rosso = {255,0,0};
void setup()
{
}
}
-
void loop()
{
- analogWrite(pin[0], led.red);
- analogWrite(pin[1], led.green);
- analogWrite(pin[2], led.blue);
+ analogWrite(pin[0], rosso.rpin);
+ analogWrite(pin[1], rosso.gpin);
+ analogWrite(pin[2], rosso.bpin);
}
/* Domande:
3. Sarebbe piu' elegante scrivere una funzione per gestire il setup dei PIN
e impostare i colori?
3.1 Servira' una o piu' funzioni?
- 4. Esiste un costrutto che mi permetta di legare le differenti caratteristiche
+ 4. Esiste un costrutto che mi permetta di legare le differenti proprieta'
del LED RGB e contemporaneamente raggruppare le funzioni che tipicamente uso con questo?
*/
+/* Risposte:
+ * 1.
+
+struct ledRGB {
+ byte rPin ; // PINS
+ byte gPin;
+ byte bPin;
+ byte blue; // Colors
+ byte green;
+ byte red;
+};
+
+ledRGB led {9,10,11,0,255,255};
+
+void setup()
+{
+ pinMode(led.rPin, OUTPUT);
+ pinMode(led.gPin, OUTPUT);
+ pinMode(led.bPin, OUTPUT);
+}
+void loop()
+{
+ analogWrite(led.rPin,led.red );
+ analogWrite(led.gPin,led.green);
+ analogWrite(led.bPin,led.blue);
+}
+*/