- インストール
- 基本操作
- 電子工作向けプログラミングの基本
- Excel向けプログラミングの基本
- scikit-learnでの機械学習
- matplotlibでのデータの可視化
- Web関連プログラミング
- RPA関連プログラミング
- その他の各種プログラミング
- リファレンス
PCA9685を使ったサーボモーターの制御
PWM出力を行うことができるPCA9685を使うことで、サーボモーターを制御することができます。
PCA9685関連のブロックは、「モーター」→「PCA9685」のグループにあります。
配線
PCA9685はI2Cでマイコンに接続します。
I2C接続に使うピン番号は、マイコンによって異なります。
詳しくは、「I2C接続」のページを参照してください。
例えば、無印のESP32の場合、SDAを21番ピン、SCLを22番ピンに接続します。
また、VCCとGNDを、マイコンの3V3(または5V)とGNDのピンに接続します。
0~15のPWM/V+/GNDの3ピンの端子には、サーボモーターを接続します。
また、V+とGNDのターミナルブロックには、外部電源(5~6V)を接続します。
マイコンとしてESP32を使い、サーボモーターをPCA9685の0番のピンに接続する場合の配線は、以下の図のようになります。
初期化
無印ESP32など、I2Cのピン番号が固定のマイコンの場合は、「PCA9685の初期化」のブロックを使います。
![]()
また、ESP32-S3など、I2Cのピン番号が可変のマイコンの場合は、初期化の際にピン番号を指定するブロックを使います。
![]()
サーボモーターを回転させる
回転のブロックを使って、サーボモーターを0度から180度の範囲で回転させることができます。
0~15番のピン番号と、回転させる角度を指定します。
![]()
パルス幅の指定
サーボモーターによっては、0度から180度まで十分に回転しない場合があります。
その時は、パルス幅を指定するブロックで、0度と180度に対応するパルス幅を調節してみます。
デフォルトでは、0度と180度に対応するパルス幅は、それぞれ500と2550になっています。
事例
PCA9685に接続した2つのサーボモーターを、0度~180度の範囲で回転させる例です。
I2Cが可変のマイコンで、SDA/SCLをそれぞれ4番/5番ピンに接続するものとしています。
このプログラムは、こちらからダウンロードすることができます。