]> git.piffa.net Git - sketchbook_andrea/blob - libraries/common/common.h
aero
[sketchbook_andrea] / libraries / common / common.h
1 /*
2   Common Class
3
4   Oggetti comuni
5
6 */
7
8 #include "Arduino.h"
9 #ifndef common_h
10 #define common_h
11
12
13 class RGBLed {
14   // Classe rappresentativa di un LED RGB
15   protected:    // Vedi esempio Ereditarieta'
16     byte redPin ;
17     byte greenPin ;
18     byte bluePin ;
19     byte redValue ;
20     byte greenValue ;
21     byte blueValue ;
22
23   public:
24     RGBLed (byte pinR, byte pinG, byte pinB) ;
25         void SetColor (byte r, byte g, byte b) ;
26         void Red ();
27     void Green ();
28     void Blue ();
29     void Magenta ();
30     void Cyano ();
31     void White ();
32     void Yellow ();
33     void Off ();
34 };
35
36
37
38 class Lampeggiatore {
39     // Lampeggia un LED utilizzando millis()
40     // Variabili
41     int ledPin ;           // il numero del LED pin
42     int ledState ;         // stato attuale del LED
43     long interval ;        // milliseconds di intervallo nel lampeggiare
44     long previousMillis ;  // precedente cambio di stato
45
46
47     // Constructor: come viene instanziato un oggetto facente parte della classe
48 public:
49     Lampeggiatore(int pin);
50     void Blink();       // Lampeggia ogni 500ms
51     void Blink(long interval); // Lampeggia inpostando l'intervallo
52     void Blink(long on, long down); // Imposta il tempo acceso e il tempo spento
53 };
54
55
56
57 ////////////////////////////
58 class Pwm {
59     /*
60        PWM per un LED: aumentare progressivamente la luminosita'.
61        Utilizza la funzione millis() invece che un delay()
62        in modo da non blocare il processore.
63     */
64     // Variabili
65     int ledPin ;           // il numero del LED pin
66     int speed ;            // velocita' del ciclo in ms
67     byte brightness  ;      // luminostia' iniziale
68     long previousMillis ;  //precedente cambio di stato
69     byte increment ;        // aumenta brighteness nel loop UD
70
71     // Constructor: come viene instanziato un oggetto facente parte della classe
72 public:
73     Pwm(int pin);  // numero di pin, velocita' di ciclo
74     void Up(long speed);
75     void Down(long speed);
76     void UD(long speed);
77 };
78
79 //////////////////////
80 // Funzioni
81
82 void brilla(byte pin, int velocita = 200) ;
83 #endif