Я пытаюсь управлять двигателем постоянного тока через L293D. В конечном итоге я управляю им с помощью Arduino, но я пытаюсь использовать микросхему TLC5940NT в качестве посредника, чтобы увеличить количество выходов, которые у меня есть.
Я подключил три контакта на TLC5940 к входу 1, входу 2 и контактам включения L293D, используя подтягивающие резисторы 2,2 кОм на двух входных контактах (я попытался изобразить это на схеме ниже — извините, если непонятно. Полноразмерная версия ):
Схема подключения TLC5940NT к L293D:
Когда я подключаю контакт включения к +5 В, двигатель работает, и я могу управлять направлением, используя входы 1 и 2. Однако я хочу контролировать скорость с помощью ШИМ. Когда я подключаю вывод Enable к TLC5940 (как на схеме), я вообще не могу заставить двигатель вращаться. Я также пытался использовать подтягивающий резистор на контакте включения, но он все еще не вращался, и когда я подключаю его к +5 В постоянного тока, используя только резистор 2,2 кОм или 560 Ом, ничего не происходит. Единственное, что заставило его вращаться до сих пор, это постоянное напряжение 5 В постоянного тока без резистора.
Может ли кто-нибудь объяснить, что не так и как я могу заставить его работать?
Изменить: я попытался добавить более полную схему
Основная проблема здесь в том, что вы неправильно поняли, как на самом деле работают выходы TLC5940NT. Они не работают так же, как двухтактные драйверы вывода Arduino, TLC5940NT использует стоки тока (называемые выходами с открытым стоком, которые на самом деле действуют больше как входы! Чудовищно, верно? Я объясню больше в конце), чтобы потянуть этот контакт «НИЗКИЙ». ". Вот почему вы подключаете к ним светодиоды, иногда с токоограничивающим резистором (в зависимости от того, являются ли они фактически управляемыми по току приемниками или нет) от VCC через светодиод, а затем к выводу TLC5940NT и подобных устройств (я использовал TLC59116F). раньше, что аналогично).
На самом деле я сделал ту же ошибку, что и вы, когда-то, так как я не знал, что такое вход с открытым стоком / стоком, и точно так же, как и вы, предполагал, что он будет работать так же, как мой Arduino. Что вам нужно сделать, чтобы заставить эту работу работать, так это инвертировать логику с помощью внешних компонентов и некоторых подтягивающих резисторов. Когда «выходы» TLC5940NT «выключены», значение на выводе становится высоким. Этот «высокий» сигнал можно легко инвертировать двумя способами: схемой логического инвертора на транзисторах NPN, инвертирующей логикой буфера/линейного драйвера или даже операционными усилителями, если необходимо. Ниже приведен краткий набросок каждого из этих методов.
Рисунок 1: Транзисторный логический инвертор с использованием дешевого NPN BJT.
Рисунок 2: Использование микросхемы инвертирующего буфера, такой как 7404 Hex (означает 8 входов/выходов). Инвертирующий буфер.
Возможно, вам понадобится один или два подтягивающих резистора на выходе буфера, чтобы избежать плавающих контактов, но я думаю, что без них все будет в порядке. Всегда следуйте инструкциям производителя.
Обратите внимание, как на обоих рисунках я показываю «выходные» контакты TLC5940 как верхнюю часть N-канального МОП-транзистора? Этот вывод идет на «сток» полевого транзистора, который в выключенном состоянии представляет собой разомкнутую цепь, поэтому они называют его выходом «открытого стока». Несмотря на то, что он действует как выключатель приемника низкого тока... Ужасно сбивает с толку, и я понимаю, почему вы допустили эту ошибку. Важно, чтобы вы усвоили это сейчас, как можно раньше, и всегда помните в будущем, чтобы проверить эти таблицы данных и пройтись по логике, чтобы убедиться, что это не повторится.
Следующее, что нужно сделать, это подключить выходы этих инвертирующих каскадов к входам вашего драйвера двигателя, как если бы они были выходными сигналами в стиле Arduino.
Теперь ваша система должна работать, как задумано! Внешние компоненты — неизбежное зло из-за того, как работают выходы TLC5940NT. Я согласен, хотя (и почему я использовал TLC59116F), у них потрясающие функции, и использование их способности ШИМ для каждого канала и позволяет вашему микроконтроллеру делать другие вещи, стоит затраченных усилий.
Подключен ли мотор V к L293D +5V? Откуда берутся эти +5В - от Ардуино? Вы не должны (и часто не можете) помещать значительную нагрузку, такую как двигатель, подключенный к регулятору Arduino, он рассчитан только на <400 мА, если вы используете порт USB. См. Сколько тока я могу получить от контактов Arduino? за хорошее объяснение. Кроме того, L293 — плохой выбор компонента для управления двигателем с низким напряжением из-за высокого внутреннего падения напряжения, см.:
и
Какие драйверы Н-моста предпочтительны для приложений, управляющих низковольтным двигателем?
для альтернатив.
ШерреллБК
Никогда
ШерреллБК
Цзофу
Никогда