const int thermistorPin = A3; // Utiliser la broche 26 comme exemple const float refResistance = 10000.0; // Résistance de référence en ohms const float refVoltage = 3.3; // Tension de référence en volts const float refTemperature = 25.0; // Température de référence en degrés Celsius const float betaValue = 3750.0; // Valeur beta du thermistor int pwmValue = 0; // Valeur par défaut pour les MOSFETs const int mosfetPin1 = D0; // Broche de contrôle du MOSFET const int mosfetPin2 = D1; // Broche de contrôle du MOSFET const int pwmFrequency = 15000; // Fréquence PWM en Hz (ajustable selon les besoins) void setup() { Serial.begin(9600); // Initialiser la communication série pinMode(mosfetPin1, OUTPUT); // Définir la broche de contrôle du MOSFET en sortie pinMode(mosfetPin2, OUTPUT); } void loop() { int rawValue = analogRead(thermistorPin); // Lire la valeur analogique du thermistor float voltage = rawValue * refVoltage / 1023.0; // Convertir la valeur lue en tension float resistance = refResistance * (refVoltage / voltage - 1.0); // Calculer la résistance du thermistor float temperature = 1.0 / ((log(resistance / refResistance) / betaValue) + (1.0 / (refTemperature + 273.15))) - 273.15; // Calculer la température en degrés Celsius Serial.print("Température : "); Serial.print(temperature); Serial.println(" °C"); if (temperature <= 25) { pwmValue = 0; // Ventilateurs éteints en dessous de 25°C } else if (temperature >= 35) { pwmValue = 250; // Ventilateurs à puissance maximale au-dessus de 35°C } else { // Interpolation linéaire entre 25°C et 35°C pwmValue = map(temperature, 25, 35, 100, 250); } analogWrite(mosfetPin1, pwmValue); analogWrite(mosfetPin2, pwmValue); delay(1000); // Délai de 1 seconde }