MCUを使っての計算。

MCUでADCを使って、電圧を数値に変換、2チャネルあるので計算をさせてみました。

使用したMCUはアトメルのXMEGA32D4、使用したADCはXMEGAの内蔵ADCではなく、SPI接続タイプの2チャネルを持ったマイクロチップのMCP3002を使用しました。

32D4の内蔵ADCを上手く使えなかったので^^;。。



MCP3002は2つのチャネルを持っているので、両方使って数値を表示させ、動画上のLCDの下段左側の数値が0ch、真ん中の数値が1ch、右側の数値が0chから1chの数値を引いたものとなっております。
またSPI通信を使用したので、下にあるオシロスコープの画面の上段にクロック信号、下段にはADコンバータから出力されたデータ信号MISOが表示されています。

あ、キャラクタLCD上段のカウンタは、あまり意味がありません。ちゃんとMCUが動いてるかどうかの確認用に表示させてるだけです。

クロック信号によって、データがシフトされてくるので、0chと1chのデータがそのままHIGHとLowの2進数の数値として見ることが出来ます。
もちろん、2進数で直接出力されているわけですがら、キャラクタLCDの出力を見ずに、オシロスコープの画面から数値を読み取ることが出来ます。

回路としては、MCP3002の電源に0.1μFのパスコンを付けただけのほぼ直結状態で、ADCの信号入力は動画上のボリュームの真ん中の端子に繫いで有ります。
ボリュームの両端の端子はそれぞれ電源とGNDへ。

ただ、動画のように2ch続けて数値を読み込む場合、MCP3002から32D4へのデータ線MISO線がMCP3002からの信号が出ていない状態でどこにも繋がっていないHi-Zとなるため、一時的にMCUの信号入力線SPI通信のMISOの線が浮いた状態となって、直ぐにはLOWの値に戻らず次のデータ信号にかぶる形できちんと数値を読み取ることができなかったので、MCU側の入力プルダウンをONしました。

動画のオシロスコープの画面を良く見ると、なんとかデジタルのLowの閾値内に収まってますが、MCU内蔵プルダウンでは、ちょっと抵抗値が大きいのかしっかりLowまで下がりきっていません。
MCUのI/Oポートの許容範囲内の電流できちんと信号がLowに下がるようにしたいところです。
こうゆう所がデジタルの大事な所で、オシロスコープなどを持っていないとどうして作動しないのか、とゆうことが解りづらいです。

ちょこっとしたことでの失敗ほどつまらない事はないと思うので、初心者であればあるほど、簡易でもよいのでオシロスコープや、テスタ等々の測定器を持つ事をおすすめします。。


さてさて、今回、MCUに外部入力値を使った計算をさせてみましたが、この計算で算出された数値をPWM信号出力用(あるいはパルス出力)に使うと、多分、簡易な位置制御ができます。

単なる引き算でしかありませんが、2つのボリュームの回転確度の差と、片方を基準とした時のもう片方のずれている方向が解ります。


片方のボリュームを位置制御したいモーターからの出力軸へ、もう片方を使ってコントロール。。

計算させた数値を使ってモータードライバを駆動。

RCサーボの駆動の理屈と同じです。

RCサーボは、現在の位置をサーボ内にあるボリュームの抵抗を使った電圧を差動アンプの片方に入力し、もう片方へ制御用の電圧を入力、双方の入力値の差をアンプにて増幅し、モーター駆動させている、、、、はずだったけど。^^;

また、今回数値の入力として使っているのは10kΩのボリュームですが、このボリュームをロータリーエンコーダーや、リニアエンコーダ-のパルス入力の計数に変更しても、MCUの中では単なる数値なので、同じように制御が出来そうです。

また、コントロール用のボリュームを、キーボード入力の数値に変更することにより、、、これも、MCUの中では単なる数値なので、同じようにコントロールすることができると思います。

今回は計測する物がボリュームを使った位置なので、位置の制御について書いてみたのですが、この入力値をモーターに掛かる電流値にすれば、トルクが制御できると思います。

もちろん、ロータリーエンコーダーを使っての速度制御も。。


単純に理屈としては動くと思われますが、少々細かい問題も出てくるとは思いますが。。^^;



今回は自分がXMEGAに慣れるために32D4と、外付けのADコンバータを使いましたが、なにも難しいことも、MCUの能力一杯使った計算もしてないので、Arduino環境でもArduinoとボリュームと表示させる物さえあれば出来るはずです。。


マイコンは、マイクロコントローラーであり、計算機、でもありますね。。
スポンサーサイト

テーマ : 自作・改造
ジャンル : コンピュータ

コメントの投稿

非公開コメント

ライセンス
アクセスカウンター
プロフィール

あきらひとし。

Author:あきらひとし。
木工用CNCルーターフレームと、ステッピングモータードライバを作ってみました。
たぶん記事は一般的な人には殆ど必要のない事ばかりなの、かも。

モーターは回るだけでも楽しい。制御(速度、トルク、位置)できるともっと楽しい!

メールフォーム

名前:
メール:
件名:
本文:

リンク
最新記事
カテゴリ
スポンサードリンク
スポンサードリンク 
スポンサードリンク
オンラインカウンター
現在の閲覧者数:
検索フォーム
RSSリンクの表示
最新トラックバック
最新コメント
月別アーカイブ