Bonjour à tous
J’ai besoin de piloter un ESC PWM qui alimente un ventilateur.
J’ai trouvé un code qui fonctionne avec un capteur de température DS18B20.
Voici le code qui fonctionne avec le DS18B20
Je souhaiterai obtenir le même résultat avec un capteur MLX90614 en utilisant que le signal température ambiante.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49 #include <OneWire.h> #include <DallasTemperature.h> #define ONE_WIRE_BUS 2 OneWire oneWire(ONE_WIRE_BUS); DallasTemperature sensors(&oneWire); int MIN_TEMP = 16; int MAX_TEMP = 28; void setup() { pinMode(9,OUTPUT); Serial.begin(9600); sensors.begin(); } void loop() { float temperature = getTemperature(); int voltage = temperatureToPWM(temperature); analogWrite(9,voltage); delay(500); } float getTemperature() { float temperature =0; sensors.requestTemperatures(); // Send the command to get temperatures temperature = sensors.getTempCByIndex(0); //Serial.println(temperature); //Serial.print("PWM."); //analogWrite(ledPin, tempDur); //Serial.print("temperature."); return temperature; } int temperatureToPWM(float temperature) { float temp=0; float voltage = 0; temp = temperature*10; voltage = map(temp,MIN_TEMP*10,MAX_TEMP*10,0,250); return voltage; }
Voici le code que j’ai modifié qui ne fonctionne pas pour l’instant.
Que dois-je modifier sur mon code ?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74 #include <SPI.h> #include <Wire.h> #include <Adafruit_GFX.h> #include <Adafruit_MLX90614.h> #include <OneWire.h> //#include <DallasTemperature.h> //#define ONE_WIRE_BUS 2 //OneWire oneWire(ONE_WIRE_BUS); //DallasTemperature sensors(&oneWire); Adafruit_MLX90614 mlx = Adafruit_MLX90614(); int MIN_TEMP = 16; int MAX_TEMP = 28; void setup() { pinMode(9,OUTPUT); Serial.begin(9600); mlx.begin(); //Serial.println("Adafruit MLX90614 test"); //sensors.begin(); } void loop() { //float temperature = getTemperature(); float temperature = mlx.readObjectTempC(); //float celsius = mlx.readObjectTempC(); int voltage = temperatureToPWM(temperature); //int voltage = mlx.readObjectTempC(temperature); analogWrite(9,voltage); //analogWrite(9,); delay(500); } float getTemperature() { float temperature =0; // sensors.requestTemperatures(); // Send the command to get temperatures // temperature = sensors.getTempCByIndex(0); Serial.println(temperature); Serial.print("PWM."); //analogWrite(ledPin, tempDur); //Serial.printin(tempDur); return temperature; } int temperatureToPWM(float temperature) { float temp=0; float voltage = 0; temp = temperature*10; voltage = map(temp,MIN_TEMP*10,MAX_TEMP*10,0,250); return voltage; }
Merci pour votre aide
Partager