[[FrontPage]]

#contents

2013/05/12からのアクセス回数 &counter;


** One Wire LCD [#p207871b]
Arduino in Actionの6章で紹介されている1本線で動作するLCDをPICで作りました。
Arduino in Actionの6章で紹介されている1本線で動作するLCDをPIC1684Aで作りました。

オリジナルは、Sparkfuncの
[[Serial Enabled LCD Kit>https://www.sparkfun.com/products/10097]]
です。

&ref(OneWireLCD.png);


** 参考にしたサイト [#q74fd4fe]
手本にしたのは、以下のURLです。

[[1ピンで液晶ディスプレイを制御>http://homepage3.nifty.com/mitt/pic/pic6_07.html]]

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

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

&ref(RS232C_protocol.JPG);

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


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

- &ref(OneWireLCD.zip);


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


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

[[はじめてのPIC>http://sky.geocities.jp/home_iwamoto/]] 


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

#pre{{

#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);
}
}}


** コメント [#v7ee1d35]
#vote(おもしろかった,そうでもない,わかりずらい)

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


トップ   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS
SmartDoc