%indnt
%indent
*** [#l56b39d0]
###
#include <OneWire.h>
#include <DallasTemperature.h>
const int pHeat = 12; //Digital
OneWire oneWire(2);
DallasTemperature sensor(&oneWire);
void setup() {
Serial.begin(9600);
Serial.println("Begin OneWireTemprature");
sensor.begin();
delay(100);
Serial.print(" sensor.getDeviceCount ==> ");
Serial.println(sensor.getDeviceCount());
delay(100);
}
float gCurrent = 0;
float gTarget = 70;
float gFullPowere = gTarget - 10;
int gFreq = 1000;
void loop() {
sensor.requestTemperatures();
float vMesure = sensor.getTempCByIndex(0);
if (0 < vMesure && vMesure < 110) {
gCurrent = vMesure; // 異常値ガード
}
if (gTarget < gCurrent) {
Serial.print(gTarget );
Serial.print(",");
Serial.print(gCurrent);
Serial.print(",");
Serial.print(0);
Serial.println("");
digitalWrite(pHeat, LOW);
delay(gFreq);
}
else if (gCurrent < gFullPowere) {
Serial.print(gTarget );
Serial.print(",");
Serial.print(gCurrent);
Serial.print(",");
Serial.print(100);
Serial.println("");
digitalWrite(pHeat, HIGH);
delay(gFreq);
}
else {
float vDiff = gTarget - gCurrent;
float vDuty = vDiff / 10;
float vTimeHigh = vDuty * gFreq;
float vTimeLow = gFreq - vTimeHigh;
Serial.print(gTarget );
Serial.print(",");
Serial.print(gCurrent);
Serial.print(",");
Serial.print(vDuty * 100);
Serial.println("");
digitalWrite(pHeat, HIGH);
delay(vTimeHigh);
digitalWrite(pHeat, LOW);
delay(vTimeLow);
}
}
###