Путана, запутавшаяся в проводах, помогла электрику снять напряжение.Из местных новостей.
Господа и дамы, френды и френдессы, я уверен, среди вас найдётся
fyysik, который сможет мне на пальцах разъяснить, в чём я ошибся.
Речь идёт о моём великом и ужасном устройстве, индикаторе всего, чего угодно, о котором я распинался
здесь и
здесь. Вкратце: программа замечательно пересылает единички и нолики, и микроконтроллер зажигает на своих выходах соответствующие значения. Теперь надо присобачить к нему набор LED`ов, чтобы эти значения можно было увидеть. И тут у меня возникла проблема.
Вот кусок схемы. Очень сильно упрощённый, но даёт представление об основной идее:
Для того, чтобы не запитывать светодиоды от микроконтроллера с риском сжечь оный, я присобачил NPN-транзисторы. Их коллекторы присоединены к общему плюсу, база каждого из них подключена к соответствующей ножке микроконтроллера, а с эмиттера идёт провод к светодиоду. Этот провод разделяется на, скажем, восемь, потому что у меня восемь модулей светодиодов, но в каждый момент времени цепь замкнута только на одном из них, поэтому проблем не будет. Светодиоды включены последовательно с токоограничивающими резисторами, «плюс» у каждого свой, «минус» у всех общий.
Этот общий «минус» с каждого модуля приходит на коллектор ещё одного NPN-транзистора, (всего их восемь, на куске схемы показаны четыре). Эмиттеры этих транзисторов заведены на общую «землю». База каждого из них подключена к соответствующей ножке
демультиплексора (на схеме вверху слева). Смысл вот в чём: только у того модуля светодиодов, который выбран с помощью демультиплексора, на базу транзистора придёт напряжение, транзистор откроется, цепь замкнётся, и светодиодики зажгутся. У всех остальных на базах их транзисторов будут нули, транзисторы NPN при нуле на базе закрыты, поэтому они не будут подключены к «земле», и, следовательно, их цепи останутся разомкнутыми.
Перед тем, как приступать к пайке, я собрал крохотный кусок этой схемы на коленке, на
макетной плате. Всего два светодиода. Но я чуть не сжёг транзистор, - тот, который на выборе «канала», между минусом светодиодов и землёй. Бедный кусок кремния раскалился так, что из него струйка дыма пошла. (Я его потом проверил - нет, не сжёг).
Видимо, я что-то сделал неправильно. Только что? Токоограничительные резисторы перед базами не воткнул? Но откуда там мощные токи?!
Технические данные: ножки микроконтроллера выдают напряжение порядка 4.5-4.9 вольт, сила тока до 20 миллиампер. (Это я завожу напрямую на базу первого транзистора). Транзисторы для включения каждого отдельного LED`а (на схеме LED1-LED12) -
C945. Сами LED`ы (D1-D12) - стандартные трёхмиллиметровые синие, 3.2 вольта, 20 миллиампер. Токоограничительные резисторы за LED`ами (R1-R12) - 220Ω. Демультиплексор (
74HC238) выдаёт до 20 миллиампер в диапазоне 3.9-5.2 вольта. Транзисторы для выбора канала (Q1-Q4), на базу которых я подаю вывод с ножки демультиплексора - по плану,
BС937 или BC338. И вот именно BC937-то я чуть и не сжёг.
Что интересно, когда я поставил вместо BC937 такой же С945, он тоже начал нагреваться, правда, не так сильно. Но когда я запитал его базу от того же провода, что и сам светодиод, никакого нагрева не последовало; для верности я полчаса выждал. Что же это получается?
Объясните мне кто-нибудь, что происходит? Сказывается, сказывается недостаток практических знаний… Разрешается советовать мне поставить резисторы любого номинала или взять другие транзисторы вместо BC937/8, транзисторов у меня много, но нужны обязательно NPN, потому что других демультиплексоров у меня нет, а этот выдаёт High на выбранном канале и Low на всех остальных.