フォト
無料ブログはココログ

MyList

« HDSP0760(2) <Hexadecimalじゃない> | トップページ | トットひとり »

2015年9月24日 (木)

IchigoJam(5) <HDSP0670を使った4digit clock>

 ヤフオクでLEDディスプレイ(HDSP0670)を手に入れた。 HDSP0760(2) (2015/09/24)HDSP0760 (2015/09/22)   16進数表示と勘違いしていたので、何かに使わないと死蔵してしまいそうだ。

 このディスプレイがあると、IchigoJamでも簡単に時計が作れると思い立ち、さっそく作ってみた。

 IchigoJamの出力は、OUT1~OUT6、LEDの7つしかない。HDSP0760は、Latch+Decoder+Driver+LEDなので、表示データを保持するためにLE(LatchEnable)入力が必要だ。LEの制御にLEDを使い、OUT1~OUT4を表示する数値に使うと残りは、OUT5、OUT6だ。
OUT5、OUT6で4桁を制御しようとすると、2to4のデコーダー(74139)が必要だ。

 HDSP0760は5V-TTLでIchigoJamに使用されているLPC1114FN28は3.3V-CMOSなので、IchigoJam→HDSP0760方向は直結できる。2-4Decoder(74139)は、入力レベルがTTLの74HCT139を使用する。

Ichigoclock4

 ブレッドボードで作ってみた。↓
4digitclock
リンク先にAVI (4DigitClock.avi  1008.8K) (1秒でカウントするモードで撮影)

 IchigoJamのTICK()は1/60sなので0~#7FFFは9分でカウントアップする。ちょっと工夫が必要だ。(100、130、135行)
 時刻設定はIchigoJamに乗っているSW(BTN)を使った。1個のSWで時刻を合わせるのは大変だ。(600~710行)

  • 1秒押す         →1分増
  • 3秒以上押す →早送りその後自動的に増加
  • 17秒以上押す→プログラム終了

のようにした。(600~710行)

1 '4Digit Clock
2 'Aug.2015/Yoshi / Ver2.0
3 VIDEO 0: CLV: LED 1
4 V=3600: F=0
5 H=23: M=50
6 N=V: D=V
7 GOSUB 500: GOSUB 520: CLT

95 'Main loop
100 IF W=1 AND N<TICK() GOTO 100
110  IF BTN()=1 THEN GOSUB 600 ELSE G=0
120  T=TICK(): IF T<N GOTO 110
130  N=N+D: IF N<0 N=N&#7FFF
140  IF N<T THEN W=1 ELSE W=0
150  M=M+B: IF M<60 GOTO 180
160   M=0: H=H+1: IF 24<=H H=0
170   GOSUB 520
180   GOSUB 500
190 IF F=1 GOSUB 900
200 GOTO 100

495 'Disp LED
500 OUT M%10: LED 0: LED 1
510 OUT #10+M/10: LED 0: LED 1: RETURN
520 OUT #20+H%10: LED 0: LED 1
530 OUT #30+H/10: LED 0: LED 1: RETURN

595 'Push Button
600 IF G=0 G=T
610 IF 1000+G<T END
620 IF T<240+G GOTO 640
630  D=40: N=TICK(): GOTO 710
640 IF T<>30+G GOTO 710
650 IF D=40 GOTO 700
660  M=M+1: IF M<60 GOTO 690
670   M=0: H=H+1: IF 24<=H H=0
680   GOSUB 520
690  GOSUB 500
700 D=V: N=TICK()+D
710 RETURN

895 'Send Serial
900 [0]=M%10: [1]=M/10:
910 [2]=H%10: [3]=H/10:
920 ? CHR$(13); [3]; [2]; ":"; [1]; [0];
930 RETURN

6時間で1分くらい進む。このIchigoJamそっくりさんはX'tal付きなんだけどなあ。

1日で4分くらい進んでいたので、4/60*24=1/360余分にカウントするようにした(D=3600→D=3610)日差+20秒になった。(2015/09/27追記)


娘に見せると、毎度のことだけど、
  娘  :「なに作ってるの?」
σ^^):「時計」
  娘  :「時計作ってどうするの?」
σ^^):「時間を見る」
  娘  :「時計って1個あればいいじゃん」
σ^^):「うん~...」



最近の投稿】【最近のCPUボード】【最近のIchigoJam】【2017の投稿】【2016の投稿】【2015の投稿

« HDSP0760(2) <Hexadecimalじゃない> | トップページ | トットひとり »

CPUボード」カテゴリの記事

IchigoJam」カテゴリの記事

プログラミング」カテゴリの記事

コメント

IchigoJamで16時間を計測しようとしてたんですが、yoshiさんが書かれているように6分で約3秒進んでしまいました。WAIT 60 で1秒をカウントしていたのをWAIT 3610 の1分でやってみます、参考になりました。ありがとうございます。

はじめまして、コメントをいただき、facebook から移動してきました。
WAIT 60 からWAIT 3610 に変更し、実行してみます。非常に参考になりました、ありがとうございました。

はじめまして
お役に立てて何よりです。

コメントを書く

コメントは記事投稿者が公開するまで表示されません。

(ウェブ上には掲載しません)

トラックバック


この記事へのトラックバック一覧です: IchigoJam(5) <HDSP0670を使った4digit clock>:

« HDSP0760(2) <Hexadecimalじゃない> | トップページ | トットひとり »