Paso 3: código
Esta parte también es bastante autoexplicativo. Gran parte del código de termistor vino de aquí. He comentado el código para tratar de hacer más fácil de entender. La línea en negrita indica donde introducir sus valores de A, B y C para el termistor:#include < math.h >
int led1 = 7; Conjunto de los números de entrada de pin
int led2 = 8;
led3 int = 9;
led4 int = 10;
led5 int = 11;
led6 INT = 12;
doble termistor (int RawADC) {}
doble Temp;
Temp = log(((10240000/RawADC) - 10000));
Temp = 1 / (0.000760464581576 + (0.000231192417594 + (0.000000072965780 * Temp * Temp)) * Temp); Esta es la salida de la temperatura en Kelvin
Temp = Temp - 273.15; Convertir de Kelvin a Celsius
devolver a Temp;
} / / Función para convertir datos de voltaje termistor a temperatura en grados Celsius utilizando
la ecuación de Steinhart-Hart
void setup() {}
Serial.Begin(115200);
pinMode (led1, salida); Especificar pines como salidas
pinMode (led2, salida);
pinMode (led3, salida);
pinMode (led4, salida);
pinMode (led5, salida);
pinMode (led6, salida);
}
void loop() {}
int Temp = Thermistor(analogRead(0)); Establezca la variable de temperatura igual a la lectura del pin analógico 0
int tempdata [6]; Crear matriz en blanco
para (int i = 0; i < 6; i ++) {}
TempData [i] = (Temp >> i) y 1;
} / / Ciclo a través del número binario, ahorro cada lugar como una entrada en una matriz
Serial.println(int(Temp)); Mostrar la temperatura en el monitor serial
Si (tempdata [0] == 1) {}
digitalWrite (LED 1, HIGH);
} / / If/Else declaraciones recorrer el array con los dígitos binarios y enciende el LED si la entrada = 1 y dim el LED si la entrada = 0
Else {}
digitalWrite (LED 1, bajo);
}
Si (tempdata [1] == 1) {}
digitalWrite (led2, HIGH);
}
Else {}
digitalWrite (led2, LOW);
}
Si (tempdata [2] == 1) {}
digitalWrite (LED 3, alto);
}
Else {}
digitalWrite (LED 3, bajo);
}
Si (tempdata [3] == 1) {}
digitalWrite (led4, HIGH);
}
Else {}
digitalWrite (led4, LOW);
}
Si (tempdata [4] == 1) {}
digitalWrite (led5, HIGH);
}
Else {}
digitalWrite (led5, LOW);
}
Si (tempdata [5] == 1) {}
digitalWrite (led6, HIGH);
}
Else {}
digitalWrite (led6, LOW);
}
Delay(100); Espera 100 milisegundos
}