2013/05/12からのアクセス回数 4023
Arduino in Actionの6章で紹介されている1本線で動作するLCDをPIC1684Aで作りました。
オリジナルは、Sparkfuncの Serial Enabled LCD Kit です。
手本にしたのは、以下のURLです。
この例はRS232Cに似た独自のプロトコルで動作しているため、そのままではSparkfunの ライブラリが動作しません。
RS232Cのプロトコルでは、スタートビットは、立ち下がりで、データもLSBから順に出力し、 ストップビットが立ち上がりになっています。
オリジナルでは、転送速度も変えられるようになっていたのですが、ここでは9600bps固定にしています。
PICのプロジェクトは、以下にまとめました。コンパイラーはXC8を使っているのですが、容量におさまらず PRO版の評価版で作成しているため、今後のデバッグが不可能です。(大切に使いましょう!)
PICのコンパイラーは癖が強く、特にOPTIONレジスターの設定には悩まされました。 XC8コンパイラーがインストールされたディレクトリのdocs/chipsに置かれたHTMLを参考にすると よいでしょう。
PICプログラミングについては、以下のURLが参考になりました。
動作確認用のスケッチは、以下のとおりです。動かすには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);
}
皆様のご意見、ご希望をお待ちしております。