さて、他の人もよくやっている「1/fゆらぎのLチカ」を、私もマネしてやってみる。
こちらやこちらのサイトを参考にさせていただく。よく使われるのはこの「間欠カオス法」だそうである。
間欠カオス法
として
のとき
のとき
ただし、参考にさせていただいた各サイトによると、この間欠カオス法は、0.0付近や1.0付近に値が貼り付き易いので、0.0や1.0に近くなったら乱数を入れてやるとよいとのことである。実際に試すと、たしかに、長時間ちらつきがなくなったり、消えたままになったりしやすい。そこで、そうなったときに乱数を入れ、中間付近の適当な輝度で光らせるようにしてある。
青色要素を少なくして、ろうそくの色合い風なちょっと黄色味がかった色にした。
// // f1Fluctuation.ino // 1/fゆらぎでLチカ // 佐藤俊夫 // 27.06.28(日)1700~ // const int R = 9, G = 10, B = 11; // void setup() { pinMode(R, OUTPUT); pinMode(G, OUTPUT); pinMode(B, OUTPUT); } void loop() { int f = 0.0; f = f1Fluctuation(); analogWrite(R, 255 - f); analogWrite(G, 255 - f); analogWrite(B, 255 - (f * 0.2)); delay(20); } int f1Fluctuation(){ static float x = 0.1; if(x < 0.5){ x = x + 2 * x * x; } else { x = x - 2 * (1.0 - x) * (1.0 - x); } if(x < 0.05 || x > 0.995){ x = random(10, 90) / 100.0; } return((int)(x * 255)); }
「1/fゆらぎでLチカ」への2件のフィードバック