Browse Source

Chamber Fan mode 3 (#21594)

Giuliano Zaro 4 years ago
parent
commit
7f56538602
No account linked to committer's email address
2 changed files with 6 additions and 1 deletions
  1. 4
    1
      Marlin/Configuration_adv.h
  2. 2
    0
      Marlin/src/module/temperature.cpp

+ 4
- 1
Marlin/Configuration_adv.h View File

163
 
163
 
164
   //#define CHAMBER_FAN               // Enable a fan on the chamber
164
   //#define CHAMBER_FAN               // Enable a fan on the chamber
165
   #if ENABLED(CHAMBER_FAN)
165
   #if ENABLED(CHAMBER_FAN)
166
-    #define CHAMBER_FAN_MODE 2        // Fan control mode: 0=Static; 1=Linear increase when temp is higher than target; 2=V-shaped curve.
166
+    #define CHAMBER_FAN_MODE 2        // Fan control mode: 0=Static; 1=Linear increase when temp is higher than target; 2=V-shaped curve; 3=similar to 1 but fan is always on.
167
     #if CHAMBER_FAN_MODE == 0
167
     #if CHAMBER_FAN_MODE == 0
168
       #define CHAMBER_FAN_BASE  255   // Chamber fan PWM (0-255)
168
       #define CHAMBER_FAN_BASE  255   // Chamber fan PWM (0-255)
169
     #elif CHAMBER_FAN_MODE == 1
169
     #elif CHAMBER_FAN_MODE == 1
172
     #elif CHAMBER_FAN_MODE == 2
172
     #elif CHAMBER_FAN_MODE == 2
173
       #define CHAMBER_FAN_BASE  128   // Minimum chamber fan PWM (0-255)
173
       #define CHAMBER_FAN_BASE  128   // Minimum chamber fan PWM (0-255)
174
       #define CHAMBER_FAN_FACTOR 25   // PWM increase per °C difference from target
174
       #define CHAMBER_FAN_FACTOR 25   // PWM increase per °C difference from target
175
+    #elif CHAMBER_FAN_MODE == 3
176
+      #define CHAMBER_FAN_BASE  128   // Base chamber fan PWM (0-255)
177
+      #define CHAMBER_FAN_FACTOR 25   // PWM increase per °C above target
175
     #endif
178
     #endif
176
   #endif
179
   #endif
177
 
180
 

+ 2
- 0
Marlin/src/module/temperature.cpp View File

1406
             fan_chamber_pwm = (CHAMBER_FAN_BASE) + (CHAMBER_FAN_FACTOR) * ABS(temp_chamber.celsius - temp_chamber.target);
1406
             fan_chamber_pwm = (CHAMBER_FAN_BASE) + (CHAMBER_FAN_FACTOR) * ABS(temp_chamber.celsius - temp_chamber.target);
1407
             if (temp_chamber.soft_pwm_amount)
1407
             if (temp_chamber.soft_pwm_amount)
1408
               fan_chamber_pwm += (CHAMBER_FAN_FACTOR) * 2;
1408
               fan_chamber_pwm += (CHAMBER_FAN_FACTOR) * 2;
1409
+          #elif CHAMBER_FAN_MODE == 3
1410
+            fan_chamber_pwm = CHAMBER_FAN_BASE + _MAX((CHAMBER_FAN_FACTOR) * (temp_chamber.celsius - temp_chamber.target), 0);
1409
           #endif
1411
           #endif
1410
           NOMORE(fan_chamber_pwm, 225);
1412
           NOMORE(fan_chamber_pwm, 225);
1411
           set_fan_speed(2, fan_chamber_pwm); // TODO: instead of fan 2, set to chamber fan
1413
           set_fan_speed(2, fan_chamber_pwm); // TODO: instead of fan 2, set to chamber fan

Loading…
Cancel
Save