Можно ли подключить больше датчиков одного типа к одной плате, не используя при этом больше контактов, чем при использовании одного датчика?

Я такой же новичок в программировании Arduino и конкретной электронике, как и вы, поэтому даже не знаю, правильный ли вопрос я задаю.

Я заказал Arduino, макетную плату и несколько печатных плат, а теперь ищу несколько деталей, которые мне следует купить, чтобы реализовать несколько базовых проектов.

Я хотел бы начать с проекта по автоматизации сада, довольно простого. Датчики влажности, датчики температуры и водяной насос.

Могу ли я подключить все (4) датчика влажности к одной локальной цепи, а затем подключить ее к плате, чтобы ограничить количество используемых входных контактов? Мне все равно нужно будет получать независимые показания от датчиков. Или мне нужно будет использовать другую плату, включающую модули RF/Wireless/Bluetooth, чтобы получать информацию и затем отправлять ее на плату для дальнейшей обработки?

Прошу прощения, если то, что я только что сказал, не имеет смысла, и благодарю вас за уделенное время. Все, что у меня есть, это опыт работы с электроникой на низком-среднем уровне. Проверщики аккумуляторов, блоки питания, базовые датчики света, изготовление печатных плат и т. д.

, 👍2

Обсуждение

Помог ли какой-либо из ответов? Если да, то примите ответ, который помог. Если нет, то опубликуйте свой ответ и отметьте его как принятый в течение 48 часов. Спасибо., @Greenonline


3 ответа


4

Если соединение представляет собой цифровой сенсорный вывод, то вы можете использовать ИС с параллельным входом и последовательным выходом, чтобы одновременно считать их все, а затем сместить их. Занимает 3 контакта на Arduino: защелку, тактовый и информационный.

Если соединение SPI, то вы можете соединить вместе контакты тактовых импульсов и MISO, а затем для каждого из них потребуется выбор подчиненного устройства. Вы можете управлять многими из них с помощью последовательной входной/параллельной выходной ИС или декодера.

Если соединение осуществляется по протоколу I2C и каждое устройство имеет свой адрес, то вы можете просто подключить их все параллельно.

Если датчик имеет аналоговый выход, то вы можете использовать аналого-цифровой преобразователь (АЦП), который может иметь несколько входов и часто имеет последовательный интерфейс.

,

1

Если вам не нужно, чтобы они работали одновременно, вы можете использовать мультиплексор, например, такой от Sparkfun:

https://www.sparkfun.com/products/9056

,

Это не похоже на вопрос, это похоже на ответ., @Nick Gammon


2

Все зависит от интерфейса между Arduino и датчиком.

Например, DS18B20 использует шину 1-Wire. Для этого требуется один цифровой вывод, и несколько DS18B20 могут быть подключены к одной и той же шине 1-Wire. Каждый DS18B20 имеет уникальный идентификатор, который делает это возможным.

Датчики влажности, такие как DHT11 или DHT22, требуют пин для каждого датчика. Они в любом случае неточны.

Датчики, такие как BME280, используют шину I2C. Шина I2C позволяет подключать множество датчиков. Каждый датчик I2C имеет адрес I2C. Иногда датчик может иметь только один адрес I2C, и поэтому только один такой датчик может быть подключен к шине I2C. Но иногда возможен трюк, чтобы иметь больше.

Этот список можно продолжать и продолжать. Многое возможно без дополнительного оборудования.

Поскольку вы собираетесь использовать датчики, а многие датчики рассчитаны на 3,3 В, вы купили плату Arduino на 3,3 В?

,