ユーザ用ツール

サイト用ツール


ja-jp_products:mpaino_k

MPAINO 高速パルス出力 Kモジュール

KオプションモジュールはMCUのPWM波形を直流に平滑せずに出力します。Kは6チャネル、K2は12チャネルで、選択したモジュールは製品に組み込まれて出荷されます。Yアナログ出力とは異なる0~5Vのデジタル波形です。受信機器の入力仕様を確認してください。

K、K2、Y/K混載構成のチャネル番号と共有Timer

製品仕様

Kパルス出力モジュールの前面 K2の2番目のパルス出力モジュール前面

K2画像のPWM0~PWM5は2番目のKモジュールの端子表示です。追加分のプログラムチャネルは6~11です。

項目 内容
オプションコード K、K2
モジュールあたりの出力 PWM、6チャネル
出力レベル LOW 0V、HIGH 5V
最大出力電流 チャネルあたり30mA
最大周波数 1MHz
分解能 16 bit
最大構成 Kを2モジュール、計12チャネル。YとKの出力合計は12チャネルまで

K出力はMCUのGPIO信号を直接使用します。30mAを超える負荷や異なる電圧を必要とする入力を直接接続しないでください。モーターやソレノイドなどには適切な外部ドライバーを使用します。

構成とチャネル番号

構成 Kチャネル数 PWM()FDPWM()番号 analogWrite()番号 GPIO番号
K 6 0~5 20~25 D130~D135
K2 12 0~11 20~31 D130~D141
YK / Y2K 6 0~5 20~25 D130~D135

上の3種類の番号は、同じK出力を異なる関数から指定するための引数です。analogWrite(20, 128)は最初のK出力、analogWrite(0, 128)は最初のYアナログ出力を指します。PWM(0, …)も最初のK出力です。Kを1モジュールとYを1~2モジュールは併用できますが、K2とYは併用できません。Arduino IDEのHigh-Speed Pulse Output ModuleAnalog Output Moduleを出荷構成に合わせます。

チャネルと共有Timer

出荷構成 Kチャネル 内部Arduino PWMピン 共有Timer
K単独 0~2 D11、D12、D13 Timer1
K単独 3~5 D46、D45、D44 Timer5
K2の追加分 6~8 D5、D2、D3 Timer3
K2の追加分 9~11 D6、D7、D8 Timer4
YK / Y2K 0~2 D5、D2、D3 Timer3
YK / Y2K 3~5 D6、D7、D8 Timer4

同じTimerの3チャネルは異なるデューティを設定できますが、周波数を共有します。Y/Kの組合せで内部PWMピンが変わるため、プログラムの論理チャネルを出荷構成に合わせてください。

配線と初回確認

  1. 電源を切り、使用するPWM端子と同じ端子群のGNDを確認します。
  2. 製品の結線図に従い、受信機器の0~5V PWM入力と共通GNDを接続します。
  3. PWM出力に外部電源や過電流負荷を直接接続しないでください。
  4. 実負荷を接続する前に、適切な測定器で周波数とデューティを確認します。

例1:Arduino標準のanalogWrite()

K単独構成の最初の出力に約50%のデューティを出します。KのanalogWrite()値は0~255で、Yの値域とは異なります。

const uint8_t pulseChannel = 20;  // Kの最初の出力に対応するanalogWrite番号
 
void setup() {
}
 
void loop() {
  analogWrite(pulseChannel, 128);  // 約50%デューティのPWMを出力
  delay(500);
}

例2:周波数とデューティ

K単独構成のCH0とCH1はTimer1を共有します。同じ1kHzで、デューティを変えます。

void setup() {
  PWM_RESET();  // K出力のPWM Timer状態を初期化
  FDPWM(0, 1000, 25.0F);  // K CH0:1kHz、25%
  FDPWM(1, 1000, 75.0F);  // K CH1:1kHz、75%
}
 
void loop() {
}

PWM_RESET()は同じTimerを使う他のPWM出力も初期化する場合があります。負荷が安全な状態で実行してください。

例3:指定した数のパルス

K CH0に1kHz、50%デューティのパルスを100個出します。完了までNPWM()を繰り返し呼ぶ必要があるため、loop()にはdelay()を入れません。

void setup() {
  PWM_RESET();  // パルス列を始める前にPWM状態を初期化
  NPWM_BEGIN(0, 1000, 50.0F, 100);  // CH0に100パルスを準備
}
 
void loop() {
  NPWM(0);  // 準備したパルス列を進め、完了を処理
}

値が正しくない場合

症状 確認事項
波形が出ない Kの搭載とボードオプション、PWM/GND端子、関数に対応したチャネル番号を確認します。
周波数が想定と違う 同じTimerグループの別チャネルで周波数を再設定していないか確認します。
Y/K混載でK単独配線と動作が異なる Y/Kの組合せで内部PWMピン配置が変わります。出荷構成とモジュール端子を確認します。
指定パルスが終わらない NPWM_BEGIN()の後、同じチャネルのNPWM()を繰り返し呼び、ループに遅延を入れないでください。

関連文書

ja-jp_products/mpaino_k.txt · 最終更新: by 127.0.0.1

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki