このページの本文へ

驚愕の結果! アルカリ乾電池性能比較実験! 第9回

電池実験装置の全貌公開! リレーユニットの製作【ソフト編】

2009年09月29日 20時00分更新

文● 藤山哲人

  • この記事をはてなブックマークに追加
  • 本文印刷

制御用ソフトウェアのダウンロード

 通常はアプリケーションからプリンタポートを直接制御することはできないが、その抜け道を作ってくれたのがmag44さんの開発した「ioscm」と呼ばれる一連の関連ソフトウェア群だ。

mag44さんの開発したioscm関連ソフトがダウンロードできるページ

  ダウンロードページから、デバイスドライバのみ、Visual C++6.0から利用できるライブラリ、Visual Basic 6.0から利用できるライブラリに加え、表計算のExcelで制御するサンプルプログラムや、プログラミングしなくても動作を確認できる実行プログラムつきのサンプルまで用意されている。

 まずは手軽に動作確認できるLPTCheckをダウンロードしてみよう。圧縮ファイルを解凍すると、次のファイルが同梱されている。

Visual Basicで書かれたソースプログラムに加え、すぐに実行できるLPTCheck.exeが含まれている。OSによってはVisual Basicのランタイムを別途インストールする必要がある

 プリンタポートを直接制御するドライバに加え、Visual Basic 6.0のソースプログラムに、実行可能なプログラムも同梱されている。

 製作したリレーユニットをパラレルポートに接続して、ユニットの電源を投入。その後LPTCheck.exeを起動してほしい。

ベースアドレスがBIOSで確認したアドレスになっているかをチェックする

 画面左上にあるのが、プリンタポートのIOポートアドレスだ。これをBIOS画面で確認したアドレスにセットしよう。頭についている「0x」は16進数を表すものなので、もともと16進表記されているIOポートアドレスなので無視してかまわない。

プログラムを起動したら[I/O制御開始]ボタンを1回クリックする

 次に「IO制御」フレームに囲まれている[I/O制御開始]ボタンをクリックする。このボタンは、これからパラレルポートを使用するために各種の初期化を行なうボタンだ。プログラム起動時に1回クリックするだけでかまわない。

出力するデータは、16進数、10進数、2進数のいずれかで入力できる

 リレーのON/OFF状態を指定するのは、「データレジスタ」フレーム内にある[OUTPUT]ボタン横にあるテキストボックス。16進数表記で入力する場合は、左側のHEX欄(&hや0xのプリフィックスは省略可能)に、10進数で入力する場合は、中央のDEC欄に、2進数で入力する場合はBIN欄に入力する。

 ここでは直感的な2進数で入力してみよう。

BINのテキストボックスに1を8回入力する

 パラレルポートのデータは8ビットあるので、8桁の2進数を入力する必要がある(8桁未満を入力した場合は、上位に0を指定したとみなされる)。それぞれの桁に1を指定した場合はリレーがONになり、0を指定した場合はOFFになるという具合だ。

 ここではすべてのリレーをONにするので「11111111」(1を8桁)指定し、[OUTPUT]ボタンをクリックしよう。

データを出力すると、リレーユニットのリレーはすべてONになる

 出力してよいかの確認メッセージが表示され、[OK]をクリックするとリレーユニットのリレーが一斉にONになり、モニターのLEDが全部点灯するだろう。確認メッセージが邪魔な場合は、左下にある「OUT時に確認する」のチェックを外せばいい。

 今度は「00000000」を入力し[OUTPUT]ボタンをクリックすると、すべてのリレーがOFFになるのを確認できるだろう。

0を8個指定すると、リレーはすべてOFFになる

 また「00000001」を出力して、リレーユニットの一番右がONになるのか、一番左がONになるのかを確認しておくこと。接続によっては左右反転する場合がある。入力した値とリレーの順番が気になる場合は、リレーユニットの信号線の配線をやり直してほしい。

家のリレーユニットは、一番右の桁がリレーユニットの一番左のチャンネルに割り当てられている

 動作確認を終了したら[I/O制御終了]ボタンをクリックして、プログラムを終了しよう。

ステータスレジスタやコマンドレジスタって何?


 ここではデータレジスタのみを変更したが、プログラムではステータスレジスタの読み込み、コマンドレジスタの読み書きが可能になっている。これらはプリンタポートを制御しているLSI(8255)のモード切り替えなどを行なうものだ。

 プリンタポートを使ってさらに複雑な制御をやりたいという場合は、ネットなどで「8255 データシート」というキーワードで資料を探すといい。とはいえ、下手に値を変更すると動作が不安定になるので注意してほしい(再起動すれば元通りになる)。




(次ページへ続く)

カテゴリートップへ

この連載の記事

注目ニュース

ASCII倶楽部

ASCII.jpメール アキバマガジン

クルマ情報byASCII

ピックアップ