Увеличение напряжения сигнала ШИМ Arduino с 5В до 10В с помощью транзистора

У меня есть контроллер двигателя VEX 29 (u1 на схеме), который принимает ШИМ-сигнал в качестве входного сигнала для управления двигателем постоянного тока в прямом или обратном направлении (с различной скоростью). К сожалению, VEX не очень щедро делится информацией о своей электронике. Мне удалось запустить этот контроллер при напряжении 5 В от вывода ШИМ Arduino. Но контроллер двигателя должен иметь возможность работать при более высоких напряжениях, чем 5 В, что также увеличит скорость двигателя. Поэтому я хочу вместо этого запустить контроллер двигателя на 10 В, где входной сигнал ШИМ должен быть 0–10 В. Как я могу усилить сигнал ШИМ 5 В Arduino, чтобы он стал сигналом ШИМ 10 В?

Я думал об использовании обычного биполярного транзистора NPN для включения и выключения напряжения 10 В с частотой сигнала ШИМ, переводя сигнал ШИМ 5 В в сигнал ШИМ 10 В. Это возможно? И если да, то какие параметры мне нужны, чтобы выбрать правильный транзистор (у меня завалялась сумка с различными транзисторами NPN и PNP)? Мой контроллер двигателя потребляет всего около 10 микроампер или что-то вроде того от вывода ШИМ при подключении напрямую к Arduino (то есть при 5 В).Обновлена ​​схема Arduino/контроллера двигателя.

Большинство контроллеров двигателей управляются сигналами логического уровня и не требуют напряжения ШИМ, равного напряжению питания двигателя. Какой контроллер двигателя вы используете? У вас есть схема на него? Кстати, в вашей схеме fritzing нет общего заземления между Arduino и контроллером двигателя, а источник питания 10 В подключен к контроллеру с обратной полярностью. На неаккуратности в электронике далеко не уедешь - пожалуйста, исправь эти ошибки!
Я только что отредактировал вопрос с информацией о контроллере и обновил схему. Вы думаете, мне не нужно повышать напряжение ШИМ? Таким образом, уровень напряжения 5 В от Arduino может работать, даже если сам контроллер питается от 10 В? Я предполагаю, что внутри контроллера двигателя PIC µC может работать при гораздо более низком напряжении? Я проверю это, а также решение @Çetin Köktürk.
@BruceAbbott, ты прав, мне вообще не нужно регулировать напряжение ШИМ.
При размещении вашего транзистора вход ШИМ на контроллере по-прежнему будет получать только около 5 В. Транзистор будет работать только в том случае, если базовое напряжение выше, чем напряжение эмиттера, что ограничивает эмиттер чуть ниже 5 В. Посмотрите исходный последователь, чтобы узнать больше. Но на самом деле я бы попробовал сначала подать на контроллер питание 10 В, а на вывод ШИМ - 5 В. Вы можете быть удивлены, увидев, что контроллер работает нормально.

Ответы (2)

Как сказал Брюс, 5 Вольт обычно достаточно для управления драйвером двигателя. Но по какой-то причине, если вам нужно 10 Вольт, а так как это простое коммутационное приложение, то любой транзистор должен работать. Вы должны сделать это:

[МЕРТВАЯ ССЫЛКА]

Значение резистора будет влиять на протекающий ток и полосу пропускания.

PS в этой конфигурации модуляция будет инвертирована, что означает, что вы отдаете больше мощности с меньшей шириной импульса и отдаете меньшую мощность с большей. Вам нужно изменить длину ШИМ через программное обеспечение.

Это также инвертирует сигнал (т.е. вход может иметь коэффициент заполнения 20%, а выход будет иметь коэффициент заполнения 80%).
У меня все еще есть некоторые проблемы с пониманием транзисторов (хотя я несколько раз читал о них). Поскольку BJT управляется током, я думаю, мне нужно убедиться, что ток в базе достаточно высок, чтобы транзистор полностью открылся, верно (не в линейном диапазоне)? Так что это контролируется резистором 100 Ом. Какой ток вы имеете в виду, когда «протекающий» ток контролируется другим транзистором. На выход ШИМ? Какую пропускную способность вы имеете в виду? Уровень напряжения ШИМ или ток в ШИМ? Я также предполагаю, что эмиттер BJT подключен к GND, верно?
@DolfAndringa да, вы правильно догадались, и этот режим работы называется областью насыщения. Однако в большинстве случаев это не проблема, смещение в режиме насыщения довольно просто, вам просто нужно убедиться, что через базу-эмиттер протекает достаточный ток. Базовый резистор определяет этот ток. Кстати, вы можете увеличить значение резистора примерно до 300 Ом, потому что резистор 100 Ом приведет к тому, что базовый ток (который подает Arduino) приблизится к максимальному. текущий рейтинг контакта Arduino. И да, я имел в виду коллекторный ток.
Я имел в виду оба значения, когда говорил о пропускной способности. Чем выше значение резистора, тем медленнее изменяется уровень ШИМ-сигнала, а значит, меньше высокочастотных составляющих. Кстати, сегодня я отредактирую значение резистора.
@ ÇetinKöktürk Вы правы в том, что мне вообще не нужно регулировать напряжение ШИМ. Я могу просто оставить его 5V и увеличить напряжение питания. Я предполагаю, что внутренне PIC работает при гораздо более низком напряжении, чем напряжение питания, и считает 5 В высоким, независимо от напряжения питания.
Драйверы двигателей @DolfAndringa обычно используют нечто, называемое «h-мост», который просто использует транзисторы для подачи большей мощности на двигатель и управления направлением вращения двигателя. 5 вольт может быть напряжением базы/затвора его транзисторов.
Это не я думаю, или, по крайней мере, не только Н-мост. Я где-то читал, что у этого есть PIC µC внутри. Я не хочу рисковать сломать его, открывая его.
@ ÇetinKöktürk - ссылка на схему в вашем ответе больше не работает. Пожалуйста, не могли бы вы повторно загрузить схему непосредственно в StackExchange (отредактируйте свой ответ и используйте ctrl+G). Спасибо.

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

Кроме того, V2подключается в обратном порядке: минусовая клемма к Vin+, а плюсовая клемма к Vin-.

Эти проблемы должны быть решены до того, как можно будет выполнить какой-либо анализ амплитуды ШИМ-сигналов. В настоящее время у вас просто нет ШИМ-сигнала.

Вы правы, я исправил схему. Я действительно знал это и был просто небрежным, как догадался @Bruce Abbot.