Home‎ > ‎これまでの成果物‎ > ‎制御班‎ > ‎回路,基板紹介‎ > ‎

32×16bit マトリクスLED

2015/02/21 6:56 に ユーザー不明 が投稿
みなさん、お久しぶりです。もうすぐ2回生の冨永です。
今回、僕が取り組んでいるのは、日本橋のデジットさんで販売されていた「AD501-C」をArduinoを用いて制御することです。
AD501にはRohmのBD7851FPが搭載されており、端子は10個存在し名称は「VCC、SIN_1、SIN_2、SIN_3、CLOCK、LATCH、ENABLE、VLED、GND、GND」です。Arduinoにそのまま連結できる基板も販売されていますが、自作で基板を制作しました。
プログラムの大まかな内容といたしましては、以下に示す通りです。

・#defineを用いてAD501のピン番号をArduinoのデジタルピン番号と結びつけるために定義します
・pinMode関数を用いて出力ピン設定します
・ENABLEがLOW出力の時にディスプレイに表示、LATCHがLOW出力の時に文字データを格納、これらに留意してdigitalWrite関数を用います
・AD501のSIN_1、SIN_2、SIN_3、CLOCK、LATCH、ENABLEピンの制御を考えるためにこれらの変数をint宣言しておきます。
(int col, int row_a, int row_b)colは行(横方向)、rowは列(縦方向)です。row_aはカラムA、row_bはカラムBのことです。
colはSIN_1、row_aはSIN_2、row_bはSIN_3に対応しております。
・回路図をもとに、電流の流す方向(LEDを光らせたいのでアノードからカソードの向き)が分かるので、出力の仕方が決まります。
row_a、row_bともにアノード、colはカソードです。LEDを光らせるためにはrowが1(HIGH)ならばcolが0(LOW)となるようにシフト演算子を用います。
・表示したい文字の16×16bitのドット(1:光らせたい部分,0:光らせない部分)をswitch文に格納しておきます。
・先のswitch文内の変数と対応するように、文字を出力させるための関数を生成します。(表示させたい文字のパターン、x座標、y座標の3個の変数を用います)
・Arduino言語のloop()関数(C言語におけるmain関数)内で、countという変数を用いてfor文で制御します。(countの値によって表示させるパターンを変えるプログラム)

上記のp.16以降が大変役に立ちます。

Comments