Какие контакты использовать для получения данных от нескольких периферийных устройств?

Я использую Teensy, чтобы вести записи о местоположении, скорости, высоте и направлении метеозонда, который я надеюсь запустить. У меня есть Adafruit LSM9DS1 и Ublox NEO-M8N с компасом (HMC5833L), поэтому, чтобы получить все данные с них, мне нужно подключиться в общей сложности к 6 контактам для получения данных. Я также хочу использовать радиотелеметрическое устройство Pixhawk для отправки этих данных на землю, чтобы видеть их в реальном времени. Так что, по моему мнению, потребуется по крайней мере еще 2 контакта.

У Teensy, по-видимому, для всего этого есть много пинов ввода-вывода, но я заметил, что во всех библиотеках, которые я установил, чтобы попытаться использовать с этими вещами, пины для использования явно не установлены. Библиотеки, с которыми я играл, включают библиотеку Adafruit LSM9DS1, NeoGPS, Pixhawk Arduino link, RadioHead, Grove HMC5833L и другие. Мне удалось получить некоторые последовательные данные с помощью контактов 18 и 19, но я не могу подключить все периперхалии к одному и тому же контакту.

Такое чувство, что мне не хватает чего-то очень простого здесь, но я не смог понять, как использовать эти библиотеки с входами на разных контактах. Даже когда я заглядываю в код самих библиотек, я не могу найти, где устанавливаются пины. Большая часть документации, в которой упоминается, какие контакты используются, написана для конкретных моделей Arduino, таких как Uno, и не упоминает Teensy.

Какие контакты использовать, если хочу читать и писать на нескольких периферийных устройствах моего подростка? Как получить данные не только о двух "выводах по умолчанию", которые, по-видимому, ожидают эти библиотеки?

, 👍1

Обсуждение

Вам нужно просмотреть каждое устройство/библиотеку, нет стандарта для изменения контактов по умолчанию. Возможно, вам даже не потребуется менять их, например, для I2C, где несколько периферийных устройств могут находиться в одной шине, если нет конфликта адресов., @Mat


1 ответ


1

Первое, на что следует обратить внимание при определении, к каким выводам подключать периферийное устройство, - это какой протокол использует это периферийное устройство, например I2C, SPI, аналоговое напряжение через АЦП и т. Д. В распинке Teensy для версии, которая у вас есть (например, распинка 3.2), перечислены, какие контакты могут функционировать в качестве функций протокола. Например, вывод 19 может действовать как аналоговый вход (A5) или как часть 0-го блока I2C, SCL0. Ваш LSM9DS1 может использовать I2C, поэтому вы можете подключить его к этому устройству I2C. Как правило, библиотеки Arduino по умолчанию будут использовать периферийный тип по умолчанию. В Arduino шина I2C называется проводной, поэтому библиотека для устройства I2C обычно использует проводное устройство. Хорошо написанные библиотеки также позволят вам использовать ваше собственное периферийное устройство, именно так вы меняете контакты. Каждая библиотека будет делать это по-разному.

,