スポンサーサイト
上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。
【--/--/-- --:--】 | スポンサー広告 | page top↑
Matrix LED で時計(2) ソース付き


 秋月電子通商で大型の赤色LEDドットマトリクス(8×8)38x38mm TOM-1588BH (http://akizukidenshi.com/catalog/g/gI-00963/) を100円で買ってきた。で、少しまともな時計にしてみようとして見たのだが、上手くいかなかった。あろうことかLEDに付属していたデーターシート(ムービーの背景に写っている)が違っていたのだ。ピンを一つ一つ当たって調べると、16のピンのうち、8つも違っている。
【データシート】
Col.: 1 .. 8
Pin No.: 13, 3, 4, 10, 6, 11, 15, 16
Row: 1 .. 8
Pin No.: 9, 14, 8, 12, 1, 7, 2, 5
となっていたが、実際は
Col.: 1 .. 8
Pin No.: 12, 3, 4, 15, 6, 14, 10, 9
Row: 1 .. 8
Pin No.: 16, 11, 8, 13, 1, 7, 2, 5
だったのだ。配線をし直して何とか表示できた。やれやれ

 さて、Rubyのプログラムだが、文字フォントを返すクラスを作成し、それで得たフォントを横に並べ、8Col.ずつずらして表示している。
ソースは以下に転載しますが、Rubyの言語仕様では変数や引数の型のチェックが厳格でない(というか引数もオブジェクト)ので、文字フォントの配列を返すメソッドの呼出では、.getFont("A")や、.getFont(a) のように、文字定数や数値変数を引数にすることができる。
 また、メソッドが返すフォントデータは、配列なのだが、最初の要素(font[0])には文字フォントの有効文字幅の数値、次の要素(font[1])には、36の要素をもつ配列すようにしている。要素の一部が二次元配列になるという変則的な多次元配列も使えるのだ。これは結構便利だけどバグを生みやすいかもしれないな。
【プログラムソースは続きに】
----------- 以下 Ruby プログラム本体
(フォントを返すクラスは文字データが長いので省略 ----------------
require 'date'
require 'funnel'
include Funnel
require 'matLEDFont'

$isAM = true

mat = MatrixLED.new
$dFont = MatLEDFont.new

def SetImg(f) ###### image data を後ろに付け加える(fontイメージは先頭が有効文字幅)
wk = $dFont.getFont(f)
for row in 0..7
for col in 0..wk[0]
$dotData[row]< 9)
wk = num / 10
SetImg(wk)
num = num - (wk * 10)
end
SetImg(num)
end

######## 本体 #########
10.times do
$dotData = []
for row in 0..7
$dotData[row] = []
end

SetImg("AllOFF") ## 先頭に非表示領域を作る

dt = DateTime.now

hh = dt.hour
if (hh > 12) then
hh = hh - 12
$isAM = false
else
$isAM = true
end

SetMatrix(hh)
SetImg("JI")
SetMatrix(dt.min)
SetImg("FUN")
SetMatrix(dt.sec)
if $isAM
SetImg("A")
else
SetImg("P")
end
SetImg("M")

######### 作成された image data 全体をスクロール表示させる

($dotData[0].length).times do
pixels = []
for i in 0..7
pixels.concat $dotData[i][0, 8]
a = $dotData[i].first
$dotData[i].shift
$dotData[i] << a
end
mat.scan_matrix(pixels)
sleep(0.1)
end

end
スポンサーサイト
【2009/11/29 20:42】 | Gainer関係 | トラックバック(0) | コメント(2) | page top↑
<<ニルヴァーナでインディアン・ディナー | ホーム | Gainer+マトリクスLEDで時刻を表示>>
コメント
ドットマトリックスLEDに関して
はじめまして、山岸と申します。

ホームページを見させていただきました。

この度、ご連絡させていただいたのは、tom-1588bh(ドットマトリックス)を譲っていただきたいというご相談です。

今、電光掲示板を作っていますが、tom-1588bh(ドットマトリックス)があと4つ足りません。

どの業者を調べても、廃盤のため売ってありません。

基板等はできているため、他のマトリックスLEDでは対応できません。

一つ300円くらいで4つ欲しいのですが、いかがでしょう。

当然、送料も負担します。

どうぞよろしくお願い致します。

山岸貴弘
【2012/03/03 20:38】 URL | 山岸 #-[ 編集] | page top↑
お譲りできません
私の所には、この1個しかありませんので、お譲りできません。(この1個も、足に直接ハンダ付けしてますし)
お役に立てず、申し訳ありません。
【2012/03/03 20:49】 URL | ynomura #-[ 編集] | page top↑
コメントの投稿














管理者にだけ表示を許可する

トラックバック
トラックバックURL
→http://ynomura.blog47.fc2.com/tb.php/655-dbefbf0d
この記事にトラックバックする(FC2ブログユーザー)
| ホーム |
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。