FrontPage

2013/05/12からのアクセス回数 1662

One Wire LCD

Arduino in Actionの6章で紹介されている1本線で動作するLCDをPIC16F84Aで作りました。

オリジナルは、Sparkfuncの Serial Enabled LCD Kit です。

OneWireLCD.png

参考にしたサイト

手本にしたのは、以下のURLです。

1ピンで液晶ディスプレイを制御

この例はRS232Cに似た独自のプロトコルで動作しているため、そのままではSparkfunの ライブラリが動作しません。

プロトコルの違い

RS232Cのプロトコルでは、スタートビットは、立ち下がりで、データもLSBから順に出力し、 ストップビットが立ち上がりになっています。

RS232C_protocol.JPG

オリジナルでは、転送速度も変えられるようになっていたのですが、ここでは9600bps固定にしています。

作成したPICのプロジェクト

PICのプロジェクトは、以下にまとめました。コンパイラーはXC8を使っているのですが、容量におさまらず PRO版の評価版で作成しているため、今後のデバッグが不可能です。(大切に使いましょう!)

PICのコンパイラーは癖が強く、特にOPTIONレジスターの設定には悩まされました。 XC8コンパイラーがインストールされたディレクトリのdocs/chipsに置かれたHTMLを参考にすると よいでしょう。

PICプログラミングについては、以下のURLが参考になりました。

はじめてのPIC

動作確認

動作確認用のスケッチは、以下のとおりです。動かすにはSparkfunのサイトにあるライブラリが必要です。

#include <SoftwareSerial.h>
#include <serLCD.h>
#include <serLCD.h>

#define RS_data 0x12
#define RS_cmd 0x11

#define txPin 12
serLCD myLcd(txPin);
int  count;
void setup()
{
  Serial.begin(9600);
  myLcd.clear();
}

void loop() {
  myLcd.home();
  delay(100);
  myLcd.print("count=");
  myLcd.print(count++);
  myLcd.setCursor(2,1);
  delay(100);
  myLcd.print("Hello"); 
  myLcd.print(" Arduino");
  delay(2000);
}

コメント

選択肢 投票
おもしろかった 1  
そうでもない 0  
わかりずらい 0  

皆様のご意見、ご希望をお待ちしております。


(Input image string)


添付ファイル: fileRS232C_protocol.JPG 276件 [詳細] fileOneWireLCD.zip 251件 [詳細] fileOneWireLCD.png 266件 [詳細]

トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2013-06-23 (日) 00:07:46 (1463d)
SmartDoc