Arduino + CLCD-BOOSTER テスト開始

ArduinoにMicroFan製のシールド"CLCD-BOOSTER"を接続してテストを開始。

まずはなにあれ、MicroFanが公開しているサンプルスケッチを実行してみたのだが、LCDに何も表示されない…。Ethernet Sheildを取り外しても変わらず…。LCD表示だけに限定した最小限のコードだけで構成されるHello World!スケッチを書いて実行してみたが、やはりダメ…。

#include 

LiquidCrystal clcd(4, 3, 14, 15, 16, 17);

void setup()
{
  clcd.print("hello, world!"); // Print a message to the LCD.
}

void loop()
{
}

うーん、おそらくLCDの問題のようなので、とりあえず文字表示は置いておいて、CLCD-BOOSTERに搭載されている光センサと温度センサの正常稼働を確認するために、LCDへの文字出力だけではなく、Serialへの出力も10秒毎に出力するスケッチに修正してアップロードしてみた。

#include 
#include 

#define  VCC  5.1

#define  PHOTO_SENSOR  4  // アナログ4
#define  TEMP_SENSOR  5  // アナログ5

#define  RCSERVO1  9  // デジタル9 PWM
#define  RCSERVO2  10  // デジタル10  PWM

LiquidCrystal clcd(4, 2, 3, 14, 15, 16, 17); // D3

void setup()
{
  Serial.begin(9600);
  Serial.println("CLCD-BOOSTER TEST Sketch");

  clcd.begin(16, 2) ; // Arduino-0017以降は追加
  clcd.clear() ;
  clcd.setCursor(8,0) ;
  clcd.print("MicroFan");
  clcd.setCursor(4,1) ;
  clcd.print("CLCD-BOOSTER");
  
  delay(5000) ;  // タイトルクレジットを見てね
}

void loop()
{
  int v ;
  float temp ; // 温度の計算は実数で

  v = analogRead(PHOTO_SENSOR) ;
  Serial.print("Light Count:") ;
  Serial.println(v) ;
  clcd.setCursor(0,0) ;
  clcd.print("\261\266\331\273 ") ;  // アカルサ
  clcd.print(v) ;

  v = analogRead(TEMP_SENSOR) ;
  Serial.print("Temp Count:") ;
  Serial.println(v) ;
  clcd.setCursor(0,1) ;
  clcd.print("\265\335\304\336 ") ;  // オンド
  clcd.print(v) ;

  temp = VCC / 1024 * v ;  // 読み取った値を電圧に換算
  temp -= 0.4 ;  // 温度センサーの0度のオフセット:400mV
  temp /= 0.01953 ; // 1度あたり19.53mVの電圧増加
  clcd.setCursor(9,1) ;
  Serial.print("Temp:") ;  
  Serial.println(temp) ;
  clcd.setCursor(9,1) ;
  clcd.print(temp) ; // 小数点以下2桁まで出るみたいだけど精度的には意味はない
  clcd.print("\337C") ; // 度C

  delay(10000) ;
}

すると…

おー、Serialには出力されているから、ちゃんとセンサーは稼働している模様です。あとはLCDだなぁ…やっぱり表示されない…。とりあえずMicroFanに問い合わせ中です…。