+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);
+ }
+ }
+}
+