From 640e0d8e3ffdddece17a67db159ec2f5db64b92d Mon Sep 17 00:00:00 2001 From: Andrea Manni Date: Thu, 31 Mar 2016 17:43:28 +0200 Subject: [PATCH] RGB obj --- RGB_LED/rgb_4_array/rgb_4_array.ino | 35 ++++++++++++++++ RGB_LED/rgb_5_struct/rgb_5_struct.ino | 51 +++++++++++++++++++++++ RGB_LED/rgb_6_obj/rgb_6_obj.ino | 59 +++++++++++++++++++++++++++ 3 files changed, 145 insertions(+) create mode 100644 RGB_LED/rgb_4_array/rgb_4_array.ino create mode 100644 RGB_LED/rgb_5_struct/rgb_5_struct.ino create mode 100644 RGB_LED/rgb_6_obj/rgb_6_obj.ino 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 index 0000000..81f8928 --- /dev/null +++ b/RGB_LED/rgb_4_array/rgb_4_array.ino @@ -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 index 0000000..1372da7 --- /dev/null +++ b/RGB_LED/rgb_5_struct/rgb_5_struct.ino @@ -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 index 0000000..723b8cb --- /dev/null +++ b/RGB_LED/rgb_6_obj/rgb_6_obj.ino @@ -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 + } -- 2.39.2