Browse Source

Add current offset for POWER_MONITOR sensor (#18600)

cccc 3 years ago
parent
commit
b64113411c
No account linked to committer's email address
2 changed files with 2 additions and 1 deletions
  1. 1
    0
      Marlin/Configuration_adv.h
  2. 1
    1
      Marlin/src/feature/power_monitor.h

+ 1
- 0
Marlin/Configuration_adv.h View File

@@ -3029,6 +3029,7 @@
3029 3029
 //#define POWER_MONITOR_VOLTAGE   // Monitor the system voltage
3030 3030
 #if EITHER(POWER_MONITOR_CURRENT, POWER_MONITOR_VOLTAGE)
3031 3031
   #define POWER_MONITOR_VOLTS_PER_AMP   0.05000   // Input voltage to the MCU analog pin per amp  - DO NOT apply more than ADC_VREF!
3032
+  #define POWER_MONITOR_CURRENT_OFFSET -1         // Offset value for current sensors with linear function output  
3032 3033
   #define POWER_MONITOR_VOLTS_PER_VOLT  0.11786   // Input voltage to the MCU analog pin per volt - DO NOT apply more than ADC_VREF!
3033 3034
   #define POWER_MONITOR_FIXED_VOLTAGE   13.6      // Voltage for a current sensor with no voltage sensor (for power display)
3034 3035
 #endif

+ 1
- 1
Marlin/src/feature/power_monitor.h View File

@@ -35,7 +35,7 @@ struct pm_lpf_t {
35 35
     filter_buf = filter_buf - (filter_buf >> K_VALUE) + (uint32_t(sample) << K_SCALE);
36 36
   }
37 37
   void capture() {
38
-    value = filter_buf * (SCALE * (1.0f / (1UL << (PM_K_VALUE + PM_K_SCALE))));
38
+    value = filter_buf * (SCALE * (1.0f / (1UL << (PM_K_VALUE + PM_K_SCALE)))) + (POWER_MONITOR_CURRENT_OFFSET);
39 39
   }
40 40
   void reset(uint16_t reset_value = 0) {
41 41
     filter_buf = uint32_t(reset_value) << (K_VALUE + K_SCALE);

Loading…
Cancel
Save