Управление 10 мощными светодиодами с помощью Raspberry Pi

Я пытаюсь понять, как управлять 10 светодиодами Luxeon Rebel (700 мА) с Raspberry Pi. Я хочу иметь возможность включать и выключать их из кода, но мне не нужно, чтобы два или более светодиодов включались одновременно, всегда по одному светодиоду за раз.

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

Я планирую использовать этот драйвер BuckPuck для управления светодиодами. Я думал, что могу поставить светодиоды параллельно и использовать транзистор 2N2222 в качестве переключателя. Это лучший путь?

Чтобы найти значение резисторов R2, R4, R6 и т. д., я использовал коэффициент усиления, указанный в таблице данных (30), и значение базового эмиттера (0,6 В/1,2 В). GPIO Raspberry PI составляет 3,3 В, это 3,3 - 0,7 = 2,6 В и 23,3 мА = 111 Ом. Это правильно или я что-то не так понимаю?

Нужен ли мне резистор между светодиодом и транзистором, и если он мне нужен, как мне найти значение?

Наконец, я хотел бы иметь возможность приглушать свет с помощью ШИМ, кажется, это возможно с контактами CTRL и REF BuckPuck, но я действительно не понимаю, как это работает.

Вот схема, показывающая только три светодиода (с 10 светодиодами изображение было слишком маленьким).

схематический

смоделируйте эту схему - схема, созданная с помощью CircuitLab

Спасибо !

В вашей схеме вы выбрали транзистор 2N2222 NPN, который не выдержит большой ток. В таких случаях я бы использовал силовой транзистор, такой как 2N2102 (Ic max = 1 А) в корпусе TO-39 или BD139 (Ic max = 1,5 А, даже безопаснее) в корпусе TO-126. Также обратите внимание, что выбранное вами усиление является минимальным усилением. Реальный выигрыш находится где-то между этим и максимальным значением. Обычно у таких транзисторов 100 минимум. В этом случае просто замените резистор 100 Ом резистором 1 кОм.
Спасибо, ты прав! Если я использую 2N2102, какой будет номинал резистора (R2, R4, R6)? 1к? А с BD139 он мне нужен?
Я бы сказал, что это значение резистора не волнует (слишком много), поскольку это не тот, который [должен быть разработан] для определения тока светодиода. Присвойте ему значение, достаточно высокое, чтобы ограничить ток базы, и достаточно низкое, чтобы транзистор находился в устойчивом включенном состоянии. 1К должно быть нормально. Вам всегда нужен резистор для ограничения тока, потребляемого с цифрового выхода (помните, что переход эмиттер-база ведет себя как диод с прямым смещением).

Ответы (2)

BuckPuck представляет собой понижающий ("buck") преобразователь. Вы должны обеспечить его напряжением не менее чем на 2,5 В выше прямого напряжения светодиодов. Светодиод имеет типичное значение Vf 3,2 В, поэтому входное напряжение должно быть не менее 5,7 В. Назовите это 6V или выше. BuckPuck будет принимать входное напряжение вплоть до 32 В постоянного тока, хотя эффективность немного снижается.

Он регулируется для обеспечения постоянного тока. Другими словами, BuckPuck будет изменять свое выходное напряжение так, чтобы ток оставался прежним. Бакпаку все равно, если у вас один или три светодиода последовательно, он просто создаст любое напряжение, необходимое для подачи 700 мА через цепь. Конечно, это выходное напряжение не может быть больше, чем на 2,5 В меньше, чем входное напряжение.

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

Однако это создает проблему в вашем многопутевом проекте. Если выключить один из светодиодов перед включением другого, то току деваться некуда. Выходное напряжение поднимется до максимально возможного, так как BuckPuck пытается поддерживать 700 мА.

Решение состоит в том, чтобы включить один из светодиодов непосредственно перед выключением другого. МОП-транзисторам требуется время для включения и выключения, поэтому вам может потребоваться добавить задержку в свой код, чтобы гарантировать, что текущий путь всегда доступен.

