// Pwm
// Constructor
Pwm::Pwm(int pin)
+ // Gestione del PWM utilizzando millis
+ // per non bloccare il processore con delay
{
ledPin = pin;
pinMode(ledPin, OUTPUT);
--- /dev/null
+/* Funzione Invert
+
+ Due LED con lampeggio alternato
+*/
+
+#include <common.h>
+
+Lampeggiatore right = 3;
+Lampeggiatore left = 5;
+
+void setup() {
+ left.Invert(); // Parte da stato invertito rispetto al default
+}
+
+void loop() {
+ // Due LED con lampeggio alternato:
+ right.Blink();
+ left.Blink();
+ // Si possono usare i soliti metodi dell'oggetto blink
+}
--- /dev/null
+/* Esempio
+
+ Utilizzo dell'oggetto Lampeggiatore:
+ Lampeggia un LED utilizzando millis()
+*/
+
+#include <common.h>
+
+// Instanziamo un LED fuori dal loop
+Lampeggiatore led = 13;
+
+void setup() {
+// I PINs vengono impostati dal constructor al momento
+// della dichiarazione dell'ogetto.
+
+led.Invert() ; // Opzionale: inverte l'ordine del lampeggio da
+ // HI -> LOW --> LOW -> HI
+ // per avere 2 LED che lampeggiano alternativamente
+}
+
+void loop() {
+ led.Blink(); // Lampeggia con un default di 1sec (0.5 HI 0.5 LOW)
+ led.Blink(500); // Lampeggia ogni 500ms
+ led.Blink(500,200); // Imposta il tempo acceso e il tempo spento
+}
/* Ereditarieta'
La classe SuperLED definita in questo sketch
- eredita le caratteristiche di RGBLed e introduce un nuovo metodo.
+ eredita le caratteristiche di RGBLed e introduce un nuovo metodo
+ per un nuovo colore custom.
*/
public:
void Violet () { // Nuovo metodo
// Accende il LED di viola
+
analogWrite(redPin, 255 - 238);
analogWrite(greenPin, 255 - 130);
analogWrite(bluePin, 255 - 238);
void loop() {
led.Violet(); // Nuovo metodo
delay(1000);
- led.Off();
- delay(1000); // Vecchio metodo
+ led.Off(); // Vecchio metodo
+ delay(1000);
}
+++ /dev/null
-/* Esempi Vari
-
-Vari esempi di utilizzo della libreria.
-*/
-
-#include <common.h>
-
-// Lampeggio con valore automatico
-Lampeggiatore lamp = 4 ;
-
-// Due LED con lampeggio alternato:
-Lampeggiatore right = 3;
-Lampeggiatore left = 5;
-
-void setup() {
- left.Invert(); // Parte da stato invertito rispetto al default
-}
-
-void loop() {
-// Lampeggio con valore automatico
- lamp.Blink()
- lamp.Blink(300); // Lampeggia ogni 300ms
- lamp.Blink(300,100); // Lampeggia per 300ms HIGH, 100ms LOW
-
- // Due LED con lampeggio alternato:
- right.Blink();
- left.Blink();
-}
+++ /dev/null
-/* Esempio
-
- Come caricare e usare un oggetto e una funzione
- facente parte della libreria.
-*/
-
-#include <common.h>
-
-void setup() {
- // I PINs vengono impostati dalla dichiarazione dell'ogetto.
-}
-
-// Instanziamo un LED
-RGBLed led(11, 10, 9); //Istanziamo un oggetto led facente parte
- // della classe RGBLed
-
-void loop() {
- led.Red();
- delay(1000);
- led.SetColor(255, 0, 255) ; // Mettiamo il LED in Green
- delay(1000);
- led.Off();
-
- brilla(13); // Funzione
-}
--- /dev/null
+/* Esempio
+
+ Utilizzo dell'oggetto PWM:
+ Gestione del PWM utilizzando millis
+ per non bloccare il processore con delay
+*/
+
+#include <common.h>
+
+// Instanziamo un LED fuori dal loop
+Pwm led = 9;
+
+void setup() {
+// I PINs vengono impostati dal constructor al momento
+// della dichiarazione dell'ogetto.
+}
+
+void loop() {
+ led.Up(2000); // Aumenta la luminosita' in 2 sec
+ led.Down(1000); // Diminuisce la luminosita' in 1 sec
+ led.UD(4000); // Aumenta e poi diminuisce la luminostia' in 4 sec.
+}
--- /dev/null
+/* Esempio
+
+ Come caricare e usare un oggetto e una funzione
+ facente parte della libreria.
+*/
+
+#include <common.h>
+
+void setup() {
+ // I PINs vengono impostati dalla dichiarazione dell'ogetto.
+}
+
+// Instanziamo un LED
+RGBLed led(11, 10, 9); //Istanziamo un oggetto led facente parte
+ // della classe RGBLed
+
+void loop() {
+ led.Red();
+ delay(1000);
+ led.SetColor(255, 0, 255) ; // Mettiamo il LED in Green
+ delay(1000);
+ led.Off();
+}
+
+/* Colori disponibili:
+ Red
+ Green
+ Blue
+ Magenta
+ Cyano
+ White
+ Yellow
+
+Nota: per aggiungerne uno senza modificare la libreria originale
+si potrebbe usara l'ereditarieta': vedi esempio "eredita.ino" .
+*/