]> git.piffa.net Git - sketchbook_andrea/blobdiff - RGB_LED/rgb_5_struct/rgb_5_struct.ino
Struct
[sketchbook_andrea] / RGB_LED / rgb_5_struct / rgb_5_struct.ino
index 1372da7e6f9d2966526eb815bac439ec6447f140..0ac4364850c0c18405e4a040dcc26e6727857d02 100644 (file)
@@ -1,23 +1,22 @@
 /*
-    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()
 {
@@ -26,12 +25,11 @@ 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:
@@ -43,9 +41,36 @@ void loop()
  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);
+}
+*/