今回はPCA9685を使用して、サーボを動かしていきます

こちらの記事では、スケッチ不要でサーボを動かせますので、参考にして下さい。

用意するもの

Arduino(Arduino UNO)
サーボ(SG90)
サーボドライバ (PCA9685)

ライブラリ

PCA9685のライブラリをインストールします。

[ツール] - [ライブラリを管理] Adafruit PWM Sewrvo Driver library

を検索してインストールします。

コード

コード補足

今回使用したサーボは「SG90」です。事前にデータシートでDutyCycleや周波数を確認します。

#include<Wire.h>
#include<Adafruit_PWMServoDriver.h>
ライブラリのインクルード

Adafruit_PWMServoDriver pwm =Adafruit_PWMServoDriver(0x40);
PCA9685のアドレス設定(1台ならデフォルトの0x40で問題ない)

#defineSERVO_FREQ 50
SG90の周波数は50Hz

#defineDutyMIN 500
SG90のDuty Cycleの最小値は0.5ms(=500μs)

#defineDutyMAX 2400
SG90のDuty Cycleの最大値は2.4ms(=2400μs)

int ServoNo1 =0;
int angleMIN =0;
int angleMAX =180;
サーボ番号、サーボ最小角度 サーボ最大角度を定義

pwm.begin();
pwm.setPWMFreq(SERVO_FREQ);
PWMの開始、周波数を設定

pwm.writeMicroseconds(ServoNo1,map(0, angleMIN, angleMAX, DutyMIN, DutyMAX));
サーボの初期角度をマッピング

pwm.writeMicroseconds(ServoNo1,map(180, angleMIN, angleMAX, DutyMIN, DutyMAX));
次の角度をマッピング

配線