]> git.piffa.net Git - sketchbook_andrea/blob - RGB_LED/rgb_6_quasi_obj/rgb_6_quasi_obj.ino
7150a1f65bfa9dc937ccd71835a3501173c5a5bb
[sketchbook_andrea] / RGB_LED / rgb_6_quasi_obj / rgb_6_quasi_obj.ino
1 /*
2     RGB Object (quasi!)
3
4     Gestione di un LED RGB tramite programmazione a oggetti
5     Esercizio intermedio: manca constructor.
6
7  Schema: http://lab.piffa.net/schemi/rgb.jpg
8  */
9
10 class RGBLed {
11   // Classe rappresentativa di un LED RGB
12   
13     byte redPin =11;
14     byte greenPin =10;
15     byte bluePin =9;
16     byte redValue ;
17     byte greenValue ;
18     byte blueValue ;
19
20   public:
21     void Arrossa () {
22       // Metodo = funzione dell'oggetto
23       // Imposta il colore di un LED RGB a rosso
24
25       analogWrite(redPin,   0);
26       analogWrite(greenPin, 255);
27       analogWrite(bluePin,  255);
28     }
29
30     void SetColor (byte r, byte g, byte b) {
31       // Imposta il colore di un LED RGB
32
33       analogWrite(redPin,   r);
34       analogWrite(greenPin, g);
35       analogWrite(bluePin,  b);
36     }
37 } led; // Dichiariamo un instanza dell'oggetto
38
39
40 void setup()  {
41       pinMode(9, OUTPUT);
42       pinMode(10, OUTPUT);
43       pinMode(11, OUTPUT);
44 }
45
46 void loop() {
47   led.Arrossa();
48   delay(1000);
49   led.SetColor(255, 0, 255) ; // Mettiamo il LED in Green
50   delay(1000);
51
52 }
53
54 /* Domande
55  1. Come posso fare per instanziare un altro oggetto LED?
56  2. Posso accedere (leggere / modificare) le proprieta' dell'oggetto?
57  3. A quali di queste proprieta' potrei voler accedere?
58  4. Devo comunque abilitare i PIN come OUTPUT nel setup(): sarebbe possibile
59     farlo tramite una funione, magari automaticamente?
60  .
61  .
62  .
63  .
64  .
65  .
66  .
67  .
68  .
69  .
70  .
71  .
72  .
73  .
74  .
75  .
76  1. Mi serve una funzione che permetta di assegnare delle proprieta come i PIN
77  2. Al momento no: sono tutte PRIVATE. provate a spostarne alcune sotto
78     la dichiarazione PUBLIC .
79  3. Ad es. i colori che vado a modificare, i numeri dei pin su suppone 
80     debbano restare immutati.
81  4. Per usare una funzione nel setup() bisognerebbe rendere pubbliche 
82     le proprieta' che indicano i PIM. 
83         Meglio sarebbe avere una funzione che venga invocata una sola volta 
84         al momento di instanziare l'oggetto. Un CONSTRUCTOR .
85  */
86