ディジタル時計を作った

By | 2015年9月23日

ARM Linuxもだいぶいじっていくつかできそうなことが貯まってきました。ということで、LEDも点灯できていることですしディジタル時計を作ってみました。

ネットワーク同期式ですので正確です。

ハードウェア

利用したハードウェアは以下の通りです

LEDは先のエントリで説明したI2C接続になっています。

ソフトウェア

プログラムはpythonで書きました。便利なモジュールが揃っている上に、インタープリタで試行錯誤しながら組めるのであっという間でした。やっつけですので特に説明は無し。

import smbus 
import time

i2c = smbus.SMBus(1)    # open the /dev/i2c-1 
address = 0x71        # address of 7seg display https://www.switch-science.com/catalog/1128/


while True: 
    now=time.strftime('%H%M%S')        # get time by 6 digit

    i2c.write_byte( address, 0x79 )        # set write cursor to digit 0 
    i2c.write_byte( address, 0x00 )

    if  now[0] == '0' :            # need zero suppress?    
        i2c.write_byte( address, ord(' ') )    # display blank 
    else: 
        i2c.write_byte( address, ord(now[0]) )    # display digit 
    i2c.write_byte( address, ord(now[1]) ) #h 
    i2c.write_byte( address, ord(now[2]) ) #m 
    i2c.write_byte( address, ord(now[3]) ) #m


    if now[5] in ['1','3','5','7','9']:    # blink the colon 
        # turn colon on 
        i2c.write_byte( address, 0x77 ) 
        i2c.write_byte( address, 0x10 ) 
    else: 
        # turn colon off 
        i2c.write_byte( address, 0x77 ) 
        i2c.write_byte( address, 0x00 )

    # sleep 0.1sec 
    time.sleep(0.1)

 

 

できあがり写真。

 

IMGP2137

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください