- ベストアンサー
74HC4017と74HC132Pを使い、LEDを1~10までタクトス
74HC4017と74HC132Pを使い、LEDを1~10までタクトスイッチを押すたび順番に点灯しました。しかし電源を再投入すると電源を切る前のLEDの次のLEDが光ってしまうのですが、電源を再投入しても同じLEDを光らすにはどうしたらいいのでしょうか?
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
- ベストアンサー
リセット回路を持たないカウンタが電源投入時にどのような値を持つかと言うことは運任せで、次のLEDが光るというのは偶然です。長時間電源を切った後に再投入した場合はどれかそのICのくせによって決まったLEDが点くか、または不規則になるでしょう。 確実に電源を切る前の値を保持したい場合は、バッテリーバックアップという仕組みが必要になります。つまり少なくとも74HC4017の電源が常に入っているという回路にする必要があります。言うのは簡単ですが、バックアップ電源で動作する部分と通常電源が切れている部分の接続にはラッチアップやバックアップ電源の電流の損失という問題があり、簡単ではありません。 まず、通常電源(5V)とバックアップ電源(3V)をダイオードでORして74HC4017に供給します。このダイオードにはショットキバリアダイオードを使用すべきです。理由は74HC132と74HC4017の電源電圧の差を可能な限り小さくしてラッチアップを防止するためです。74HC132の出力と74HC4017のクロック入力の間に直列に10kΩを入れることでラッチアップの予防になります。 このままでは通常電源の断時に74HC132の出力電圧の低下をカウントしてしまいますから、74HC4017のEnable入力にリセットICの出力をつなぎ、通常電源が4.5V以下になったときにEnable=Hを与えます。これで通常電源がOFFになった瞬間の間違ったカウントを抑制できます。ここで、リセットICを使用せず単にカウント入力を正論理として通常Lレベルにすれば入力ICの電源が落ちる瞬間もLのままだからカウントしないはずだ、とも考えられ、実際そうなる可能性もありますが、ICの動作電圧未満での動作はあくまでも不定であってHが出るかLが出るかの保証は無く、そのような設計は信頼性が低いと言うことになります。 最後の問題は74HC4017の出力のいずれかが常時Hであり通常電源断時にバックアップ電源を消費してしまう点です。バックアップ電源は基本的に電流を消費しない設計が必要です。ICのカタログに静止時の消費電流何μAと書いてあっても出力電流が流れるとその分は確実に消費します。この対策としては、すべてのLEDのカソード側(現在おそらくGNDにつないでいるほう)の個々にMOS-FETを設けて、すべてのゲートを束ねて抵抗でGNDにプルダウンすると同時に通常電源に接続し、つまり通常電源投入時のみLEDのカソードをGNDに引くという手もあります。LED個々に直列にダイオードを入れて回り込みを防止すればLEDのカソードを束ねてしまいMOS-FETは一つで済みますが、74HC4017の出力電圧、LEDの順方向電圧、ダイオードの順方向電圧、電流制限抵抗の電圧、MOS-FETの飽和電圧など加算してゆくと電圧が苦しくなるでしょう。ダイオードなど入れなくても発光ダイオード自身がダイオードではないか、という使い方は、発光ダイオードの逆耐圧は低く一般に発行ダイオードはダイオードとして使用しません。もっとくそまじめに74HC4017の出力をバックアップされた74HC00などのゲートに通してリセット信号(通常電源<4.5VでLとなるような)とANDするという手もあります。 一見動いているが実はICに無理がかかっている、あるいは電流を無駄に捨てている、ということがおきがちな難しい問題です。
その他の回答 (1)
- inara1
- ベストアンサー率78% (652/834)
電源を再投入したときに同じLEDを光らせるには、電源を切る前にどのLEDを光らせていたかを記憶しておく機能が必要です。74HC4017(10進カウンタ)と74HC132(シュミット入力NAND)だけではその機能は実現できないと思います。具体的にどのような回路か添付できますか?
補足
このサイトの回路図を参考にしました。 http://bbradio.hp.infoseek.co.jp/4017_1/4017_1.html