]> git.piffa.net Git - sketchbook_andrea/blob - RGB_LED/rgb_7_obj/rgb_7_obj.ino
5a3dcf8db54fc7b7b6e8454de7de282b17628d15
[sketchbook_andrea] / RGB_LED / rgb_7_obj / rgb_7_obj.ino
1 /*
2     RGB Object
3
4     Gestione di un LED RGB tramite programmazione a oggetti
5
6  Schema: http://lab.piffa.net/schemi/rgb.jpg
7  */
8
9 class RGBLed {
10   // Classe rappresentativa di un LED RGB
11   
12     // Private properties, le proprieta' sono private per default
13     byte redPin ;
14     byte greenPin ;
15     byte bluePin ;
16
17   public:
18     // Constructor: come viene instanziato un oggetto facente parte della classe
19     RGBLed(byte pinR, byte pinG, byte pinB)
20     {
21       // Carichiamo i valori dei PIN dentro alle proprieta'
22       redPin    = pinR ;
23       greenPin  = pinG ;
24       bluePin   = pinB ;
25
26       // Equivalente del Setup() per inizializzare i PIN
27       pinMode(redPin, OUTPUT);
28       pinMode(greenPin, OUTPUT);
29       pinMode(greenPin, OUTPUT);
30     }
31
32     void Arrossa () {
33       // Metodo = funzione dell'oggetto
34       // Imposta il colore di un LED RGB a rosso
35
36       analogWrite(redPin,   0);
37       analogWrite(greenPin, 255);
38       analogWrite(bluePin,  255);
39     }
40
41     void SetColor (byte r, byte g, byte b) {
42       // Imposta il colore di un LED RGB
43
44       analogWrite(redPin,   r);
45       analogWrite(greenPin, g);
46       analogWrite(bluePin,  b);
47     }
48 };
49
50 // Instanziamo un LED
51 RGBLed led(11, 10, 9);
52 /* L'oggetto viene istanziato qui e non nella funzione di setup()
53     perche' altrimenti la sua esistenza sarebbe legata solo
54     al contesto (scope) del setup(), non sarebbe disponibile nel loop()
55  */
56
57 void setup()  {
58   // I PIN mode vengono settati dal constructor
59 }
60
61 void loop() {
62   led.Arrossa();
63   delay(1000);
64   led.SetColor(255, 0, 255) ; // Mettiamo il LED in Green
65   delay(1000);
66 }
67
68 /* Domande
69  1. Provate ad accedere (serial print oppure modificare) le proprieta private e pubbliche.
70
71  */
72