勢いで作っていたディミングターンシグナルですが、ただ減光するだけではイマイチだったので緩急を付けてみました。
ボリュームやスイッチで切り替え可能な感じで書いていたのですが本体取り出して触るならUSB刺して焼いた方が手っ取り早いのでシンプルに。点滅回数・オンキープ・オフキープの時間・減光の具合を調整可能な感じに。最初にグッと光量を落とした方がそれっぽいですが視認性は悪くなると思います。好みの問題ですね。
int PO1=9; //ポジション出力1 ディミング int PO2=10; //ポジション出力2 オーディオ int NUM=65; //一分間あたりの回数 int ONT=100; //オンの時間 int OFT=200; //オフの時間 int FRQ=0; int GRT=0; int SGR=0; int LGR=0; void setup() { pinMode(PO1,OUTPUT); pinMode(PO2,OUTPUT); Serial.begin(9600); Serial.println(NUM/60.0); FRQ=60.0/NUM*1000.0; GRT=(FRQ-ONT-OFT)*1000.0/256.0; SGR=GRT/3.5; //3.0/3.5/4.0 LGR=GRT*3.5; //3.0/3.5/4.0 delay(50); } void loop() { unsigned long time_data=millis(); digitalWrite(PO1,HIGH); //点灯 digitalWrite(PO2,HIGH); //オーディオオン delay(ONT); for (int v=255; v>-1; v--) { //ゆっくり消灯 analogWrite(PO1,v); if (v==107){ digitalWrite(PO2,LOW); } //オーディオオフ if (v>107){ delayMicroseconds(SGR); //128/107/85 } else if (v>42){ delayMicroseconds(GRT); } else{ delayMicroseconds(LGR); } } delay(OFT); Serial.println(60000.0/(millis()-time_data)); }
より鼓動っぽい感じになりました。
#ディミングターンシグナル もどきちょっと凝って見た。前半1/6で半分まで輝度を落として残り1/2からは3倍ゆっくり減光。輝度を落とす具合や点滅回数は調整可に。より鼓動っぽいw pic.twitter.com/3FUDWrurzq
— waiasu (@SBM206SH) 2022年6月24日