自作したI2Cモジュールなどを紹介していきます。 |
回路,基板紹介
32×16bit マトリクスLED
みなさん、お久しぶりです。もうすぐ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以降が大変役に立ちます。 |
1-1 of 1