Как подключить MPU-6050 к Arduino, на которой уже установлен CNC Shield V3?
У меня есть CNC Shield поверх Arduino Uno (контакт GRBL выход), который управляет двумя шаговыми двигателями через a4988 и все работает как часы.
Теперь я хочу добавить к нему акселерометр. По результатам моего скромного исследования, MPU-6050 кажется хорошим выбором.
Если я приобрету штекерные разъемы для подъема экрана ЧПУ, могу ли я подключить акселерометр к неиспользуемым/зарезервированным A4 и A5 от Arduino, но запитать его через контакты Земля и 5V ЧПУ?
Я открыт для других подходов, если я не делаю это правильно.
@Minduca, 👍0
Обсуждение2 ответа
Лучший ответ:
MPU6050 может использовать только I2C. Это контакты A4 и A5 на Uno. 5В и земля — это 5В и земля, независимо от того, с какого контакта
Спасибо за информацию. Хотя контакты A4 и A5 доступны для подключения I2C на Arduino, экран ЧПУ открывает те же самые контакты SCL и SDA, и их проще просто использовать. То же самое для земли и VCC., @Minduca
конечно, это те же самые булавки, @Juraj
Это может быть немного сложнее реализовать, чем может показаться. В коде grbl используются все контакты, кроме одного, поэтому вам придется изменить их в библиотеке. Итак, я проверил код щита, и на вкладке cpu_map он определяет контакты. Сначала я бы попробовал установить для неиспользуемых контактов произвольные значения, чтобы включить контакты, ранее используемые кодом. Например, если вы не используете ось Zed, попробуйте изменить
#define Z_STEP_BIT 4 // Цифровой вывод Uno 4
что-то вроде
`#define Z_STEP_BIT 0`.
Это должно очистить контакт 4, чтобы его можно было настроить в качестве входа/выхода в вашем основном скетче. Другое определение контакта, связанное с осью Zed:
`#define Z_DIRECTION_BIT 7 // Uno Digital Pin 7`
Очистите этот разъем, и вы сможете использовать контакт 7 в качестве ввода-вывода.
Я лично не проверял код, поэтому попробуйте. Кроме того, просто предупреждаю, что, вероятно, возникнут ошибки при попытке использовать библиотеку MPU6050, а также библиотеку grbl, библиотека grbl представляет собой МНОГО кода (я не потратил достаточно времени на компиляцию, поэтому не знаю, сколько пространство, которое он на самом деле использует, но это очень много). Вы также можете столкнуться с ошибками таймера, поскольку обе библиотеки, скорее всего, перенастраивают таймеры для работы с каждой.
Надеюсь, это было немного полезно!
РЕДАКТИРОВАТЬ:
Я понял, что не указал, как именно освободить A5. Он был назначен зонду в cpu_map.
MPU6050 использует I2C на контактах A4 и A5., @Juraj
- Как очистить буфер FIFO на MPU6050?
- Как сгенерировать аппаратное прерывание в mpu6050 для пробуждения Arduino из режима SLEEP_MODE_PWR_DOWN?
- Понимание того, почему следует избегать «String» и альтернативных решений
- Объяснение кода MPU6050
- Изменение адреса I2C MPU-6050
- Снять гравитацию с акселерометра MPU-6050
- Скорость передачи данных акселерометра mpu6050 в Arduino Uno и частота дискретизации mpu6050
- Питание двух шаговых двигателей с драйверами A4988
Миндука, какие отзывы? ты знаешь, как работают сайты SE, @Juraj
Извините за задержку. Я нашел на CNC Shield v3 те же контакты SCL и SDA, которые вы упомянули для Arduino. Прямо сейчас проверю акселерометр, подключенный непосредственно к нему, и вернусь позже! Спасибо ;), @Minduca