PNPトランジスタを使用したLEDの点灯方法

このQ&Aのポイント
  • PNPトランジスタを使用してLEDを点灯させる回路を考えます。
  • マイコンからのHigh信号でもLow信号でもLEDが点灯してしまう問題が発生します。
  • 22kΩの抵抗を追加することで、電源投入時に光る現象を抑えることができます。
回答を見る
  • ベストアンサー

PNPトランジスタを用いたLEDに点灯

前にも質問させて頂きましたが、再度同じ質問をさせて頂きます。 添付の回路でLED点灯、消灯をさせてたいのですが、マイコンからのHigh信号2.5Vが入力されても点灯しています。lowでも点灯しています。 0Ωのところを22kΩを入れれば改善されましたが電源投入時に一瞬光ってしまいます。それを抑えたいのですが、どのようにすれば良いのでしょうか。

質問者が選んだベストアンサー

  • ベストアンサー
  • 4810noja
  • ベストアンサー率45% (258/567)
回答No.3

マイコンのパワーオンリセットの期間中は出力がLになるんですね。これがLで点灯するロジックの不都合なところで、回答No.1さんにあるようにプログラミングで解決するのが良いように思います。そうすれば、添付の回路図BのようにNPNデジトラ・LED電流制限抵抗・LEDだけで構成でき、悩むようなことは起きないのですが…、質問者さんもご存じと思います。 それはともかく、添付図のAのような回路を考えてみました。 電源ON時、電流がTr2の内部抵抗を通りコンデンサに充電されます。その間TR2が導通し、Tr1のベース電圧を引き上げてTr1をカットオフします。Tr1カットオフ期間中はマイコンからの信号で動作しません。 コンデンサの充電が済むとTr2のベース電圧はほぼ電源電圧となり、Tr2がカットオフするのでTr1はマイコンの出力に応じて動作します。 問題はコンデンサの容量ですね。ほんの一瞬の点灯なら1μFもいらないと思いますが、Tr2の内部抵抗もわからないのでここはカットアンドトライで決めてください。Tr1・Tr2とも同じものでOKと思います。 ダイオードは、念のため電源OFF時のコンデンサの放電用です。

anf04082
質問者

お礼

ありがとうございました😊

その他の回答 (2)

  • kaba__san
  • ベストアンサー率46% (27/58)
回答No.2

3回目ですか。 いい加減無理だって気づかないですかね・・・ これの何が不満?

  • ohkawa3
  • ベストアンサー率59% (1342/2261)
回答No.1

>0Ωのところを22kΩを入れれば改善されましたが電源投入時に一瞬光ってしまいます。それを抑えたい・・・ 一瞬光ることを防ぐ機能は、LED駆動回路部分のハードウェアに受け持たせるよりも、ソフトウェアで対処するほうが適切なように思います。 ソフトウェアが立ち上がるまでの過渡的な問題であれば、PNPトランジスタによる駆動回路を止めて、NPNトランジスタによる駆動回路に変更するなどが有効かもしれません。とはいっても、NPNトランジスタによる駆動回路に変更すれば必ず改善するとは言えませんので、マイコンの起動とポートの出力が確定する時間的な関係を精査して判断することが適切と思います。

