Stap 6: De hele Code (downloadbare hieronder.)
Een analoge ingang uit een potentiometer neemt en gebruikt dat
Als de gewenste temperatuur cutoffs.
Ventilator en kachel worden beheerst door afzonderlijke potentiometers
Hoewel hun modi (hoog, gemiddeld, laag) worden gecontroleerd
aan de apparaat-kant.
Drempels vertegenwoordigen de gewenste temperatuur die we willen
de huidige temperatuur toewerken.
Ventilator kan alleen worden aangepast van 65 tot 85 graden Fahrenheit
Kachel kan worden aangepast van 55 tot 75 graden Fahrenheit.
#include "Wire.h"
draad bibliotheek
#define adres 0x4a
#define baudrate 9600
baudrate voor communicatie
byte val = 0;
int fanAnalog = A0;
int heaterAnalog = a1 worden verkregen;
int fanDigit = 0;
int heaterDigit = 0;
int fanThreshold = 0;
int heaterThreshold = 0;
initialiseren en het opzetten van variabelen
VOID Setup
{
Wire.begin();
Serial.begin(baudrate);
pinMode (13, OUTPUT);
pinMode (4, OUTPUT);
}
void loop
{
fanDigit = analogRead (fanAnalog) / 4;
heaterDigit = analogRead (heaterAnalog) / 4;
fanThreshold = 65 + fanDigit * 20/255;
heaterThreshold = 55 + heaterDigit * 20/255;
Vertelt ons bij welke temperatuur dingen zal of zal niet gebeuren.
Serial.Print ("temperatuur in Fahrenheit");
Serial.Print("\t");
Serial.Print ("Fan drempel Temp");
Serial.Print("\t");
Serial.Print ("kachel drempel Temp");
Serial.println("");
int de temperatuur;
int temperatureF;
temperatuur in een byte
initialiseren van Fahrenheit temperatuur
Wire.beginTransmission(address);
de overdracht starten
Wire.write(val);
Wire.requestFrom (adres, 1);
Als (Wire.available()) {}
temperatuur = Wire.read();
temperatureF = temperatuur * 9 / 5 + 32; worden geconverteerd naar Fahrenheit. Ja, ik ben Amerikaan.
if(temperatureF>fanThreshold) {}
digitalWrite (13, hoge); Ventilator ingeschakeld als de temperatuur hoger is dan de drempel
}
else {}
digitalWrite (13, laag); Verandert of houdt ventilator uitgeschakeld
}
if(temperatureF<heaterThreshold) {}
digitalWrite (4, HIGH); Draait op de kachel is temperatuur lager is dan de drempel
}
else {}
digitalWrite (4, laag); Kachel wordt uitgeschakeld
}
Serial.Print ("\t");
Serial.Print(temperatureF);
}
else {}
Serial.Print("---");
}
Serial.Print("\t");
Serial.Print("\t");
Serial.Print("\t");
Serial.Print ("\t");
Serial.Print(fanThreshold);
Serial.Print("\t");
Serial.Print("\t");
Serial.Print ("\t");
Serial.Print(heaterThreshold);
Serial.println("");
Prenten uit de waarden voor huidige temperatuur, dan beide drempelwaarden.
Veel van de opmaak
delay(5000);
}