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į.
Programinis kodas:
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
Š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ą