Arduino Uno のPWMキャリア周波数を20kHzにする

  • 2020.04.04 Saturday
  • 10:38

Nゲージ鉄道模型で自動運転を楽しんでいます。

自動運転は、マイコンとして Arduino の Uno や Nano Every を使ってPWM制御を使って速度を調整しています。

先回は、 Nano Every を使ったPWM制御を紹介しましたが、今回は Uno の場合を紹介します。

 

PWMキャリア周波数を 20kHz にアップする方法について、皆さんの情報をもとに自分でも調査しました。

その結果、次のような実験にて確認しました。 まず実験方法はパソコンと Arduino Uno とオシロを使いました。

接続状態は下のようにオシロ用の端子を出力ポートに接続しただけの状態です。

そしてオシロで確認した波形を下に示します。

 CH1はD10ポートで、CH2はD3ポートです。

 CH1はD5ポートで、CH2はD3ポートです。 

 CH1はD9ポートで、CH2はD910ポートです。

 CH1はD6ポートで、CH2はD5ポートです。 

D3、D5、D10ポートでは、キャリア周波数は 20.0kHz となり、狙いどうりです。

しかし、D6、D9、D11ポートではその半分の周波数で、かつ、デューティ比が50%の波形となっています。

また、正常に出力している D3、D5、D10ポート間の波形を観察すると、波形ごとにタイミングがズレている事が分かります。そして、リセットを掛けてもその状態が変わらなかったので、このタイミングのズレは内部的な必然と思われます。

 

実験にで使用したスケッチは、次の通りです。

// Uno 20KHzPWM test
//  2020.4.3
#include <avr/io.h>
void setup() {
 pinMode(3,OUTPUT);
 pinMode(5,OUTPUT);
 pinMode(6,OUTPUT);
 pinMode(9,OUTPUT);
 pinMode(10,OUTPUT);
 pinMode(11,OUTPUT);
 TCCR0A = 0b01100011;
 TCCR0B = 0b00001010;
 OCR0A = 99;
 TCCR1A = 0b01100011;
 TCCR1B = 0b00011010;
 OCR1A = 99;
 TCCR2A = 0b01100011;
 TCCR2B = 0b00001010;
 OCR2A = 99;    
 
}
void loop() {
 int vol=20;
//  OCR0B = vol;
//  OCR1B = vol;
//  OCR2B = vol;
 analogWrite(5,vol);
 analogWrite(10,70);
 analogWrite(3,40);
 
}

setup 部分で関係するレジスタの設定を行い、loop の部分でデューティ比を設定してPWMを出力しています。最初は、//の部分のようにレジスタに直接アクセスして設定しましたが、その後、analogWrite( ) のコマンドを使ってみると、正常に出力されることを確認しました。

  このコマンドが使用出来るのです!

 

上記に示した波形は、この状態で出力した時のオシロ波形なのです。

 

この方法では、デューティ比を設定できるPWM出力は、D3、D5、D10ポートのみです。

D6、D9、D11ポートはデューティ比が50%の半分の周波数しか出力していませんし、これ以外に使用出来ないのです。即ち、この方法では、このポートを他の用途として使用出来ない事を示しています。これもチャンとした理由があります。

また、D3、D5、D10ポートのタイミングも一致していませんが、これもチャンとした理由があります。

   ---------- 何故でしょうか? ---------

 

**************** 追記 **************************************

上記の様な設定にした理由を下記のサイトで説明しいますので参照してください。

 鉄道模型工作実験室 Arduino Uno のPWMキャリア周波数を20kHzにする

 

************************************************************

 

コメント
コメントする








    

calendar

S M T W T F S
     12
3456789
10111213141516
17181920212223
24252627282930
31      
<< May 2020 >>

にほんブログ村

selected entries

categories

archives

recent comment

links

profile

search this site.

others

mobile

qrcode

powered

無料ブログ作成サービス JUGEM