Arduinoで作るLEDストロボスコープ、表示機能まで出来た
今月の初め頃から取り組んでいるLEDストロボスコープ、やっと回転数を液晶に表示できるようになりました。
まだ実験段階ですが、いじり始める追加したい機能が出てくるのでいろいろやってみました。
▼アナログストロボモード

Mode=Aと表示して回転数を表示。回転数は600~60000rpmまで設定可能です。
ただ、数値はアナログのボリュームの電圧をADCでデジタル化しているので末尾が安定しない。まあ、量子化に伴うLSBのばらつきは避けられないのでしかたない。
AVRのADCは10ビットなので刻みは1024ステップ。ならばこれを拡張すべくソフトで4回積分して刻みを4096ステップにしてみた。こうするとかなり細かい調整ができるようになったが、量子化誤差というか最小桁のばらつきからは逃げられない。まー当たり前、つーかもっと前に気付けよ。
ならば、
▼デジタルモード

アナログでおよそ合わせた後はデジタルモードに切り替える機能を追加。デジタルで任意の値を設定出来る訳ではないので、デジタルファインってネーミングがいいかも。Mode=Dと表示させてます。
このモードに入れるとスイッチ操作によるステップ送りで回転数の微調整が可能になります。ちなみにデジタルモードにすると発光間隔はCPUのクロック精度と同等になります。
但し、ステップ送りの量はまだチューニングが必要。現在のステップ量は設定値の1/512。つまり右に9ビットシフトという安易なアルゴリズムで決めているので人間には判りにくいです。
話を戻して、プログラムとLEDの発光のタイミングはこんなになってます。
▼タイミング波形@60000rpm

上の波形がLEDの発光タイミング。下の波形がソフトが動作している期間を表しています。
60000rpmだと表示処理が終わって次のストロボ発光まで100μsくらいの余裕しかありません。でも何とかなってます。一度に全文字送信するとタイミングが間に合わないので2文字ずつ分割して送信してます。このあたりの話はややこしくなるので他の機会にでも解説します。I2Cの液晶使うとデーターが高速できてこんな面倒なことしなくてもいいのかもです。
で、せっかくここまで出来ると欲が出て、このままで何か出来ないか考えてみる。
▼LEDライトモード

何と、スイッチを操作するとストロボがLEDライトに変身。
せっかくだから、ボリュームで光量調整できるように。さらにバッテリー電圧も表示させました。バッテリー電圧の末尾がうまく写真に撮れてないのは表示の更新頻度が早すぎだから。
てなことで、現在はこんな感じになってます。
▼ブレッドボード

これをどうやってケースに組むか考え中。
まだ実験段階ですが、いじり始める追加したい機能が出てくるのでいろいろやってみました。
▼アナログストロボモード

Mode=Aと表示して回転数を表示。回転数は600~60000rpmまで設定可能です。
ただ、数値はアナログのボリュームの電圧をADCでデジタル化しているので末尾が安定しない。まあ、量子化に伴うLSBのばらつきは避けられないのでしかたない。
AVRのADCは10ビットなので刻みは1024ステップ。ならばこれを拡張すべくソフトで4回積分して刻みを4096ステップにしてみた。こうするとかなり細かい調整ができるようになったが、量子化誤差というか最小桁のばらつきからは逃げられない。まー当たり前、つーかもっと前に気付けよ。
ならば、
▼デジタルモード

アナログでおよそ合わせた後はデジタルモードに切り替える機能を追加。デジタルで任意の値を設定出来る訳ではないので、デジタルファインってネーミングがいいかも。Mode=Dと表示させてます。
このモードに入れるとスイッチ操作によるステップ送りで回転数の微調整が可能になります。ちなみにデジタルモードにすると発光間隔はCPUのクロック精度と同等になります。
但し、ステップ送りの量はまだチューニングが必要。現在のステップ量は設定値の1/512。つまり右に9ビットシフトという安易なアルゴリズムで決めているので人間には判りにくいです。
話を戻して、プログラムとLEDの発光のタイミングはこんなになってます。
▼タイミング波形@60000rpm

上の波形がLEDの発光タイミング。下の波形がソフトが動作している期間を表しています。
60000rpmだと表示処理が終わって次のストロボ発光まで100μsくらいの余裕しかありません。でも何とかなってます。一度に全文字送信するとタイミングが間に合わないので2文字ずつ分割して送信してます。このあたりの話はややこしくなるので他の機会にでも解説します。I2Cの液晶使うとデーターが高速できてこんな面倒なことしなくてもいいのかもです。
で、せっかくここまで出来ると欲が出て、このままで何か出来ないか考えてみる。
▼LEDライトモード

何と、スイッチを操作するとストロボがLEDライトに変身。
せっかくだから、ボリュームで光量調整できるように。さらにバッテリー電圧も表示させました。バッテリー電圧の末尾がうまく写真に撮れてないのは表示の更新頻度が早すぎだから。
てなことで、現在はこんな感じになってます。
▼ブレッドボード

これをどうやってケースに組むか考え中。