Невозможно найти модуль 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);
}
@Blaze48gamer, 👍-1
Обсуждение1 ответ
Для шины I2C требуется набор подтягивающих резисторов. При покупке собранных устройств I2C разработчик может включить подтягивающие резисторы I2C, но не подключать их. Это связано с тем, что согласно этому руководству на сайте sparkfun.com, вам нужно всего лишь около 4,7 кОм сопротивления натяжения. Добавление нескольких плат I2C к одной шине с собственными подтягивающими резисторами снизит это сопротивление и может повредить драйверы I2C. Таким образом, конечный пользователь должен решить, к какой плате I2C подключить подтягивающие резисторы.
Производитель прорыва (я думаю, в данном случае Adafruit) напишет, если это будет необходимо. Но они [явно заявляют, что у него уже есть подтяжки](https://learn.adafruit.com/16-channel-pwm-servo-driver/pinouts)., @PMF
- Как изменить скорость нескольких сервоприводов, работающих одновременно с модулем PCA9685?
- Первый проект I2C - Невозможно получить какое-либо движение сервопривода с помощью PCA9685
- Когда я проверяю скетч, я получаю несколько ошибок
- Управление скоростью вентилятора с помощью библиотеки Arduino PID
- Путаница между SPI и I2C для SSD1306 OLED
- Можно ли использовать цифровые контакты в качестве выхода ШИМ?
- Отправка строки из RPi в Arduino - Рабочий код
- Изменение ШИМ на Arduino Mega, контакты 9 и 10 на 20–25 кГц
Какая именно это плата? Похоже на 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