From 01b74517d27b23e80918441d6a3538ae2fa173c6 Mon Sep 17 00:00:00 2001 From: Stephan Hadinger Date: Sat, 29 Jan 2022 12:45:26 +0100 Subject: [PATCH] Berry add H-bridge example --- tasmota/berry/modules/h-bridge.be | 28 ++++++++++++++++++++++++++++ 1 file changed, 28 insertions(+) create mode 100644 tasmota/berry/modules/h-bridge.be diff --git a/tasmota/berry/modules/h-bridge.be b/tasmota/berry/modules/h-bridge.be new file mode 100644 index 000000000..e68843bdb --- /dev/null +++ b/tasmota/berry/modules/h-bridge.be @@ -0,0 +1,28 @@ +# +# H_bridge class in Berry to pilot a H-bridge device +# + +class H_bridge + var gpio1, gpio2 + var max + + # init(phy_gpio1, phy_gpio2) - intialize H-bridge with the 2 GPIOs used to control it + def init(gpio1, gpio2) + self.gpio1 = gpio1 + self.gpio2 = gpio2 + self.max = 1023 # max value of duty + end + + # set the value of both PWM values + def set(v1, v2) + if v1 < 0 v1 = 0 end + if v2 < 0 v2 = 0 end + if v1 + v2 > self.max + raise "value_error", "the sum of duties must not exceed 100%" + end + + import gpio + gpio.set_pwm(self.gpio1, v1, 0) + gpio.set_pwm(self.gpio2, v2, v1) # dephase by value v1 + end +end