X-Git-Url: http://git.piffa.net/web?a=blobdiff_plain;f=libraries%2Fcommon%2Fcommon.h;h=dee00b6181872550eb89f65537f9d495db40add6;hb=84fc2d6e073c1b3ab8ef1fe62a80a52d2bce657e;hp=e1b0cf061a58dfca12b9a95e063b7dbf1f0185e9;hpb=b15c46840c12896bd1b29dc360db4f30f8b5dfa4;p=sketchbook_andrea diff --git a/libraries/common/common.h b/libraries/common/common.h index e1b0cf0..dee00b6 100644 --- a/libraries/common/common.h +++ b/libraries/common/common.h @@ -1,24 +1,18 @@ /* Common Class - Collezione di funzioni e oggetti comuni incontrati durante - i vari esercizi. - - Header file - Contiene i prototipi delle funzioni e degli oggetti, - il codice e' nel fine *.cpp + Oggetti comuni */ #include "Arduino.h" -#ifndef common_h // Questi cicli IF, gestiti come macro da preprocessor -#define common_h // fanno si che questo file non venga incluso piu' volte +#ifndef common_h +#define common_h -///////////////////////////////////////////// class RGBLed { // Classe rappresentativa di un LED RGB - + protected: // Vedi esempio Ereditarieta' byte redPin ; byte greenPin ; byte bluePin ; @@ -28,6 +22,7 @@ class RGBLed { public: RGBLed (byte pinR, byte pinG, byte pinB) ; + void SetColor (byte r, byte g, byte b) ; void Red (); void Green (); void Blue (); @@ -36,10 +31,53 @@ class RGBLed { void White (); void Yellow (); void Off (); - void SetColor (byte r, byte g, byte b) ; }; -///////////////////////////////////////////// -void brilla(byte pin, int velocita = 500) ; + +class Lampeggiatore { + // Lampeggia un LED utilizzando millis() + // Variabili + int ledPin ; // il numero del LED pin + long interval ; // milliseconds di intervallo nel lampeggiare + long previousMillis ; // precedente cambio di stato + int ledState ; // stato attuale del LED, pubblico per invertirlo + + // Constructor: come viene instanziato un oggetto facente parte della classe +public: + Lampeggiatore(int pin); + void Invert(); // Inverte il lampeggio + void Blink(); // Lampeggia ogni 500ms + void Blink(long interval); // Lampeggia inpostando l'intervallo + void Blink(long on, long down); // Imposta il tempo acceso e il tempo spento +}; + + + +//////////////////////////// +class Pwm { + /* + PWM per un LED: aumentare progressivamente la luminosita'. + Utilizza la funzione millis() invece che un delay() + in modo da non blocare il processore. + */ + // Variabili + int ledPin ; // il numero del LED pin + int speed ; // velocita' del ciclo in ms + long previousMillis ; //precedente cambio di stato + byte increment ; // aumenta brighteness nel loop UD + + // Constructor: come viene instanziato un oggetto facente parte della classe +public: + Pwm(int pin); // numero di pin, velocita' di ciclo + void Up(long speed); + void Down(long speed); + void UD(long speed); + byte brightness ; // luminostia' iniziale +}; + +////////////////////// +// Funzioni + +void brilla(byte pin, int velocita = 200) ; #endif