]> git.piffa.net Git - sketchbook_andrea/commitdiff
RGB obj
authorAndrea Manni <andrea@piffa.net>
Thu, 31 Mar 2016 15:43:28 +0000 (17:43 +0200)
committerAndrea Manni <andrea@piffa.net>
Thu, 31 Mar 2016 15:43:28 +0000 (17:43 +0200)
RGB_LED/rgb_4_array/rgb_4_array.ino [new file with mode: 0644]
RGB_LED/rgb_5_struct/rgb_5_struct.ino [new file with mode: 0644]
RGB_LED/rgb_6_obj/rgb_6_obj.ino [new file with mode: 0644]

diff --git a/RGB_LED/rgb_4_array/rgb_4_array.ino b/RGB_LED/rgb_4_array/rgb_4_array.ino
new file mode 100644 (file)
index 0000000..81f8928
--- /dev/null
@@ -0,0 +1,35 @@
+/*
+    Adafruit Arduino - Lesson 3. RGB LED
+
+ RGB LED: mpostare i colori per un LED RGB
+ common anode
+
+ Schema: http://lab.piffa.net/schemi/rgb.jpg
+ */
+
+byte pin[3]   = {11, 10, 9};   // 2v a 20ma: che resistenza dovro usare?
+byte color[3] = {255, 255, 255};
+
+
+
+void setup()
+{
+  for (byte i = 0; i < 4; i++) {
+    pinMode(pin[i], OUTPUT);
+  }
+}
+
+
+void loop()
+{
+  analogWrite(pin[0], color[0]);
+  analogWrite(pin[1], color[1]);
+  analogWrite(pin[2], color[1]);
+}
+
+/* Domande:
+ 1. Che differenza c'e' tra le variabili dei pin e dei colori?
+ */
+
+
+
diff --git a/RGB_LED/rgb_5_struct/rgb_5_struct.ino b/RGB_LED/rgb_5_struct/rgb_5_struct.ino
new file mode 100644 (file)
index 0000000..1372da7
--- /dev/null
@@ -0,0 +1,51 @@
+/*
+    Adafruit Arduino - Lesson 3. RGB LED
+
+ RGB LED: mpostare i colori per un LED RGB
+ common anode
+
+ Schema: http://lab.piffa.net/schemi/rgb.jpg
+ */
+
+byte pin[3]   = {11, 10, 9};   // 2v a 20ma: che resistenza dovro usare?
+
+struct color {
+  byte red ;
+  byte blue;
+  byte green;
+
+} ;
+
+color led;
+
+
+void setup()
+{
+  for (byte i = 0; i < 4; i++) {
+    pinMode(pin[i], OUTPUT);
+  }
+}
+
+
+void loop()
+{
+  analogWrite(pin[0], led.red);
+  analogWrite(pin[1], led.green);
+  analogWrite(pin[2], led.blue);
+}
+
+/* Domande:
+ 1. Potrei mettere i numeri dei PIN dentro lo stesso struct?
+ 2. Quale differenza funzionale c'e' tra i numeri dei PIN e i colori?
+ 2.1 Quando devo settare i pin e quante volte?
+ 2.2 Quando imposto i colori e quanto spesso?
+
+ 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
+ del LED RGB e contemporaneamente raggruppare le funzioni che tipicamente uso con questo?
+ */
+
+
+
diff --git a/RGB_LED/rgb_6_obj/rgb_6_obj.ino b/RGB_LED/rgb_6_obj/rgb_6_obj.ino
new file mode 100644 (file)
index 0000000..723b8cb
--- /dev/null
@@ -0,0 +1,59 @@
+/*
+    Adafruit Arduino - Lesson 3. RGB LED
+
+ RGB LED: mpostare i colori per un LED RGB
+ common anode
+
+ Schema: http://lab.piffa.net/schemi/rgb.jpg
+ */
+
+class RGBLed {
+    const byte redPin ;
+    const byte greenPin ;
+    const byte bluePin ;
+    byte redValue ;
+    byte greenValue ;
+    byte blueValue ;
+
+    // Constructor: come viene instanziato un oggetto facente parte della classe
+  public:
+    RGBLed(byte pinR, byte pinG, byte pinB)
+    {
+      // Carichiamo i valori dei PIN dentro alle proprieta'
+      redPin    = pinR ;
+      greenPin  = pinG ;
+      bluePin   = pinB ;
+
+      // Equvalente del Setup() per inizializzare i PIN
+      pinMode(redPin, OUTPUT);
+      pinMode(greenPin, OUTPUT);
+      pinMode(greenPin, OUTPUT);
+    }
+
+    void Color (byte r, byte g, byte b) {
+      // Imposta il colore di un LED RGB
+      byte redValue   = r;
+      byte greenValue = g;
+      byte blueValue  = b;
+
+      analogWrite(redPin,   redValue);
+      analogWrite(greenPin, greenValue);
+      analogWrite(bluePin,  blueValue);
+    }
+};
+
+// Instanziamo un LED
+RGBLed led(11, 10, 9); 
+/* L'oggetto viene istanziato qui e non nella funzione di setup()
+ *  perche' altrimenti la sua esistenza sarebbe legata solo 
+ *  al contesto (scope) del setup(), non sarebbe disponibile nel loop()
+ */
+
+void setup()  {
+      // I PIN mode vengono settati dal constructor    
+      }
+
+
+void loop(){
+led.Color(0,255,255) ; // Mettiamo il LED in Rosso
+    }