関連するQ&A

  • PNPトランジスタを用いてのLED点灯について 再

    一度、質問させて頂きましたが、再度同じ質問をさせて頂きます。 添付の回路でLED点灯、消灯をさせてたいのですが、マイコンからのHigh信号2.5Vが入力されても点灯しています。lowでも点灯しています。 3.3Vでトランジスタをつっている事が原因なのでしょうか?

  • PNPトランジスタを用いてのLED点灯について

    添付の回路でLED点灯、消灯をさせてたいのですが、マイコンからのHigh信号2.5Vが入力されても点灯しています。lowでも点灯しています。 3.3Vでトランジスタをつっている事が原因なのでしょうか?

  • トランジスタのVbeについて

    マイコンを使ってLED点灯、消灯の回路でスイッチとトランジスタを使っています。 トランジスタのVbeは約0.7Vだと思いますが、NPNトランジスタの場合、マイコンからHighの信号が例えば2.5Vの信号がきた場合トランジスタがONし電流が流れLEDが点灯、LowだとOFFのままになり消灯になります。 PNPトランジスタの場合は反対の動きかと思います。 Vcc(エミッタ側)が3.3Vでマイコンから2.5VのHigh信号を入れた場合、消灯せず点灯のままです。これはVbeとなにか関係しているのでしょうか。 ちなみLowの場合、点灯してます。 Highの2.5Vのときに消灯させたいのですが、Vbeとの関係があるとおもうのですが、理解できていません。 Vcc-0.7v=3.3V-0.7Vの2.6Vを超えないとHighと認識しないということになりますでしょうか。 Vccを低くするか、マイコンから2.5Vを例えば3.3V信号出力するものにして、2.6Vを超えればHighと認識して消灯するものでしょうか。

  • トランジスタでマトリックスLEDをダイナミック駆動

    こんにちは。 初めて質問させていただきます。 PICマイコンとトランジスタを使用して、LEDを4x4でダイナミック駆動によって点灯させたいと思っております。 回路を組んでみたのですが、どうも思ったように動作しません。 PICにつないでおかしいと思ったので、PICを外して直接ベースをつなぎ変えたりして試しているのですが、やはりうまく動作しません。 以下の回路図で、2SC2120側のベースに5V、2SA950のベースについて、  ・オープンだと消灯  ・GNDだと点灯  ・5Vでも点灯 という動作となりました。 私としては、5V印加で消灯してくれると期待してました。 2SC2120側は5V/GND接続で点灯/消灯ができています。 回路図(省略しているので見づらいかも知れません…)                 5V            5V                  |             |                  E            E PIC 5V出力─470Ω─B          …─B                  C(2SA950)       C                 ├─────┐    |                 91Ω     91Ω    :                 |         |                 LED(20mA) LED(20mA)                 |         |                 E        E PIC 5V出力─470Ω─B      …─B                 C(2SC2120)  C                 |         |                 GND     GND なにぶん、キットではなく初めて一から回路を組んでみているので、初歩的な質問をしているかもしれませんが、どうかアドバイスよろしくお願いいたします。

  • LEDの点灯タイミングを変える方法を教えてください。

    ある作品を作るためにPICマイコンでLEDを点灯させる回路を作る予定です。 並べたLEDが左から順に点灯しバー状に伸びるという回路です。 しかし、ピンの数に対して使用予定のLEDの数が1個多いため最後の1ピンにABの2つのLEDを並列に繋ぎ、そのABを何とか時間差で点灯させることが出来ないかと考えました。 要するに「1つのピンからの信号が同時にAB2つのLEDに供給されるがAはすぐに点灯し、Bは若干遅れて点灯する。消灯時はAB同時にパッと消える。」 といったものです。 BのLEDの遅れの時間を調整できて、比較的少ない部品点数で実現出来れば最高なんですが、どのように回路を組めばよいでしょうか? 例えば、コンデンサの充電時間を利用して遅らせるという感じの方法があればよいのですが、消灯時はABは同時にパッと消えるようにしたいのです。

  • LED点灯制御についてです

     こんにちは、はじめまして。早速ですが、質問させていただきたいと思います。  LEDの点灯を制御したいと考えています。それに当り、ある点灯パターンに制御する方法を教えていただきたいのです。  その点灯パターンとは、10個のLEDが横一列に並んでいるとします。それらのLEDを点灯させるのですが、全てのLEDを一斉に点灯させるのではなく、左から順に点灯させていくと言うものです。そして全てが点灯した後に、消灯させます。  このような点灯パターンは、やはりマイコンで制御するしかないのでしょうか?  どなたか、ご教授をお願いいたします。  それでは、失礼いたします。

  • C++でLEDを点灯させるプログラム

    最近、マイコンを購入しLEDを光らせる簡単な回路を作成したのですが、そのためのプログラムが作れず困っています。 タイトルの通りC++でスイッチを入れると電源(DC5v)が一定時間ごとに入ったり、切れたりしてLEDが点灯したり消灯したりするプログラムを作ろうと思っているのですが、如何せんそのような知識がなくどう作ればよいのかわからず困っております。どなたかご教授くださいませんか。

  • LEDを点灯するだけのプログラムなのに点滅する

    マイコン勉強中なのですが。 まず手始めにブレッドボード上で、AVR atmega88 を使ってとりあえずLEDを点灯させるプログラムを書き込んだのですが約1秒ごとに一瞬LEDが点滅するのですが、原因として考えられるもあるでしょうか? PORTB0に抵抗とLEDつけただけの単純な回路です。

  • 入力抵抗により別々のLEDを光らせる方法

    電気回路(電子回路)の質問です。 入力信号(抵抗)により、別々のLEDを光らせたいのですが どのような回路を組めば良いでしょうか? 入力信号 1)0Ω(短絡) 2)500Ω 3)1000Ω 4)2000Ω LEDは、赤、緑、黄色、白をそれぞれ入力している間点灯する様にしたいと思っています。 ご教授お願い致します。

  • H8マイコンでled制御

    H8/3052FのマイコンとAKI-H8-USBのキットを使用しています。 ledを制御する際に、通常はportのデータレジスタの該当ビットをlow(0)にしたときに消灯、high(1)に点灯となると思うのですが、 なぜか逆になります。つまりlowレベルのとき点灯します。 他に接続しているスイッチも逆になっているみたいです。 回路の組み立てがおかしいのでしょうか? 理由が分からず悩んでいました。 よろしくお願いします。