作ってます。
#include <LiquidCrystal.h>
int ledPin0 = 13; //LED signal
int alertPin = 8; //alert signal
int analogPin0 = 0; //LM35DZ input
int analogPin1 = 1; //Low limit input
int analogPin2 = 2; //High limit inputint val = 0; //input data from LM35DZ
int val1 = 0; //input data from Low limit dial
int val2 = 0; //input data from High limit dial
int vtemp = 0; //temp data
// LiquidCrystal display with:
// rs on pin 12
// rw on pin 11
// enable on pin 10
// d4, d5, d6, d7 on pins 5, 4, 3, 2
LiquidCrystal lcd(12, 11, 10, 5, 4, 3, 2);void setup()
{
pinMode(ledPin0, OUTPUT);
pinMode(alertPin, OUTPUT);
Serial.begin(9600);
lcd.clear();
}void loop()
{
val1 = analogRead(analogPin1); // Low limit ??????????????
val2 = analogRead(analogPin2); // High limit ??????????????
val = analogRead(analogPin0); // Analog?????????????????????
vtemp = (4.9*1000/1024)*val; //????????mV?????????
if (val1 > vtemp)
{
digitalWrite(alertPin, HIGH); // sets the alert on
digitalWrite(ledPin0, LOW); // sets the LED on
}
else
{
if (vtemp > val2)
{
digitalWrite(alertPin, HIGH); // sets the alert on
digitalWrite(ledPin0, LOW); // sets the LED on
}
else
{
digitalWrite(alertPin, LOW); // sets the alert off
digitalWrite(ledPin0, HIGH); // sets the LED on
}
}
DispLCD();
WriteSerial();
delay(1000);
}void DispLCD()
{
lcd.clear();
lcd.setCursor(0,0);
lcd.print("Now Temp = ");
lcd.print(vtemp);
lcd.setCursor(0,1);
lcd.print("Lo: ");
lcd.print(val1);
lcd.setCursor(9,1);
lcd.print("Hi: ");
lcd.print(val2);
}
void WriteSerial()
{
Serial.println("HELLO WORLD!");
}
とりあえず現在温度、設定温度(H/L)を液晶に表示して、それを越えるとブザーとLEDでお知らせする所まで出来ました。
あとはシリアルで同じような内容を送信してネットワーク経由で監視できるようにする予定。
ハードはこれから。
覚え書き。
LM35DZのピンアサインは印字面を見て左からVin, Vout, GNDの順。