Puslapiai

2012 m. balandžio 5 d., ketvirtadienis

LED sulėtintas mirksėjimas panaudojant trigonometrinę funkciją

Sveiki,
yra įvairių būdų, kaip priversti šviesos diodą sulėtintai mirksėti, bet paprasčiausi būdai neatrodo taip gražiai, kaip panaudojant sinusą, todėl pasidalinsiu kodu ir išbandykite patys.


Šiek tiek informacijos:

Iš tiesų šviesos diodas mirksi labai daug, bet mes to nematome, todėl atrodo, kaip lėtai užsideganti ir lėtai užgęstanti šviesa.
Jei norėsite sulyginti sin su įprastiniu būdu, tai atsidarykite "File>Examples>1. Basic>Fade" pavyzdį.

Matematikos nemokysiu, bet jei primišote trigonometrines funkcijas, tai peržiūrim grafiką:



Šaltinis: http://www.wolframalpha.com/input/?i=v+%3D+sin%28%28x*3.14%29%2F180%29*255%3B+x+from+0+to+180


Programinis kodas:

/* LED suletintas mirksėjimas
  Naudojamas vienas bet kokios spalvos LED
  http://www.wolframalpha.com/input/?i=v+%3D+sin%28%28x*3.14%29%2F180%29*255%3B+x+from+0+to+180
  http://arduinorobot.blogspot.com
*/

int ledPin = 9; 

void setup () {
  pinMode (ledPin, OUTPUT);
}

void loop () {
  for (int x=0; x<180; x++) {
    double y;
    y = (x*3.14)/180; 
    double v;
    v = sin(y)*255;  
    analogWrite (ledPin, int(v));
    delay (10);
  }

}

Komentarų nėra:

Rašyti komentarą