Какой наилучший метод последовательной связи между Arduino и спектральным датчиком?
У меня есть датчик видимого спектра Adafruit AS7262. Я хочу получать данные датчика с помощью Arduino.
Датчик имеет два варианта последовательной связи: UART (асинхронный) или I2C (синхронный). Я хочу знать, какой метод больше подходит для связи датчика с микроконтроллером Arduino. Я думал, что UART более подходит, потому что у датчика есть свои собственные главные часы, другими словами, если я выберу I2C, то Arduino должен работать как «ведомый», и я не думаю, что это очень подходит, потому что у Arduino есть свои собственные главные часы также. По этой причине я считаю, что асинхронный метод более надежен, но я в этом не уверен.
@, 👍0
2 ответа
I2C на этом устройстве является подчиненным, а не ведущим. Несмотря на то, что у него есть собственные часы, он предназначен для работы в качестве подчиненного устройства, читаемого ведущим.
У вас не возникнет проблем с использованием интерфейса I2C — фактически Adafruit использует его для своей собственной библиотеки программного обеспечения.
Поскольку у производителя уже есть библиотека на основе I2C, я бы использовал ее, если только нет веской причины использовать вместо нее UART.
Arduino будет выступать в качестве главного контроллера и отправлять вызов подчиненным устройствам. AS7262 — это сенсорное устройство, Arduino отправит команду вызова, а затем получит данные от своих датчиков. Иногда возникает путаница, поскольку разработчики привыкли к настольному компьютеру как к ведущему компьютеру, но в этом случае Arduino получает данные и выполняет прямое действие, например, отправляет информацию на компьютер, подключенный через USB или Wi-Fi, или просто выполняет управление с обратной связью с другим цифровым или аналоговым устройством.
Дополнительную информацию по этой теме можно найти в сообществе Arduino здесь
Также
- Как связаться с датчиком через порты RX/TX Arduino?
- Как получить ненулевой выход из HX711 и ячейки загрузки?
- Когда дело доходит до связи UART-RS485, в чем разница между модулем "MAX485" и модулем "HW-0519"?
- Интерфейс RS422 с Arduino
- Печатать на serial monitor, когда он обнаруживает изменение значения
- Arduino показывает "avrdude: ser_open(): can't open device ”\\.\COM3" после последней загрузки
- Несколько датчиков, подключенных к последовательным портам Arduino MEGA 2560
- Используя датчик веса Arduino, он не удовлетворяет циклу while, не могу понять, почему