Arduino MKR WiFi 1010をデータ入力に使う<番外編1>PWM出力
Arduinoでは、複数のPWM出力ピンが用意されています。UNOの周期は5と6ピンが980Hz、残り(3、9、10、11)が490Hzです。
●環境
- matlab ホームライセンス R2021a update5
- MATLAB Support Package for Arduino バージョン21.1.1
- Windows 10 Pro 21H1 メモリ40Gバイト
●Arduino MKR WiFi 1010のPWM
- PWMに使えるピン 11(D0~D8、D10、A3、A4)
- 1周期 732Hz
●プログラム
デューティ比で指定する方法と電圧で指示する2種類の関数が用意されています。
clear
a = arduino('COM15', 'MKR1010');
writePWMDutyCycle(a,'D6',0.33);
writePWMVoltage(a,'D7',3);
青色がD6ピン、赤色がD7ピンの波形です。
プログラムで、デューティ比0.33と指定しています。オシロスコープの測定結果は32.82%になっているので、正確に出力できているようです。
電圧のほうは、3.3V*90%=2.97Vぐらいなので、設定値の3Vはほぼ正しい出力といえそうです。
●そのほかの関数
第6回と第7回では、Read and Write Data関連の中の一部を取り上げました。そのほかにも用意されています。
configurePin | ピン・モードの設定 |
readDigitalPin | ディジタル・ピンの読み取り |
writeDigitalPin | ディジタル・ピンの書き込み |
writePWMVoltage | ディジタル・ピンに指定された電圧でPWM信号を生成する |
writePWMDutyCycle | ディジタル・ピンで指定されたデューティ・サイクルでPWM信号を生成する |
playTone | ディジタル・ピンを使用してピエゾ・スピーカでトーンを再生する |
readVoltage | Arduinoハードウェアのアナログ・ピンから電圧を読み取る |