14.Arduino+マイクロファンCLCD-BOOSTERの実験
(1)実験写真
(2)マイクロファンCLCD-BOOSTER回路図
(3) プログラム
#include <LiquidCrystal.h>
#include <Servo.h>
#define VCC 5.1 // あなたのボードの実測の電源電圧は?
#define PHOTO_SENSOR 4 // アナログ4
#define TEMP_SENSOR 5 // アナログ5
#define RCSERVO1 9 // デジタル9 PWM
#define RCSERVO2 10 // デジタル10 PWM
// JP3でR/WはGNDに落としています
LiquidCrystal clcd(4, 2, 3, 14, 15, 16, 17);
Servo rcservo ;
void setup()
{
clcd.begin(16, 2) ; // Arduino-0017以降は追加
clcd.clear() ;
clcd.setCursor(8,0) ;
clcd.print("MicroFan");
clcd.setCursor(4,1) ;
clcd.print("CLCD-BOOSTER");
rcservo.attach(RCSERVO1) ;
delay(5000) ; // タイトルクレジットを見てね
}
void loop()
{
int v ;
float temp ; // 温度の計算は実数で
clcd.clear() ;
v = analogRead(PHOTO_SENSOR) ;
clcd.setCursor(0,0) ;
clcd.print("\261\266\331\273 ") ; // アカルサ
clcd.print(v) ;
rcservo.write(map(v, 0, 1023, 20, 160)) ; // RCサーボを動かす
v = analogRead(TEMP_SENSOR) ;
clcd.setCursor(0,1) ;
clcd.print("\xb5\xdd\xc4\xde ") ; // オンド
clcd.print(v) ;
temp = VCC / 1024 * v ; // 読み取った値を電圧に換算
temp -= 0.4 ; // 温度センサーの0度のオフセット:400mV
temp /= 0.01953 ; // 1度あたり19.53mVの電圧増加
clcd.setCursor(9,1) ;
clcd.print(temp) ; // 小数点以下2桁まで出るみたいだけど精度的には意味はない
clcd.print("\337C") ; // 度C
delay(100) ;
}