Что касается затемнения PWM, в основном вы просто включаете и выключаете контакт CTRL довольно быстро. В техническом описании сказано, что вам нужно поддерживать частоту ШИМ ниже 10 кГц. Я бы снизил его до 1 кГц или даже медленнее. То, что вы делаете, включает и выключает светодиод быстрее, чем может заметить глаз. То, что вы в конечном итоге видите, является средней яркостью.

Однако вы можете сделать это напрямую, только если у вас есть логические выходы 5 В. RPi имеет выходы 3,3 В. В таблице данных приведены следующие примеры, которые вам не подойдут, потому что у вас нет логики 5 В:

введите описание изображения здесь

Внимательно прочитайте страницу 4 таблицы данных. Также обратите внимание, что земля микроконтроллера (земля RPi) связана с LED-.

Удобно, что вывод REF обеспечивает 5 В для вашего использования. Вам нужно переключить эти 5 В на контакт CTRL. Одним из вариантов является использование небольшого оптоизолятора (оптопары), такого как Sharp PC713V0YSZXF .

Если вы не знаете, как использовать оптоизолятор, я бы поискал ответы здесь :)

Удачи.

Спасибо, я более четко понимаю роль BuckPuck и то, как работает PWM. А значение Rds-on только для полевых транзисторов, верно? Я не нахожу это значение в таблицах данных транзисторов NPN. У меня все еще есть проблемы с поиском нужных компонентов. Я рад, что вы указали, что это будет проблемой, если все свет погаснет одновременно. Как вы сказали, я обязательно включу один и выключу предыдущий.
@oks2024 Рад, что это имело смысл :) Да, ты прав р д с о н только для полевых транзисторов; извините, что не упомянул об этом. Полевой транзистор во включенном состоянии выглядит как небольшой резистор. Вместо этого BJT («транзистор с биполярным переходом») имеет определенное падение напряжения. Для NPN это называется В С Е ( с а т ) Полевой транзистор намного лучше подходит для приложений с переключением питания.
Я провел некоторые исследования по МОП-транзисторам, но я еще не уверен, что полностью понимаю таблицы данных. Могу ли я использовать , например, ссылку FDN337N ?
@ oks2024 Да, это был бы отличный полевой транзистор для ваших целей. В г С 30 В гарантирует, что полевые транзисторы не выйдут из строя, даже если вы выключите все светодиоды одновременно. Низкий В г С О Н позволит вашей логике 3,3 В полностью активировать полевые транзисторы. Одна проблема, однако, заключается в том, что этот конкретный FET действительно мал. Если у вас нет большого опыта пайки, это будет трудно использовать. Сопоставимый полевой транзистор в более крупном корпусе будет таким , хотя могут быть и более предпочтительные варианты. (Это не дешево...)

Драйвер, который у вас есть, является драйвером постоянного тока, и, сверившись с его техническим описанием, он должен нормально работать для управления отдельными светодиодами при условии, что вы соответствуете требованию, чтобы входное напряжение было на 2,5 В выше, чем номинальное прямое напряжение светодиодов. В этом случае вам не нужен резистор последовательно со светодиодами.

В техническом описании не ясно, совпадает ли LED- с землей, и я подозреваю, что это не совсем то же самое - там будет небольшой шунтирующий резистор, измеряющий ток.

Биполярные транзисторы не идеальны для такого высокого уровня тока, я бы выбрал для этого полевые транзисторы. Возможно, с буфером высокой мощности 3,3 В -> 5 В от GPIO для работы в качестве драйвера FET.

Редактировать: собирался предложить полевой транзистор, но слишком большой выбор. Вы хотите что-то с приводом логического уровня и разумной текущей обработкой. Вероятно, в корпусе ТО-251.

Спасибо за Ваш ответ. Извините за вопрос новичка, но каковы основные различия между транзисторами и полевыми транзисторами?
Биполярные транзисторы — это усилители тока: вы пропускаете ток через базу-эмиттер и получаете примерно 50-300 раз через коллектор-эмиттер. Полевые транзисторы больше похожи на резистор, чувствительный к напряжению затвора, где «вкл» составляет несколько десятков миллиом. В любом случае вам нужно что-то большее, чем 2n2222.