Невозможно найти модуль PCA9685 при использовании библиотеки I2CScanner: нет движения сервопривода.

Я пытаюсь использовать Adafruit PCA9685 модуль серводрайвера с платой ELEGOO Mega 2560.

Я подаю на плату сервопривода напряжение 5 В и проверил все провода, чтобы убедиться. Я протестировал сервопривод без платы, и он работает нормально.

Код I2CScanner:

#include "I2CScanner.h"

I2CScanner scanner;

void setup() 
{
    Serial.begin(9600);
    while (!Serial) {};

    scanner.Init();
}

void loop() 
{
    scanner.Scan();
    delay(5000);
}

, 👍0

Обсуждение

Какая именно это плата? Похоже на Arduino Due, в этом случае вы будете использовать неправильные контакты. Попробуйте использовать контакты с маркировкой «SCL» и «SDA»., @PMF

@PMF точная плата, которую я использую, - это elegoo mega 2560, и я поместил контакты в «SCL» и «SDA» рядом с «AREF»., @Blaze48gamer

Я не совсем уверен насчет этой платы, но пробовали ли вы другие контакты с маркировкой «SCL» и «SDA» (я думаю, контакт 20/21, рядом с зеленым светодиодом), @PMF

@PMF Это должно быть точно так же, как у Arduino Mega 2560, я пробовал эти контакты, а также контакты более старой версии «A4» и «A5», но он все равно ничего не обнаружил. Спасибо за помощь, кстати., @Blaze48gamer

каков результат при запуске кода? ... пожалуйста, скопируйте и вставьте в свой пост... без изображений, пожалуйста, @jsotola

@jsotola --- Сканирование началось --- Устройства I2C не найдены --- Сканирование завершено ---, @Blaze48gamer

Библиотека, которую вы там используете, выглядит нормально, но на всякий случай: пытались ли вы вместо этого использовать стандартный пример программы I2C? Он находится в разделе «Примеры» -> «Wire» -> «WireScan». Попробуйте также использовать Wire1 вместо Wire., @PMF

Вставьте Wire.setClock(31304); после Scanner.Init(); и укажите, имеет ли это какое-либо значение для вывода. Вы говорите *"Я подаю на плату сервопривода напряжение 5 В".* Это то, к чему подключен оранжевый провод? Я не могу сказать по картинке., @timemage


1 ответ


0

Для шины I2C требуется набор подтягивающих резисторов. При покупке собранных устройств I2C разработчик может включить подтягивающие резисторы I2C, но не подключать их. Это связано с тем, что согласно этому руководству на сайте sparkfun.com, вам нужно всего лишь около 4,7 кОм сопротивления натяжения. Добавление нескольких плат I2C к одной шине с собственными подтягивающими резисторами снизит это сопротивление и может повредить драйверы I2C. Таким образом, конечный пользователь должен решить, к какой плате I2C подключить подтягивающие резисторы.

,

Производитель прорыва (я думаю, в данном случае Adafruit) напишет, если это будет необходимо. Но они [явно заявляют, что у него уже есть подтяжки](https://learn.adafruit.com/16-channel-pwm-servo-driver/pinouts)., @PMF