- ベストアンサー
マイコンによるLED制御:プルダウン抵抗の効果と問題点
- 質問者は、プルダウン抵抗が内蔵されているマイコンを使用してLEDを制御しているが、電源投入後LEDが常にハイになってしまう問題が発生している。
- 質問者は、アプリが立ち上がる前はローレベルになると思っていたが、実際には常にハイになっていることに疑問を抱いている。
- 質問者は、外付けのプルダウン抵抗が影響を及ぼしているのか疑問を抱いており、電源投入後に無理やりローレベルにする方法があるか知りたい。
- みんなの回答 (5)
- 専門家の回答
質問者が選んだベストアンサー
何名かの回答がついていますが、その後、質問者さんから補足の投稿も無いので、もう自己解決されたのでしょうか? ソフト起動前の動作は、マイコンによって異なりますので一般論で答えることはできません。 何か事情があって、マイコンの型名や外部回路を公開することが出来ないのであれば仕方ありませんね。 アドバイス出来るとしたら以下のことぐらいですかね。 ・当該マイコンのハードウェアマニュアルなどのドキュメントをよく読む。 マイコンのドキュメントでチェックするボイントとしては ・出力専用ポートなのか入出力兼用ポートなのか ・リセット中、及びリセット解除後初期のポート状態 ・内蔵プルダウンは常時有効なのか、ソフトで有効/無効を切り替えるのか などが挙げられます。 またアプリ起動前にハイが出力されるということですが、それは完全なハイレベルなのか、それとも中間の電位になっていないかオシロスコープなどで確認しましょう。 オシロスコープが無ければ仕方が無いので、そのハイレベルは、本当にマイコンから出力されているものなのか、それとも外部回路の影響で外から電圧が加わっているのか確認しましょう。 回路を切り離すなどの方法が取れるのであれば、それで確認可能でしょう。 一般論で結論を出すことは出来ないので、一つ一つ確認していって下さい。
その他の回答 (4)
- kantaro1985
- ベストアンサー率42% (114/266)
>プルダウン抵抗はローになるという認識は間違いでしょうか。 一部正しく、一部間違いです。 そのラインに、どこからも何も出力されていない時に、そのラインの電位をローに固定するのがプルダウン抵抗の役割です。 そのラインに接続されているいずれかの素子がハイを出力してしまえば、当然ハイになります。
- lumiheart
- ベストアンサー率47% (1142/2410)
最優先で何処のメーカの型番は何? https://www.cqpub.co.jp/toragi/2008-2020/tabid/864/Default.html https://www.renesas.com/jp/ja/products/microcontrollers-microprocessors https://www.microchip.co.jp/download/index.php https://www.nxp.jp/ 型番が重要な理由 所謂、汎用I/Oには一つのポートを入力にも出力にも変更出来たりする そんなポートでイニシャライズプログラムで変更してるとかなら Arduino https://deviceplus.jp/hobby/learning-electronics-06/
- sknbsknb2
- ベストアンサー率38% (1158/3032)
使用されているマイコンの型番と外付け回路がどうなっているかを教えて下さい。 いろいろ想像で答えても意味がないと思うので、データシートと回路を確認したいです。
- Higurashi777
- ベストアンサー率63% (6223/9769)
まずは入力端子の話なのか、出力端子の話なのかをはっきりさせた方が良いでしょう。 仮に出力端子の話であれば、マイコンの仕様書を確認し、リセット時の出力がどのように規定されているかを確認される必要があります。 「電源起動後Hiが出力され、アプリケーション起動後はLoが出力される」というのであれば、おそらく電源投入時(リセット時)のデフォルト出力がHiなのかと思われます。 プルダウン抵抗というのは「出力(もしくは入力)のレベルが不定であった場合に出力(もしくは入力)のレベルをLoに固定する」ための回路となります。出力(もしくは入力)のレベルが不定であればプルダウン抵抗によって出力(もしくは入力)はLoになりますが、不定以外の信号が出力(もしくは入力)されている場合にはプルダウン抵抗を含む回路は無効となります。 >電源投入後、無理やりローにする方法は? 仮に出力であって、マイコンの初期出力がHi規定なのであれば、マイコンの出力端子の外部にインバーター回路を追加するしかないでしょう。で、アプリでのOn/Off信号情報をアプリ上で反転させて出す。これが一番わかりやすいかと。 以上、ご参考まで。