Home >> Idee >> Ricreare la “respirazione” del LED
Recentemente - per un progetto personale - volevo vedere se potevo replicare l'effetto del led che respira

Ricreare la “respirazione” del LED

Recentemente – per un progetto personale – volevo vedere se potevo replicare questo effetto.

Il led che respira, ho scoperto cercando in rete, tra l’altro, che questo effetto è brevettato da Apple.

Sono quindi arrivato al sito di Sean Voisen dove ha studiato un algoritmo e poi tradotto in sketch per poi essere modificato da Luca Soltoggio in modo da non usare i delay e quindi di permettere la corretta continuazione del restante codice all’interno dello sketch.

Ecco il risultato:

 

/*
NonBlockingBreathingLed 0.1
by Luca Soltoggio - 2015
12 May 2015
http://www.arduinoelettronica.com/
http://arduinoelectronics.wordpress.com/
http://minibianpi.wodpress.com/

Use a exp + sin function to recreate a
non-blocking breathing led effect

Released under GPL v.2 license
*/
#include <math.h>
#define ledPin 11
int i=0;
int breathe_delay = 15; // delay between loops
unsigned long breathe_time = millis();
void setup()
{
}
void loop()
{
nonBlockingBreath(); // call the nonblocking function
// yourOtherCodeHere();
}
void nonBlockingBreath()
{
if( (breathe_time + breathe_delay) < millis() ){
breathe_time = millis();
float val = (exp(sin(i/2000.0*PI*10)) - 0.36787944)*108.0;
// this is the math function recreating the effect
analogWrite(ledPin, val); // PWM
i=i+1;
}
}

Ti potrebbe interessare?

NodeMcu Lolin v.3 Eagle Library

Eagle Library lolin NodeMcu V3

Comments on Ricreare la “respirazione” del LED

Powered by themekiller.com anime4online.com animextoon.com apk4phone.com tengag.com moviekillers.com