From 8729a8d91ba46c793c610c1afa7bf74812b15f64 Mon Sep 17 00:00:00 2001 From: Hrafnkell Eiriksson Date: Sat, 15 Jul 2017 23:31:01 +0000 Subject: [PATCH] Prevent glitching on heater Prevent glitching on heater by checking if heater should stay fully on or fully off during cycle. --- __init__.py | 15 +++++++++++---- 1 file changed, 11 insertions(+), 4 deletions(-) diff --git a/__init__.py b/__init__.py index 227e575..67e55c1 100644 --- a/__init__.py +++ b/__init__.py @@ -26,10 +26,17 @@ def run(self): heat_percent = pid.calc(self.get_temp(), self.get_target_temp()) heating_time = sampleTime * heat_percent / 100 wait_time = sampleTime - heating_time - self.heater_on(100) - self.sleep(heating_time) - self.heater_off() - self.sleep(wait_time) + if heating_time == sampleTime: + self.heater_on(100) + self.sleep(heating_time) + elif wait_time == sampleTime: + self.heater_off() + self.sleep(wait_time) + else: + self.heater_on(100) + self.sleep(heating_time) + self.heater_off() + self.sleep(wait_time) # Based on Arduino PID Library # See https://github.com/br3ttb/Arduino-PID-Library