Oggetti comuni
+Autore: Andrea Manni
+
+Link: http://git.andreamanni.com/
+Licenza: GPLv3
+
*/
#include "Arduino.h"
#define common_h
// Variabili
-const uint8_t BCORRECT[256] PROGMEM = { // Tabella per correzione luminosita' PWM
+const uint8_t BCORRECT[256] PROGMEM = { // Tabella per correzione luminosita' LED a 8bit
0,0,0,1,1,1,2,1,1,2,1,2,2,2,3,2,
2,2,3,2,2,3,2,3,3,3,4,3,3,3,4,4,
4,5,4,5,4,5,5,6,5,5,6,5,6,6,7,6,
byte redValue ;
byte greenValue ;
byte blueValue ;
+ byte common ;
public:
RGBLed (byte pinR, byte pinG, byte pinB) ;
+ RGBLed (byte pinR, byte pinG, byte pinB, byte com) ;
void SetColor (byte r, byte g, byte b) ;
+ void Rand ();
void Red ();
void Green ();
void Blue ();
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
+ void Blink(); // Lampeggia ogni 500ms
+ void Blink(long interval, long drift = 0); // Lampeggia inpostando l'intervallo
+ void Blink(long on, long down, long drift); // Imposta il tempo acceso e il tempo spento
+ void High(); // Accende il LED
+ void Low(); // Spegne il LED
+ void Swap(); // Inverte lo stato del LED
+ unsigned long shift ; // anticipo / ritardo
};
int ledPin ; // il numero del LED pin
int speed ; // velocita' del ciclo in ms
unsigned long previousMillis ; //precedente cambio di stato
- byte increment ; // aumenta brighteness nel loop UD
+ 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);
+ void Up(long speed, long drift = 0);
+ void lUp(long speed, long drift = 0);
+ void Down(long speed, long drift = 0);
+ void lDown(long speed, long drift = 0);
+ void UD(long speed, long drift = 0);
+ void Set(byte brighteness);
+ void lSet(byte brighteness);
byte brightness ; // luminostia' iniziale
+ unsigned long shift ; // anticipo / ritardo
+};
+
+
+
+////////////////////////////
+class Sequenza {
+ // Lampeggia LED in sequenza utilizzando millis()
+ unsigned long previousMillis ;
+ byte i = 0;
+ byte *ledPins;
+ byte size;
+ int inc = 1;
+ long interval;
+
+ public:
+ Sequenza (byte passed[], byte dim) ; // Array contentente i PINS, dimensioni array
+ void Update(long value) ; // Accende in sequenza
+ void Reverse(long value) ; // Invertita
+ void UD(long value) ; // Up & Down
};
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
//////////////////////
// Funzioni
void brilla(byte pin, int velocita = 200) ;
-#endif
byte lum(byte val);
+
+int calibraTrim(int pin, const byte ledPin = 13);
+
+
+#endif