Если у вас есть 8 аналоговых входных датчиков (или 2, или 9, или 738479), есть ли чип / возможно ли с микропроцессорным программированием активно контролировать все каналы? Скажем, у вас есть 8 поворотных потенциометров, подключенных к каждому входу/выходу мультиплексора, придется ли вам менять входы выбора каждый раз, когда вы хотите использовать другой потенциометр? Похоже, что это сделало бы мультиплексор гораздо менее полезным, чем я думал. Итак, если бы я хотел использовать потенциометр на контакте ввода-вывода 1, а затем потенциометр на контакте ввода-вывода 8 сразу после первого, Мне нужно было бы сказать микроконтроллеру / процессору, чтобы он переключился на чтение контакта 8, прежде чем я мог бы использовать подключенное к нему периферийное устройство? Или есть способ заставить его контролировать все контакты ввода-вывода одновременно, чтобы я мог использовать периферийное устройство на контакте 1, затем на контакте 7, а затем на контакте 2 без необходимости вообще что-либо делать в отношении изменения считываемого контакта ввода-вывода? , пока я использую только один за раз?
CD74HC4051MM96EP — это мультиплексор, которого у меня уже много, и я использую teensyduino (библиотека кодов arduino) / teensy 3.1 для отправки миди-сообщений. Я хотел бы прочитать все виды различных входных датчиков.
Идея использования мультиплексора заключается в том, что вы очень быстро считываете все входные данные в последовательности, а затем повторяете цикл и повторяете это снова. Это компромисс между пропускной способностью и задержкой и количеством портов. Это позволяет разделить доступную полосу пропускания и обратный отсчет портов на один и тот же коэффициент. Если у вас есть АЦП, который может сэмплировать с частотой 10 тыс. импульсов в секунду, и 8-портовый мультиплексор, то с 1 входом вы можете сэмплировать с частотой 10 тыс. импульсов на этом входе, с 2 входами вы можете сэмплировать с частотой 5 тыс. импульсов на обоих входах, с 4 входами вы можете сэмплировать по 2,5 KSps на каждом входе и т. д. Одним из побочных эффектов является то, что выборки чередуются во времени, поскольку вы не можете просматривать все входы в одно и то же время. С 2 входами будет смещение в 1 период выборки между показаниями на альтернативных каналах, где первая выборка со входа 1 произойдет при «T = 0»,
Если вы просто пытаетесь читать с POT, все должно быть в порядке, так как исходящие от них сигналы будут меняться очень медленно. Все, что вам нужно сделать, это написать цикл for, который будет циклически перебирать все настройки мультиплексора и считывать соответствующее аналоговое значение.
Скажем, у вас есть 8 поворотных потенциометров, подключенных к каждому входу/выходу мультиплексора, придется ли вам менять входы выбора каждый раз, когда вы хотите использовать другой потенциометр?
Да, если вы хотите изменить, какой вход подключен к выходу мультиплексора, вы должны изменить входы на сигналы выбора.
Или есть способ заставить его контролировать все контакты ввода-вывода одновременно, чтобы я мог использовать периферийное устройство на контакте 1, затем на контакте 7, а затем на контакте 2 без необходимости вообще что-либо делать в отношении изменения считываемого контакта ввода-вывода? , пока я использую только один за раз?
Вы можете использовать 8 различных схем мониторинга (входы АЦП?) и вообще не использовать мультиплексор.
Или вы можете сделать схему для суммирования 8 входов и контролировать суммарный сигнал. Это может быть полезно, если вы хотите избежать опроса, чтобы увидеть, есть ли вообще какая-либо активность на ваших входах. Но если два входа активны одновременно, вы не сможете различить, какой из них был активен.
Вы можете использовать счетчик, чтобы постоянно увеличивать цифровую шину, которая будет применяться к контактам выбора MUX, избегая использования инструкций UC для изменения этих сигналов. Но вы, вероятно, захотите синхронизировать свою деятельность по «мониторингу» со счетчиком, чтобы случайно не выполнить измерение во время переключения мультиплексора.
звездно-голубой