2024 04,24 18:11 |
|
× [PR]上記の広告は3ヶ月以上新規記事投稿のないブログに表示されています。新しい記事を書く事で広告が消えます。 |
|
2010 08,29 23:21 |
|
今日は久々の休暇。昼近くまで寝てました。休みっていいですねぇ。
午後は、入社試験や免許証取るときのために新しいメガネを買いに行きました。 最近、遠くのものが見えなくなってきて、日常使用は別にいいんですが、特別な時にはもうちょっと視力が良くないとまずいので買うことに。 弐萬圓堂に行き、茶色のメガネを購入。出来上がりは来週になるそうな。 10月に行われる文化祭で部展の前にでも置いておこうかなぁと考えている電光掲示板の製作のため、ドットマトリクスLEDの動作テストをしてみました。 使ったLEDは秋月電子通商のTOM-1588BHという8×8のもの。 駆動方法は、アノード側はNJU3714というシフトレジスタを使用し、カソード側は74HC138という3-8デコーダーを使用。 動作させている写真はこちら↓ 工業高校の「工」の字を表示させているところ。◯◯工業高校へようこそ!!てな感じに表示させている。 ソースファイルは・・・うちの学校名入ってるんで駆動部分のプログラムだけ掲載。 コンパイラはCCS-C compiler DATというのは、 DAT1・・・138のA端子 DAT2・・・138のB端子 DAT3・・・138のC端子 上のアノード側がNJU3714への信号 下のカソード側が74HC138への信号 sig[8]という配列を用意し、sig[0]が一番左側、sig[7]が一番右側という感じに、配列に入れる値で縦の列を制御しています。 横列は74138を使用してダイナミック点灯。 output_low(G1); //アノード側 output_high(STB); for(i=0;i<8;i++){ output_low(CLK); if((sig[j] >> i) & 0x01){ //縦列 output_high(DATA); }else{ output_low(DATA); } output_high(CLK); } output_low(STB); //カソード側 //A端子の判断 if(j%2){ //奇数か偶数か output_high(DAT1); } else{ output_low(DAT1); } //C端子の判断 if(j<=3){ //3以下かどうか output_low(DAT3); //B端子の判断 if(j<=1){ //1以下かどうか output_low(DAT2); } else{ output_high(DAT2); } } else{ output_high(DAT3); //B端子の判断 if(j<=5){ //5以下かどうか output_low(DAT2); } else{ output_high(DAT2); } } output_high(G1); j++; if(j>7){ j=0; } 製作中に困ったのが次の列へのLEDの干渉。 表示の切り替えのタイミングを誤り、次の列に前の列の表示が写ってしまうということになっていまいました。 そこで、G1の端子を制御してアノード側の出力切り替えの際はカソード側は全てHI状態になるようにしてみました。 他には、付属で付いてきた資料とピン配置が違ったこと。最初、資料の通りに配線するとちゃんと全部点灯せず・・・。自力で端子を調べてみると下の写真のような感じに。 殴り書きなので、綺麗ではないです。 この配線でもう一度動作させたらちゃんと光りました。・・・ややこしいなぁ。 ちなみに、回路図です。制作後にぱぱっと書いたものなので、汚いうえに間違ってるかも。参考程度にどうぞ。 今度は何個かマトリクスLEDを組み合わせての表示をしてみようかなと思ったり。 PR |
|
コメント |
コメント投稿 |
|
trackback |
トラックバックURL |
忍者ブログ [PR] |