В принципе, у меня имеются некоторые базовые понятия о транзисторах, но конкретно собрать что-то с их применением, мне как-то не доводилось.
Начитавшись статей об Ардуино, я решил заказать какие-то дешевые, пригодятся на всякий случай, например, для управления чем-нибудь или для отключения самого Ардуино при обнаружении разряда батареи.
Транзисторы нужны для управления бОльшими токами и напряжениями с помощью мЕньших, что бывают они полевыми, биполярными, что применяются повсеместно если не явно, то входят в состав микросхем. Не говоря у же о том, что все логические элементы строятся на них, а на логических элементах, в свою очередь, строятся автоматы: счётчики, регистры компараторы и т.д. То есть, транзисторы лежат в основе существования всего, что позволяет автоматизировать хранение и обработку информации…
Я, как и многие, начал знакомство с электроникой со сборки усилителей звука, сейчас много интегрированных схем: припаял пару конденсаторов — и готово, усилителя звука на TDA И даже преамп для динамического микрофона получается неплохой без применения транзисторов, на К538УН3А. А, т.к. электроника для меня это микрохобби, раньше я их никогда в руках не держал… Хотя знал, что рано или поздно придётся.
Также, можно провести аналогию с реле, но, в отличии от управления через реле, у схем с применением транзисторов нет гальванической развязки, да и реле работают как выключатели, а транзисторы — скорее как регуляторы.
О товаре
Вероятно, т.к. я был первым покупателем данного товара, отсыпали не 50, а 100. Если нужно много, лучше брать лот 100шт. — стоит всего на 20 центов дороже.
На фото к транзистору припаяны кусочки проводка, от индуктивности, который сам зачищается при пайке; но он постоянно отваливался из-за своей низкой эластичности, в сравнении с прочностью места пайки.
Конечно же, они предназначены для печатных плат, которых у меня нет (как и нет опыта ЛУТ и желания им заниматься), а раз уж набрал столько, попробую, в очередной раз, припаять SMD-элементы к макетной плате… В будущем, думаю заливать термоклеем — и ничего страшного не случится, за то компактно!
Оказалось, не так страшно, как казалось: все ноги попали на контактные площадки а проводки аккуратно вошли снизу и припаялись. Кстати, на них я тоже сэкономил — отрезал от IDE-шлейфа (кому интересно, холивар об МГТФ).
Параметры
Все параметры транзистора продавец описал в названии: "...BC817 BC817-40 SOT-23 NPN 6C 0.1A/45V general purpose...", если верить сайту chip-и-dip, параметры транзистора BC817-40 таковы:
Структура npn
Макс. напр. к-б при заданном обратном токе к и разомкнутой цепи э.(Uкбо макс) 50 В
Макс. напр. к-э при заданном токе к и разомкнутой цепи б.(Uкэо макс) 45 В
Максимально допустимый ток к ( Iк макс.) 800 мА
Статический коэффициент передачи тока h21э мин 250
Граничная частота коэффициента передачи тока fгр. 100 МГц
Максимальная рассеиваемая мощность 0.31 Вт
Корпус sot23.
Пример использования с вентилятором
Суть применения с Ардуино заключается в подаче малого напряжения (в виде ШИМ-сигнала) на базу транзистора, пропорционально которому будет изменяться ток от коллектора к эмиттеру, а напряжение там (12В) — намного больше напряжения Ардуино.
Питание подаётся на разъем molex — от компьютера. Схема во Fritzing получилась такая:
Резистор — порядка 3 кОм, нужен для ограничения тока (защиты пина); ( А ) — амперметр, с его помощью узнаем как изменяется ток (вольтметром тоже полазим); и нужно не забыть соединить все земли, если питание мотора-вентилятора будет у Вас отдлельно! Диод нужен для предотвращения помех, но, т.к. осциллографа у меня нет, оценить его надобность проблематично, также, рекомендуют ставить конденсатор порядка 22nf. Кстати, если у вентилятора есть еще третий (жёлтый) провод, есть вероятность получить с него скорость оборотов через digitalRead().
Подача с Ардуино ШИМ-сигнала, который определяет напряжение на одном из пинов в скрипте выглядит так:
pinMode(10, OUTPUT); // настройке пина на выход - внутри setup()
...
analogWrite(10, i); // установка напряжения
Где i принимает значения от 0 до 255, в реальности — от 0 до максимального напряжения, на котором работает микроконтроллер. Использовать можно не всякий пин, более подробно это описано тут или здесь =)
Вентилятор такой: Voltage: 12 V Current: 160 mA Speed: 2300rpm
Собрал, подключил — работает (программно регулирует), но пищит! Это потому что ШИМ по умолчанию работает на частоте, которая лежит в пределах слышимости ухом и слышим мы писк внутри обмотки мотора. Свечением светодиода можно управлять так же: вместо мотора с диодом (и конденсатором) цепляем просто светодиод, но ток там больше, поэтому нужно будет учесть мощность транзистора. При управлении светодиодом — та же фигня с частотой ШИМ — оно будет мигать (и раздражать). Можно, с одной стороны, настроить вручную таймер-счётчик, как описано в статье, на которую я давал ссылку выше (ссылка о конденсаторе 22nf), но можно и проще — kazus.ru/forums/showthread.php?t=107888#post768273
Как видно, максимальная частота возможна на ножках 5 и 6, но не забываем, что при использовании этих выводов, возможны проблемы связанные с millis() и delay().
Окончательный код:
#include <EEPROM.h>
byte bSpeed, // Текущий уровень (усиления)
bNewSpeed; // и устанавливаемый.
void setup() {
TCCR1B = TCCR1B & 0b11111000 | 1; // Увеличение частоты ШИМ на выводах 9 и 10 до ~31кГц.
pinMode(10, OUTPUT); // Вывод управления транзистором.
pinMode(13, OUTPUT); // Вывод на встроенный светодиод для индикации нажатий
pinMode(14, INPUT_PULLUP); // на кнопку повышения усиления
pinMode(15, INPUT_PULLUP); // и кнопку понижения усиления.
analogWrite(10, 255); // Раскручиваем мотор.
delay(800);
bNewSpeed = EEPROM.read(0); // Считываем из энергонезависимой памяти.
}
void loop() {
if (!digitalRead(14) && bNewSpeed < 255)
bNewSpeed++; // Повышение усиления.
else if (!digitalRead(15) && bNewSpeed > 0)
bNewSpeed--; // Понижение усиления.
if (bSpeed != bNewSpeed) {
digitalWrite(13, 1); // Индикация.
analogWrite(10, bSpeed = bNewSpeed); // Изменение усиления.
EEPROM.write(0, bSpeed); // Сохраняем значение на будущее.
}
delay(50); // Фильтр бребезга контактов и человеческого фактора.
digitalWrite(13, 0); // Индикация.
}
Суть работы такова: припаиваем к 10 контакту Ардуино резистор на 3 кОм, за ним транзистор базой; к А0 и A1 — кнопки:
при нажатии на которые будет мигать встроенный светодиод и изменяться напряжение на базе транзистора. Если, в процессе нажатий на кнопки, будет достигнут максимум или минимум, светодиод мигать перестанет.
Сначала подключит вентилятор напрямую к 12В и измерим ток:
Совсем не 130 мА — совсем не 160, ну и ладно, подключаем вентилятор к шайтан-машине!
Для удобства подключения SMD-транзистора, можно воспользоваться этой картинкой:
Красный провод вентилятора — к 12В, чёрный — к коллектору транзистора (одинокий контакт), эмиттер — транзистора — к общему минусу.
Плата для тестирования
Так исторически сложилось, что у меня валяется кусок такой платы
и IDE-шлейфы в ассортименте. Если разрезать шлейфы и наклеить на плату IDE-разъемы — получится такой тестовый стенд для Ардуино с тентаклиевым монстром:
Собирать на нём чуть более удобно, чем на весу. Немного мешают избыточные проводки, которых в три раза больше, чем нужно.
Также, полезной будет тема использования транзистора для отключения ардуино при обнаружении низкого заряда аккумулятора питания. Спасибо за внимание, надеюсь, в комментариях, как всегда, будет много полезной и интересной информации.
Более доходчиво о транзисторах можно прочитать в статьях от Къюбея: биполярные, полевые.
Добавлено
350 мА — максимальный ток, который удалось установить через дешёвую светодиодную матрицу на напряжении 12В.
750 мА — ток через резисторы 5 Ом на напряжении 5В;
на напряжении 12В при токе в районе 120 мА произошло разрушение транзистора.
Планирую купить+20Добавить в избранноеОбзор понравился+25
+46
с нетерпением ожидаем обзор каких-то микросхем с ali
автору, на всякий случай (для заголовка) транзистроры 0.1A, 45V а не Вт (не пугайте людей пожалуйста)
Здесь присутствует достаточно много людей, разбирающихся в электронике.
Поэтому для описания деталей лучше выражаться не оригинальнее, а точнее. Либо как искали/заказывали, либо как указал продавец.
Прошу меня извинить, но по тексту обзора комментировать даже не буду.
Заголовок доставляет.
Даташита нет.
Скудные характеристики от продавца, а их проверка где?
Пол обзора поделка для регулировки кулера.
Это обзор чего вообще?
Берите уже полевые транзисторы, особенно «логические», у них характеристики вкуснее, а стоят не намного дороже; мест где имеет смысл использовать биполярные становится все меньше, особенно в свете ар-р-р-рдуины!
считаете проще?
человек с биполярными справиться не может, а Вы предлагаете искать ему полевые с логическим уровнем, плюс ломать голову над драйвером полевиков?
биполярные транзисторы — это не резисторы, падение напряжения тут не при чем
у них ток обычно ограничен, будет больше максимального — станут постоянным сопротивлением навсегда :)
Если до конца дочитали, то я доволен, спасибо; хорошо, что ещё ошибок не нашли. На самом деле, о транзисторах в мне ничего не преподавали: я вовремя перевёлся с радиотехнической специальности на компьютерную: до того, как на первой их преподавали по предмету схемотехники, но после того, как на второй специальности о них дали поверхностные знания. :p я не радиотехник =(
Как думаете, получится ардуино саму себя выключать через транзистор, или нужна еще какая-то обвязка?
Ну, блин, если в Америку не уехал — так сразу быдлокодер =(
Даже если тут баксами за работу брать, пока работаешь на отечественного заказчика, будут тебя называть быдлокодером =((
Если покупаешь дешёвые товары в китае и делаешь на них обзоры, быдлокодеры будут причислять тебя к своему племени ;(
А надо ли ардуину выключать? Большинство атмелей в режиме глубокого сна потребляют 0.1 мкА(!!!) при напряжении питания 2В., это считайте, что выключено)
Это если говорить только о самой микросхеме. Если рассматривать всю плату (к примеру УНО), то на прочую периферию и преобразователи уходит около 30 мА.
Да, согласен на уно понятно, что много уходить будет… Только для вентилятора у автора — уно чересчур избыточна. На чем-то максимально приближенном к чистой avr-ке вполне можно получить заявленные токи в 0.1 мкА, у меня получалось на tiny85, она, или модели помладше, вполне для вентилятора подойдут.
При нажатии на кнопку замыкается цепь питания Ардуино. Далее в скетче нужно в начале прописать высокий уровень на любой пин, который замкнет транзистор. Если необходимо отключить питание, то просто подаем низкий уровень на этот пин. Схема разрывается. Потребление от батарейки будет определяться током утечки транзистора (в действительности стремиться к нулю).
Да, именно! Вот это я и хотел сделать, по пока руки не доходят. Спасибо за схему, unnk2004. Для этого полезно будет знать кривую разряжения аккумулятора:
и точно определять заряд батареи (это + один аналоговый пин, соединённый с аккумулятором или с делителем, если источник питания имеет напряжение больше 5В и нужно чтобы делитель не высаживал батарею)… Хотя, можно и не точно. В данном случае, отключать можно при напряжении 3.3В
Но тут в игру вступает плата Ардуино с напряжением 3.3В и соответствующим линейным стабилизатором, который, вероятно, отключает аккумулятор, когда тот разряжается ниже 3.3В.
Но имейте ввиду напряжение коллектор-эммитер. Оно возможно и 0.4В будет. Соответветсвенно при питании от аку конечное напряжение отсечки будет Uпитания_ардуино+Uc-e. А это может быть больше напряжения полной разрядки аку.
И базовый ток надо определить из расчета максимального потребления всей схемы. И ток этот будет постоянным.
Про «какие-то транзисторы» вам уже попеняли и без меня.
А зачем вам ардуина-то? Я понимаю, вы бы датчик температуры бы задействовали — но зачем из пушки-то по воробьям?
И, раз вы её поставили — реализовали бы хотя бы грамотно раскрутку пропеллера. Первые 5 сек — 100% мощности, потом на убыль — чтобы вентилятор гарантированно раскрутился. А то выставите тихие обороты, он у вас через месяц нажрётся пыли и не раскрутится.
Добавил + еще использование EEPROM, но по-хорошему, можно понизить частоту записи, сделав ее по таймеру с задержкой в пару секунд, сбрасываемому при изменении значения bSpeed.
Совет обозревшему:
Если уж и покупать «какие-то NPN» транзисторы «на всякий случай», то лучше MPSA42. Они намного универсальнее — 0.5A 300V и с ногами. тыц
Не очень понимаю выбор транзисторов именно в корпусе SOT23 для монтажа на макетку. Лучше бы взяли их-же в корпусе SOT54 или ТО-92. Ещё добавлю, что для управления вентилятором они всё-таки слабоваты.
Та дело не в этом: я при копировании названия, неправильно поисправлял индексы на русские:
вместо «В» написал «Вт», «0.» удалил из «0.1А», оригинальное название: Free Shipping 50PCS BC817 BC817-40 SOT-23 NPN 6C 0.1A/45V general purpose transistor NEW ORIGINAL
Весь старый совковый мусор отбыл на мусорку лет десять тому назад!
То, что было наковыряно, — не заработало, когда собирал преамп для динамического микрофона.
В результате, собрал по этой статье oldoctober.com/ru/microphone_amplifier/
Свой голос (на видео в статье) записывал через этот усилок, питание от 4В, причем, регулятор был выкручен на минимум, а в системе громкость микрофона стояла на 1 (из 100)!
Надо попробовать, всё-таки, собрать преамп транзисторе и сравнить.
было бы интересно увидеть тестирование по току. скажем — вытягивает ли оно реально заявленные в даташите полампера, или только 100мА как в заголовке? потому что во втором случае — это не bc817
Тестировал резистором 5 Ом, состоящим из двух параллельно подключенных по 10.
При напряжении 5В, максимальный ток составил 180 мА (0.9Вт), при этом транзистор «сильно» нагревался.
С напряжением 12В выдержал ток только ~120 мА и вышел из строя.
Получается, вышел из строя на мощности ~1.4Вт.
Если я правильно понимаю, то в эксперименте транзистор превысил заявленную рассеиваемую мощность 0.31 Вт минимум в 3 раза.
Круть, значит я правильно тему сначала озаглавил — «Какие-то smd-транзисторы...»
А, может, это такой попался, я до этого через него и еще несколько транзисторов подключал светодиод на 3Вт
Неправильно ты дядя Фёдор бутерброд ешь :)
Чтобы транзистор мог пропустить приличный коллекторный ток, надо создать соответствующий базовый ток. Через резистор 3кОм базовый ток будет всего около 1,5мА, а надо миллиампер 10 (для коллекторного 0,5А). Поставьте базовый резистор 390 Ом и ещё раз проверьте
По-хорошему, нужны более глубокие знания электродинамики и осциллографа для подобных обзоров, коими я не владею.
В данном обзоре хотелось просто показать, что через транзисторы с помощью Ардуино можно управлять «внешними» устройствами.
автору, на всякий случай (для заголовка) транзистроры 0.1A, 45V а не Вт (не пугайте людей пожалуйста)
например «Какие-то smd-транзисторы BC817 общего назначения на 0.1А 45В в корпусе SOT-23»
Поэтому для описания деталей лучше выражаться не оригинальнее, а точнее. Либо как искали/заказывали, либо как указал продавец.
Прошу меня извинить, но по тексту обзора комментировать даже не буду.
Даташита нет.
Скудные характеристики от продавца, а их проверка где?
Пол обзора поделка для регулировки кулера.
Это обзор чего вообще?
человек с биполярными справиться не может, а Вы предлагаете искать ему полевые с логическим уровнем, плюс ломать голову над драйвером полевиков?
у них ток обычно ограничен, будет больше максимального — станут постоянным сопротивлением навсегда :)
САМЫЙ БЕСТОЛКОВЫЙ ОБЗОР МЕСЯЦА!!!...)))
Или года.......)))
На самом деле, о транзисторах в мне ничего не преподавали: я вовремя перевёлся с радиотехнической специальности на компьютерную: до того, как на первой их преподавали по предмету схемотехники, но после того, как на второй специальности о них дали поверхностные знания. :p я не радиотехник =(
Как думаете, получится ардуино саму себя выключать через транзистор, или нужна еще какая-то обвязка?
electronics.stackexchange.com/questions/117136/arduino-battery-over-discharge-protection-o-dp
для быдлокодеров есть лекции www.youtube.com/channel/UCFI31dsn8yxaarw6LZpSHWw
включая меня
Даже если тут баксами за работу брать, пока работаешь на отечественного заказчика, будут тебя называть быдлокодером =((
Если покупаешь дешёвые товары в китае и делаешь на них обзоры, быдлокодеры будут причислять тебя к своему племени ;(
Похоже, тут уже ничем не поможешь...(((
При нажатии на кнопку замыкается цепь питания Ардуино. Далее в скетче нужно в начале прописать высокий уровень на любой пин, который замкнет транзистор. Если необходимо отключить питание, то просто подаем низкий уровень на этот пин. Схема разрывается. Потребление от батарейки будет определяться током утечки транзистора (в действительности стремиться к нулю).
и точно определять заряд батареи (это + один аналоговый пин, соединённый с аккумулятором или с делителем, если источник питания имеет напряжение больше 5В и нужно чтобы делитель не высаживал батарею)… Хотя, можно и не точно. В данном случае, отключать можно при напряжении 3.3В
И базовый ток надо определить из расчета максимального потребления всей схемы. И ток этот будет постоянным.
А зачем вам ардуина-то? Я понимаю, вы бы датчик температуры бы задействовали — но зачем из пушки-то по воробьям?
И, раз вы её поставили — реализовали бы хотя бы грамотно раскрутку пропеллера. Первые 5 сек — 100% мощности, потом на убыль — чтобы вентилятор гарантированно раскрутился. А то выставите тихие обороты, он у вас через месяц нажрётся пыли и не раскрутится.
Добавил + еще использование EEPROM, но по-хорошему, можно понизить частоту записи, сделав ее по таймеру с задержкой в пару секунд, сбрасываемому при изменении значения bSpeed.
Если уж и покупать «какие-то NPN» транзисторы «на всякий случай», то лучше MPSA42. Они намного универсальнее — 0.5A 300V и с ногами. тыц
вместо «В» написал «Вт», «0.» удалил из «0.1А», оригинальное название:
Free Shipping 50PCS BC817 BC817-40 SOT-23 NPN 6C 0.1A/45V general purpose transistor NEW ORIGINAL
Или нанюхался — рядом пекарня работает, постоянно торты печёт: выходишь утром на балкон, вдыхаешь полной грудью — тортики!!!
7 человек планируют купить
может я чего-то не понимаю?
самое главное — не делая платы, зачем брать элементы в планарном исполнении?…
ладно… что -то проделано и то плюс
То, что было наковыряно, — не заработало, когда собирал преамп для динамического микрофона.
В результате, собрал по этой статье oldoctober.com/ru/microphone_amplifier/
Свой голос (на видео в статье) записывал через этот усилок, питание от 4В, причем, регулятор был выкручен на минимум, а в системе громкость микрофона стояла на 1 (из 100)!
Надо попробовать, всё-таки, собрать преамп транзисторе и сравнить.
smd на монтажке кусками — это жесть :)
понравился обзор, спасибо!
При напряжении 5В, максимальный ток составил 180 мА (0.9Вт), при этом транзистор «сильно» нагревался.
С напряжением 12В выдержал ток только ~120 мА и вышел из строя.
Получается, вышел из строя на мощности ~1.4Вт.
Если я правильно понимаю, то в эксперименте транзистор превысил заявленную рассеиваемую мощность 0.31 Вт минимум в 3 раза.
А, может, это такой попался, я до этого через него и еще несколько транзисторов подключал светодиод на 3Вт
Чтобы транзистор мог пропустить приличный коллекторный ток, надо создать соответствующий базовый ток. Через резистор 3кОм базовый ток будет всего около 1,5мА, а надо миллиампер 10 (для коллекторного 0,5А). Поставьте базовый резистор 390 Ом и ещё раз проверьте
В данном обзоре хотелось просто показать, что через транзисторы с помощью Ардуино можно управлять «внешними» устройствами.