google-site-verification: google3bd66dd162ef54c7.html

Arduinoで作るLEDストロボスコープ、表示機能まで出来た

 今月の初め頃から取り組んでいるLEDストロボスコープ、やっと回転数を液晶に表示できるようになりました。

 まだ実験段階ですが、いじり始める追加したい機能が出てくるのでいろいろやってみました。

▼アナログストロボモード
アナログストロボモード
 Mode=Aと表示して回転数を表示。回転数は600~60000rpmまで設定可能です。

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

 ならば、

▼デジタルモード
デジタルストロボモード
 アナログでおよそ合わせた後はデジタルモードに切り替える機能を追加。デジタルで任意の値を設定出来る訳ではないので、デジタルファインってネーミングがいいかも。Mode=Dと表示させてます。

 このモードに入れるとスイッチ操作によるステップ送りで回転数の微調整が可能になります。ちなみにデジタルモードにすると発光間隔はCPUのクロック精度と同等になります。
 但し、ステップ送りの量はまだチューニングが必要。現在のステップ量は設定値の1/512。つまり右に9ビットシフトという安易なアルゴリズムで決めているので人間には判りにくいです。

 話を戻して、プログラムとLEDの発光のタイミングはこんなになってます。

▼タイミング波形@60000rpm
タイミング波形@60000rpm
 上の波形がLEDの発光タイミング。下の波形がソフトが動作している期間を表しています。

 60000rpmだと表示処理が終わって次のストロボ発光まで100μsくらいの余裕しかありません。でも何とかなってます。一度に全文字送信するとタイミングが間に合わないので2文字ずつ分割して送信してます。このあたりの話はややこしくなるので他の機会にでも解説します。I2Cの液晶使うとデーターが高速できてこんな面倒なことしなくてもいいのかもです。

 で、せっかくここまで出来ると欲が出て、このままで何か出来ないか考えてみる。

▼LEDライトモード
LEDライトモード
 何と、スイッチを操作するとストロボがLEDライトに変身。

 せっかくだから、ボリュームで光量調整できるように。さらにバッテリー電圧も表示させました。バッテリー電圧の末尾がうまく写真に撮れてないのは表示の更新頻度が早すぎだから。

 てなことで、現在はこんな感じになってます。

▼ブレッドボード
ストロボのブレッドボード

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

コメントの投稿

管理者にだけ表示を許可する

カレンダー
10 | 2017/11 | 12
- - - 1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 - -
プロフィール

ラジオペンチ

Author:ラジオペンチ
電子工作を中心としたブログです。たまに近所(東京都稲城市)の話題など。60過ぎて視力や器用さの衰えを感じつつ日々挑戦!
コメントを入れる時にメールアドレスの記入は不要です。なお、非公開コメントは受け付けていません。

記事が気に入ったらクリックを!
最新記事
カテゴリ
最新コメント
リンク
FC2カウンター
検索フォーム
月別アーカイブ
RSSリンクの表示
QRコード
QRコード