こんにちは。
M5Stack Fire V2.7のポートB(GND, 5V, GPIO26, GPIO36)にサーボモータ(SG-90)2個を接続しようと試行しています。
まず、サーボモータを1個ずつ次のように接続し、動作を確認したところ、GPIO26に接続した場合には正しく動作しましたが、GPIO36に接続に接続した場合には正しく動作しませんでした(全く回転しない)。
GPIO26にサーボモータの制御端子を接続した場合
サーボモータ3端子に、GND, 5V, GPIO26を接続
GPIO36にサーボモータの制御端子を接続した場合
サーボモータ3端子に、GND, 5V, GPIO36を接続
動作確認には、次のArduino IDEスケッチを使用しました。
上記1)の場合は#define PIN 26、2)の場合は#define PIN 36。
ちなみに、ボード設定はM5Stack-FIRE。
#include <M5Stack.h>
#include <esp32-hal-ledc.h>
#define LOW 1500
#define HIGH 8500
#define TIMER_WIDTH 16
#define PIN 26 // 2)の場合、PINは36
void setup() {
M5.begin();
pinMode(PIN, OUTPUT);
ledcSetup(1, 50, TIMER_WIDTH);
ledcAttachPin(PIN, 1);
}
void loop() {
for(int i = LOW; i < HIGH; i = i + 100) {
ledcWrite(1, i);
delay(100);
}
}
関連ドキュメントを見ても、M5Stack Fire V2.7のポートBの
GPIO36をこのような用途で使用できない旨の記述がなく、
この問題を解決できず困っています。
どなたかヘルプをお願いいたします。
※ もしかするとM5Stack Fire V2.7の内部コネクタとポートB
との接続が悪いのかとも思い、内部のコネクタから直接
サーボモータに接続しましたが、やはりGPIO26のほうは
動作OK、GPIO36のほうは動作NGでした。
また、他のGPIOピン、例えばGPIO5でも同様に確認した
ところ動作OKでした。
よろしくお願いします。
RuriObb