Как протестировать произвольные кабели?
Я пытаюсь сделать проверку кабелей, чтобы помочь мне сделать кастомные кабели для компьютера. Я думаю, что я подключаю концы кабеля в розетки на устройстве, а затем Arduino проверяет между различными контактами, чтобы убедиться, что никакие провода не находятся в неправильном месте или не отключены.
Поэтому я думаю, что она проходит примерно так:
Я подключаю кабель к разъемам на устройстве. Arduino сохранил выводы блока питания. Штифт 1 представляет один конец кабеля, штифт 2 представляет противоположный конец. То же самое с 3-4/5-6 и т.д. Если кабель собран правильно, он должен действовать как соединение между контактами 1-2, контактами 3-4, 5-6 и т.д.
проверьте контакты 1 - 2, чтобы убедиться, что они подключены, если да, то загорится зеленый светодиод, если нет, то загорится красный светодиод.
тестирует вывод 3 - 4, делает то же самое
Повторяет это для каждого провода в кабеле
Я на правильном пути? Как бы я это сделал? Я видел как люди говорят о подтягивающих резисторах но я также вижу как люди говорят что короткое замыкание может повредить плату
@Eggo, 👍1
Обсуждение1 ответ
Объем вашего вопроса слишком широк для простого ответа, поэтому давайте ограничим его медленными сигналами (звуковыми частотами или меньше) по коротким кабелям (не более нескольких метров) в электрически чистой среде (например, в большинстве домов).
Тем не менее, скорее всего, большинство ищущих аналогичные решения, читающих ваш вопрос, будут иметь другие конкретные требования. Поэтому, чтобы сделать этот вопрос и ответ полезными для других, давайте рассмотрим наиболее универсальное, экономичное и основанное на Arduino решение.
- Большинство кабелей, которые стоит автоматически протестировать, будут иметь гораздо больше индивидуальных соединений, чем обычные платы Arduino, такие как Arduino Uno, имеют контакты GPIO. Подумайте об использовании расширителя GPIO или нескольких Arduino, которые взаимодействуют друг с другом для координации усилий.
- При тестировании кабеля, который будет использоваться для низких частот, коротких расстояний и низкой помехоустойчивости, скорее всего, единственными неисправностями, вызывающими беспокойство, будут РАЗМЫКАНИЯ и КОРОТКИЕ замыкания.
- Поскольку эта конструкция использует штифты GPIO, у нас есть следующие опции для любого данного штифта GPIO: Привод Высокий, привод Низкий и Вход С подтягиваниями.
- Постройте испытательную установку кабеля, где один конец (ближний конец) испытуемого кабеля соединен с выводами GPIO, обозначенными как сторона водителя, а другой конец испытуемого кабеля (дальний конец) соединен с выводами GPIO, обозначенными как чувствительная сторона.
- Для теста SHORTS and OPENS установите все чувствительные и управляющие контакты GPIO на вход С помощью подтягиваний. Убедитесь, что все чувствительные контакты GPIO сообщают о 1. Затем измените один и только один из выводов GPIO драйвера на выход и отправьте 0. Запишите это состояние всех чувствительных контактов GPIO. Верните вывод драйвера GPIO на вход без подтягиваний и повторите эти действия для следующего вывода драйвера GPIO.
- Если это ПРЯМОЙ СКВОЗНОЙ кабель, то только 1 чувствительный вывод GPIO должен сообщать о 0 в каждом записанном тестовом паттерне. Если более чем 1 чувствительный вывод GPIO сообщает о 0, то между выводами 0 отчетов возникает короткое замыкание. Если ни один из выводов GPIO не сообщает о 0, то для этого вывода GPIO открыт.
- Используйте тот же тест для кабелей, содержащих преднамеренные КОРОТКИЕ замыкания (возможно, несколько контактов заземления закорочены вместе), ожидая увидеть, что все соответствующие контакты GPIO одновременно изменятся на 0.
- Для еще более сложных кабелей, содержащих обратные петли на обоих концах, в качестве драйвера рассматривайте только "вывод GPIO, установленный на выход, посылающий 0", и записывайте состояние ВСЕХ ОСТАЛЬНЫХ выводов GPIO, поскольку теперь они являются всеми возможными выходами.
- Нужен ли подтягивающий/понижающий резистор для цепи светодиода кнопки?
- Сколько выводов UNO имеют внутренние подтягивающие резисторы?
- Минимальное значение I2C-подтягивающий резистор для arduino
- digitalRead не читает входной контакт ESP8266-01
- Отправка цифрового сигнала с одного Arduino на другой для запуска события
- Отправка информации (например, строки) через цифровые контакты
- Невозможно использовать аналоговые контакты в качестве цифровых входов
- Отправка цифрового сигнала с одного arduino на другой
- Я на правильном пути?` ... это зависит от того должны ли контакты 1 и 2 быть закорочены вместе, @jsotola
запишите точную пошаговую процедуру в мельчайших деталях ... полученное описание будет переведено в код почти непосредственно, если вы включите достаточно подробностей, @jsotola
@jsotola да, готово, @Eggo
если это самое подробное описание, которое вы можете записать, то вам нужно много думать ...
тестирует контакт 1 - 2, чтобы увидеть, подключены ли они
нигде рядом с одной строкой кода ......... кабель имеет два конца ... назовите их "левымии "правыми"... Я говорю об описании что-то вроде: "установите каждый вывод слева в качестве входов, установите каждый вывод справа в качестве входов, установите левый вывод 1 на выход, выход НИЗКИЙ на левом выводе 1, проверьте состояние правого вывода 1 ...
, @jsotolaСчитаете ли вы ярлыки ошибкой? Тогда вам нужно проверить их тоже. -- По крайней мере, в истории компьютерных кабелей есть несколько вариантов, которые имеют соединения между двумя (или более) контактами на одной стороне, не будучи подключенными к другой стороне. -- Другие кабели могут соединять один вывод одной стороны с несколькими выводами на другой стороне, например, для заземления. -- Некоторые зарядные кабели USB имеют резисторы между контактами, которые должны попадать в определенный диапазон. -- Видите ли, эта задача не тривиальна, если вам нравится проверять нетривиальные кабели., @the busybee
подключение, сопротивление, перекрестные помехи, емкость, целостность изоляции... проверьте, что имеет значение для вашего использования. Нет конца тому, что вы можете проверить; однако arduino сам по себе может быть не лучшим способом проверить все., @Abel