WKNさんから教えてもらったCharlieplexingですが、ここを見ていたらちょっとアイデアを思い付いてしまいました、
これをどうしても確認してみたくなって作ってみました。
![](https://blogimg.goo.ne.jp/user_image/7a/3f/9b04b4c9767e0f1b431e865800a85839.jpg)
配線は従来とあまり変わらないのですが、気をつけないと間違ってしまいます。
![](https://blogimg.goo.ne.jp/user_image/63/3a/e29409df786025f0ebc2bf3ae4fae37c.jpg)
7セグメントLEDを1桁ずつ点けるためには、このようにダイオードを入れれば出来ます。回路図は小さいので分かりにくいと思いますが、雰囲気で見て下さい。
![](https://blogimg.goo.ne.jp/user_image/13/c7/c83e6762353d35c46cfaa8829f069b27.jpg)
![](https://blogimg.goo.ne.jp/user_image/44/83/981bc2ec7fd850240ff9b920142f442b.jpg)
ただ、AVRは1端子で20mAまでしか流せませんので、「8」と「1」では輝度が違ってくるはず。
上の写真では抵抗は180Ωなので、1セグメントに18mAくらい流れているはずなのですが、あまり分かりません。
「1」がわずかに明るく、「6」がわずかに暗い程度ですね。
このダイオードをトランジスタに替えるとこうなります。
![](https://blogimg.goo.ne.jp/user_image/1f/b4/66c87724e3586e6b24e836370c932f3e.jpg)
![](https://blogimg.goo.ne.jp/user_image/19/c4/057f30b6ac9411f006f77105cdd81ea8.jpg)
![](https://blogimg.goo.ne.jp/user_image/77/9a/c28bde93bffdf85d2349a0eba4ef8dff.jpg)
確かにこちらの方が均一に光っている様に見えます。
予想では、ダイオードではドライブしきれずに、もっと輝度ムラが出ると思ったのですが、残念。
でもトランジスタにすると効果が有ることは確認できました。
Charlieplexingによって、確かに配線を減らすことができますね。
DPを表示しなければ、8桁まで8本でいけます。
しかし、これは回路屋の発想では絶対に出てこないですね。というのは、制御をハードでやるには複雑すぎるからです。
でも、通常IOポートは8ビットなので、7セグだと1ビット余りますが、この1本を使うだけで8桁まで出来るのはなかなか良いかもしれません。
今回は、とりあえず実験のために1~8を表示するだけのソフトを組んだだけなので、実際のソフトがどうなるか分かりませんが、ドライバをうまく作れれば、この方法はアリかもしれません。
これをどうしても確認してみたくなって作ってみました。
![](https://blogimg.goo.ne.jp/user_image/7a/3f/9b04b4c9767e0f1b431e865800a85839.jpg)
配線は従来とあまり変わらないのですが、気をつけないと間違ってしまいます。
![](https://blogimg.goo.ne.jp/user_image/63/3a/e29409df786025f0ebc2bf3ae4fae37c.jpg)
7セグメントLEDを1桁ずつ点けるためには、このようにダイオードを入れれば出来ます。回路図は小さいので分かりにくいと思いますが、雰囲気で見て下さい。
![](https://blogimg.goo.ne.jp/user_image/13/c7/c83e6762353d35c46cfaa8829f069b27.jpg)
![](https://blogimg.goo.ne.jp/user_image/44/83/981bc2ec7fd850240ff9b920142f442b.jpg)
ただ、AVRは1端子で20mAまでしか流せませんので、「8」と「1」では輝度が違ってくるはず。
上の写真では抵抗は180Ωなので、1セグメントに18mAくらい流れているはずなのですが、あまり分かりません。
「1」がわずかに明るく、「6」がわずかに暗い程度ですね。
このダイオードをトランジスタに替えるとこうなります。
![](https://blogimg.goo.ne.jp/user_image/1f/b4/66c87724e3586e6b24e836370c932f3e.jpg)
![](https://blogimg.goo.ne.jp/user_image/19/c4/057f30b6ac9411f006f77105cdd81ea8.jpg)
![](https://blogimg.goo.ne.jp/user_image/77/9a/c28bde93bffdf85d2349a0eba4ef8dff.jpg)
確かにこちらの方が均一に光っている様に見えます。
予想では、ダイオードではドライブしきれずに、もっと輝度ムラが出ると思ったのですが、残念。
でもトランジスタにすると効果が有ることは確認できました。
Charlieplexingによって、確かに配線を減らすことができますね。
DPを表示しなければ、8桁まで8本でいけます。
しかし、これは回路屋の発想では絶対に出てこないですね。というのは、制御をハードでやるには複雑すぎるからです。
でも、通常IOポートは8ビットなので、7セグだと1ビット余りますが、この1本を使うだけで8桁まで出来るのはなかなか良いかもしれません。
今回は、とりあえず実験のために1~8を表示するだけのソフトを組んだだけなので、実際のソフトがどうなるか分かりませんが、ドライバをうまく作れれば、この方法はアリかもしれません。
私もたくさん配線したので、ポリウレタン線のハンダ付けに慣れてしまいました。昔の勘が戻りました。
トランジスタはエミッタフォロアなので、ベース抵抗は無くても大丈夫です。
1桁1~2ms程度にしないとちらつきますよ。
カソードコモンの7セグだとPNPになりますね。
PNPだとコレクタはGNDになりますが、NPNだと5V以上の電源につなげる事が出来るので、私はNPNの方が良いのではないかと思っています。
それを確かめるために作りましたが、この記事を見ていたら作らなかったかも。
また、chipiplexingの記事では、「Charlieplexingでは同時駆動は1個しかできず、2個のLEDを同時に点灯できるのはChipiplexing方式特有のもの」と言っていますが、それは間違いです。
Charlieplexingの7segの駆動の説明を見ると、ちゃんと7つのセグメントを同時に駆動する方法が書いてあります。
ただ、MAXIMのデバイスのドライブ能力が高く、しかも電流源を持っているので、外付けの抵抗やトランジスタが要らないため、回路図だけを見るとそれが分かりにくいかもしれません。