Paso 6: El código entero (descargable más abajo).
Tiene una entrada de un potenciómetro analógica y usa la
como los atajos de la temperatura deseada.
Ventilador y el calentador están controlados por potenciómetros independientes
Aunque están controlados sus modos (alta, media, baja)
en el dispositivo.
Los umbrales representan la temperatura a la que queremos
la temperatura actual hacia.
Ventilador sólo regulable de 65 a 85 grados Fahrenheit
Calentador regulable de 55 a 75 grados Fahrenheit.
#include "Wire.h"
Biblioteca de alambre
#define dirección 0x4a
#define baudrate 9600
velocidad en baudios para la comunicación
byte val = 0;
int fanAnalog = A0;
int heaterAnalog = A1;
int fanDigit = 0;
int heaterDigit = 0;
int fanThreshold = 0;
int heaterThreshold = 0;
inicializar y configurar variables
void setup()
{
Wire.Begin();
Serial.Begin(Baudrate);
pinMode (13, salida);
pinMode (4, salida);
}
void loop()
{
fanDigit = analogRead (fanAnalog) / 4;
heaterDigit = analogRead (heaterAnalog) / 4;
fanThreshold = 65 + fanDigit * 20/255;
heaterThreshold = 55 + heaterDigit * 20/255;
Nos dice en qué temperatura cosas va o no va a suceder.
Serial.Print ("temperatura en grados Fahrenheit");
Serial.Print("\t");
Serial.Print ("ventilador umbral Temp");
Serial.Print("\t");
Serial.Print ("calentador umbral Temp");
Serial.println("");
temperatura int;
int temperatureF;
temperatura en un byte
inicializar Fahrenheit temperatura
Wire.beginTransmission(address);
iniciar la transmisión
Wire.Write(Val);
Wire.requestFrom (dirección, 1);
Si (Wire.available()) {}
temperatura = Wire.read();
temperatureF = temperatura * 9 / 5 + 32; convierte Fahrenheit. Sí, soy americano.
if(temperatureF>fanThreshold) {}
digitalWrite (13, HIGH); Ventilador se enciende si la temperatura es superior al umbral
}
Else {}
digitalWrite (13, bajo); Se pone o mantiene el ventilador
}
if(temperatureF<heaterThreshold) {}
digitalWrite (4, alto); Calentador se enciende es que la temperatura es menor que
}
Else {}
digitalWrite (4, bajo); Apaga el calentador
}
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("");
Imprime los valores de temperatura actual, entonces ambos valores de umbral.
Lotes de formato
Delay(5000);
}