#include "Arduino.h"
#include "common.h"
-#define DEBUG_not
+#define DEBUG
//////////////////////
// RGB LED
previousMillis = 0;
byte brightness = 0 ;
increment = 1;
+ int step = 0; // Pulse: stato del loop PWM
+ int interval = 1;
};
void Pwm::Up(long speed, long drift) {
}
+void Pwm::Pulse(int interval, int pausa) {
+ // PWM up/down + un ciclo di pausa
+ // Interval e' la pausa tra uno step di 255 e l'altro
+
+ if ((millis() - previousMillis) >= interval) {
+ previousMillis = millis();
+ if (step < 256) { //UP
+ analogWrite(ledPin, lum(step));
+ step++ ;
+ } else if (step < 512 ) { // Down
+ analogWrite(ledPin, lum(511 - step));
+ step++ ;
+ } else if (step < 512 + pausa ){ // Pausa
+ analogWrite(ledPin, lum(0));
+ step++ ;
+ } else if (step >= 512 + pausa) { // Reset
+ step = 0 ;
+ }
+ }
+}
+
+void Pwm::RandomPulse(int min , int max, int pausa ) {
+ // PWM up/down + un ciclo di pausa
+ // L'intervallo e' random a ogni nuovo ciclo,
+ // compreso tra un min - max passato come argomento
+
+ if ((millis() - previousMillis) >= interval) {
+ previousMillis = millis();
+ if (step < 256) { //UP
+ analogWrite(ledPin, lum(step));
+ step++ ;
+ } else if (step < 512 ) { // Down
+ analogWrite(ledPin, lum(511 - step));
+ step++ ;
+ } else if (step < (512 + pausa )){ // Pausa
+ analogWrite(ledPin, lum(0));
+ step++ ;
+ } else if ((step >= 512 + pausa )) {
+ step = 0 ;
+ interval = random(min,max);
+ }
+ }
+}
+
void Pwm::lSet(byte brightness) {
// Imposta il valore del PWM con correzione luminosita' LED
analogWrite(ledPin, lum(brightness));