Сколько датчиков может поддерживать один модуль Arduino?
Я новичок в мире Arduino. Я сделал несколько базовых проектов по книге, которая идет в стартовом наборе (ее одолжил мой друг), а также использовал датчики влажности, температуры и ЖК-дисплей.
Я хочу купить Arduino Uno для измерения комнатной температуры, влажности, содержания угарного газа, диоксина углерода и, возможно, еще пары переменных. Я буду использовать 4 датчика, 1 зуммер, 1 ЖК-дисплей и 1 последовательный беспроводной модуль WIFI ESP8266.
После этой работы я добавлю функциональные возможности, но, поскольку у меня много компонентов, я не уверен, поддерживает ли их Arduino Uno, поскольку у него ограниченное количество контактов.
Нужен ли мне Arduino с большим количеством контактов? что, если я использую все эти булавки, а мне нужно больше? Можно ли расширить Arduino Uno за счет большего количества контактов?
Поскольку Arduino Uno — очень маленький компьютер, может ли его процессор поддерживать все эти компоненты и их операции?
@Roby Sottini, 👍2
Обсуждение5 ответов
Я думаю, вы хотите знать, сколько датчиков может поддерживать 1 Arduino. Но на всякий случай отвечаю на обе интерпретации названия вашего вопроса:
- Сколько различных типов датчиков может поддерживать Arduino?:
При правильном программном и аппаратном обеспечении Aruidno может взаимодействовать практически с любым типом датчиков. Исключения включают, помимо прочего, датчики, которые производят больше данных, чем может обработать Arduino (например, видеокамера), или датчики, требующие быстрого реагирования (например, времяпролетные лазерные датчики расстояния (LIDAR)).
- Сколько датчиков может поддерживать Arduino одновременно?:
Это зависит от того, какие ресурсы процессора необходимы. Если датчику нужен АЦП, на большинстве плат Arduino есть 6 каналов. Если вам нужно больше, есть аппаратные решения. Но многие здесь предлагают просто добавить второй Arduino.
Чтобы конкретно указать список белья:
комнатная температура
Термистор подключен к АЦП. Но большинство из них не являются линейными, поэтому вам придется создать справочную таблицу.
влажность
Я думаю, что на рынке есть модуль SPI, позволяющий сделать это.
окись углерода
Для этих датчиков обычно требуется усилитель. И меняются с возрастом. температура. Так что здесь много программного обеспечения, а также оборудования.
диоксин углерода
Не уверен насчет этого.
зуммер
Самоприкасающийся? Тогда вам нужен только логический выход.
1 ЖК-дисплей
Альфа и amp; числовой? Большинство из них имеют 4- или 8-контактные интерфейсы Hitachi. Но вы можете поискать ЖК-дисплей с SPI или последовательным портом, чтобы сэкономить на контактах Arduino.
ESP8266
Это просто серийное устройство. Вам понадобится последовательный порт Arduino.
Я оставлю вам возможность провести детальную оценку необходимых ресурсов процессора. Потому что сначала вам нужно выбрать конкретное оборудование, которое вы будете использовать.
Это полдела. Другая половина — это проверка того, что библиотеки всех этих датчиков и устройств связи не будут мешать друг другу. Это я оставлю на ваше усмотрение, поскольку разобраться во всем коде всех различных библиотек, которые вы будете использовать, — непростая задача. И опять же, пока вы не выберете, какие именно датчики и устройства вы будете использовать, невозможно даже начать анализ, поскольку мы не будем знать, на какие библиотеки смотреть.
Этот ответ помечен как «не ответ». Не могли бы вы уточнить заданный вопрос? То есть «сколько датчиков может поддерживать Arduino?». Я понимаю, к чему вы клоните с этим ответом, но он немного косвенный., @Nick Gammon
Я постараюсь. Но вопрос обширный. Поскольку почти сутки на вопрос никто не ответил, я решил попробовать., @st2000
Думаю, стоит добавить, что к шине I2C Arduino можно подключить множество устройств I2C, так что это хороший вариант, если вам нужно, чтобы один Arduino управлял множеством датчиков. То же самое для SPI, за исключением строки «выбор ведомого»., @Edgar Bonet
Вопрос сам по себе несколько обширен, но я постараюсь дать здесь некоторую информацию.
Количество поддерживаемых датчиков и количество требуемых контактов будут зависеть от того, какой интерфейс они используют.
- Если ваш датчик имеет аналоговый интерфейс, вам понадобится аналоговый входной контакт для каждого датчика.
- Если ваш датчик имеет интерфейс I2C, вы можете использовать несколько устройств, использующих одни и те же контакты (шину), при условии, что они имеют разные адреса I2C (часто настраиваемые с помощью перемычек на устройстве). ли>
- Если ваш датчик имеет интерфейс SPI, вы можете использовать несколько устройств, использующих одни и те же контакты (шину), за исключением того, что для каждого потребуется PIN-код выбора микросхемы, подключенный к цифровой контакт ввода-вывода на вашем Arduino, чтобы он мог «выбирать» каждое устройство.
- Если ваш датчик имеет последовательный интерфейс, обычно у вас может быть только одно устройство.
Чтобы усложнить проблему, вы можете приобрести модули расширения для Arduino, которые предоставят вам дополнительные аналоговые контакты или другие интерфейсы связи.
Из-за длинного списка датчиков, приведенного выше, у вас также может возникнуть нехватка места для программы, поскольку большинству датчиков потребуется код и/или библиотеки для взаимодействия с ними. Arduino с большим количеством контактов (например, MEGA) также имеют больше места для программ.
Я бы посоветовал вам дополнительно изучить датчики, которые вы хотите использовать, и выяснить, какой интерфейс они используют и какие библиотеки Arduino для них доступны. Таким образом, вы сможете полностью понять требования и ограничения любых частей, которые хотите использовать.
Дальнейшее чтение:
- https://www.arduino.cc/en/Reference/Wire (интерфейс I2C)
- https://www.arduino.cc/en/Reference/SPI (интерфейс SPI)
- https://www.arduino.cc/en/Reference/Serial (последовательный интерфейс)
- https://www.arduino.cc/en/Guide/Libraries (Использование библиотек)
- https://www.arduino.cc/en/Tutorial/HomePage (учебник по Arduino)
У Uno более чем достаточно контактов для описанных вами устройств.
- Датчику относительной влажности и температуры DHT22 требуется только один цифровой вывод для обеих переменных.
- Датчику угарного газа MQ-7 требуется один аналоговый контакт.
- Датчику углекислого газа MG-811 требуется один аналоговый контакт (и усилитель).
- Для пьезозуммера требуется один вывод ШИМ.
- Для ЖК-дисплея с интерфейсом Hitachi требуется четыре цифровых контакта.
- Модулю ESP необходимы два цифровых контакта.
Это 7 цифровых контактов, один из которых должен быть ШИМ, и 2 аналоговых контакта. Я не выбирал лучшие или самые дешевые устройства, а только те, о которых я либо знал, либо мог быстро найти с помощью поиска. Но это требование к контактам не приближается к исчерпанию доступных контактов на Uno, поэтому остается достаточно неназначенной емкости, чтобы вы могли сделать другой выбор, который может потребовать других интерфейсов или большего количества контактов.
Вы также можете использовать аналоговые контакты Arduino в качестве цифровых контактов..... сделав это, вы сможете использовать 18 контактов.... подождите минутку, вы используете esp8266 со своим Arduino, тогда вам не нужен никакой датчик, просто подключите свой esp8266 к любому веб-сайту, который сообщает все, что вы хотите, и просто читайте данные с веб-страницы и отображайте их на ЖК-дисплее. ....
Вопрос не в этом., @gre_gor
Посмотрите на MUX Shield, я только что использовал его, чтобы добавить 48 входов к MEGA, что позволило ему иметь 98 входов или выходов
- Сколько датчиков может поддерживать Arduino Uno? Нужна помощь для моего гидропонного проекта
- Как получить ненулевой выход из HX711 и ячейки загрузки?
- Попытка прочитать разные уровни газа с помощью датчика газа MQ2
- Подключение датчика Winsen ZE11-C2H4 к Arduino
- Проблема с подключением датчика сердцебиения и температуры на arduino uno, но работает по отдельности
- Какое максимальное количество датчиков можно использовать на одном устройстве Aurdino?
- Использовать все контакты как цифровые входы/выходы
- Что такое ICSP pin (разъём)?
Это будет зависеть от их неуказанных деталей, но учтите, что esp8266 — значительно более мощный компьютер, чем классический Arduino, возможно, вам будет лучше использовать его., @Chris Stratton
Было бы лучше, если бы вы задавали по 1 вопросу в каждом посте., @st2000
Вы можете увеличить количество выводов, используя *сдвиговые регистры*, @Mero55
Я буду более понятен, вам следует задавать другие вопросы. Просто спросите их в разных постах. Вероятно, вам следует подумать о том, чтобы спросить о датчиках температуры, температуры и т. д. в разных постах. Поскольку некоторые из них нелинейны, другим требуется компенсация возраста, а третьим требуется температурная компенсация., @st2000
Как у новичка, у вас возникает много важных вопросов. Поскольку Arduino — это не просто UNO, я бы посоветовал вам просмотреть веб-сайт Arduino и ознакомиться со всеми предлагаемыми вариантами. По мере продвижения в мире Arduino вы обнаружите, что Mega предлагает больше контактов, Yun может предоставить версию Linux, а MKR1000 имеет доступ к IoT., @spicetraders
Поскольку Uno поддерживает I2C и SPI, точное количество контактов не является ограничивающим фактором., @Nick Gammon
Не забывайте, что у вас также есть 10 цифровых и 1 аналоговый контакты на ESP8266(E), который представляет собой 32-битный процессор, способный работать на частоте 160 МГц. Использовать его для подключения Wi-Fi к последовательному соединению — это все равно, что покупать Ferrari, чтобы раз в неделю проезжать полмили по магазинам., @Code Gorilla
И не забудьте отметить ответ как принятый, если он отвечает на ваш вопрос. Таким образом, вопрос больше не попадет на домашнюю страницу в списке «нерешенных»., @frarugi87