へのへのもへじ工作室
07 | 2017/08 | 09
S M T W T F S
- - 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 31 - -

スポンサーサイト
上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

arduinoのPWM設定
今日は、さらに一般の方には役立たない情報となりそうです。arduinoで使っているatmega328というマイコンから、高速パルスを出すためのプログラミングの説明です。

マイコンから高速パルスが出せれば、それと電気回路をつなげて、モーターの回転やライトの明るさ等を自由にコントロールできるようになります。以下、ちょっとわかりにくいですが、必要な時に参考になれば幸いです。

■どこからパルスを出すか
arduinoで使っているマイコンatmega328では、タイマ機能というのが3つ入っていまして、
自由に使えるタイマは、
arduinoの タイマー1
arduinoの タイマー2
となります。
このタイマを使うとD10やD3ピンからPWM信号を取り出せます。ピン番号は、ICのパッケージによって異なりますので省略します。また、タイマ1と2では機能、性能にちょっと違いがあってわかりにくいですが、今回はタイマ1(arduinoのD10ピン)を例に説明します。
まず始めに、使うピンを出力モードにしておきます。
--->pinMode(10,OUTPUT);

■パルスを出すための基本設定
タイマーはさまざまな使い方ができますが、今回は繰り返し周波数とデューティを変更できる方法を紹介します。基本となるビット設定は以下の通りです。

TCCR1A の BIT7=0
TCCR1A の BIT6=0
TCCR1A の BIT5=1
TCCR1A の BIT4=0
TCCR1A の BIT1=1
TCCR1A の BIT0=1
TCCR1B の BIT4=1
TCCR1B の BIT3=1

■カウンタの速さを決める設定(1)
パルスの周期、幅の詳細はこの後で決めますが、まずは1カウント進める時間の単位を選びます。
たとえばarduinoで16MHzの発振器を使う場合は、
TCCR1B の BIT2=0
TCCR1B の BIT1=1
TCCR1B の BIT0=1
とすれば、1カウントが4μSという設定になります。
このタイマは最大255までカウントできますので、 1mS周期まで=約1kHz以上のPWMとして使えます。
もし、もっと早くしたり遅くしたりするときは、マイコンのマニュアルのClock Select Bit Descriptionで調べて値をかえるといいでしょう。

■カウンタの速さを決める設定(2)
周波数をたとえば5kHzにあわせるには周期が200μSですので、以下のように設定します。
OCR1A = 200μS /4μS - 1 = 49;
4μSはさきほど(1)で設定した1カウントの時間です。それから1を引きます。時間の単位をあわせて計算しないと、思い通りに動きませんので注意が必要です。

■パルスの幅やデューティを設定する。
モータをコントロールするにはそのON時間の比率(デューティ)が重要になるかと思います。
OCR1Aの値に対してOCR1Bに割合を設定してあげます。
例えば 25%に設定するときは
 OCR1B = (49+1) * 0.25 - 1 = 12;

■まとめ
これまでの設定で、未指定部分をゼロにして、スケッチを書きます。
pinMode(10,OUTPUT);
TCCR1A = 0b00100011;
TCCR1B = 0b00011011;
OCR1A = 49;
OCR1B = 12;
となりますでしょうか。
まだ、この設定、自分では試していないので間違いがあるかもしれませんが、その時はご容赦ください。

AUTHOR: にしおか
DATE: 12/20/2011 00:28:55
教えていただきありがとう御座います
今、解読中でして、最初の「パルスを出すための基本設定」でコンペアアウトプットモード・高速PWMモードにしているところまでしか解読できていませんが糸口は掴めたのかもと思っています。
でも、このモードが何を意味しているかまでは解読できていません。
「カウンタの速さを決める設定(1)」については概ね理解できまして 我々が普通に使いそうなのは001~101まででしょうか。ただプリスケーラーという言葉が理解できないのでまだまだ勉強せねばなりますまい
計算方法についてまでは行き着いておりません
もう少し解読してから説明を請うかも知れませんのでその時はよろしくお願いいたします
スポンサーサイト
コメント

コメントの投稿














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



天気予報


-天気予報コム- -FC2-

プロフィール

へのへのもへじ

Author:へのへのもへじ
FC2ブログへようこそ!

最近の記事

最近のコメント

最近のトラックバック

カテゴリー

ブロとも申請フォーム

この人とブロともになる

アルバム

ブログ内検索

RSSフィード

リンク

このブログをリンクに追加する

上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。