使用滑块的wxPython PWM

使用滑块的wxPython PWM,python,python-2.7,slider,wxpython,pwm,Python,Python 2.7,Slider,Wxpython,Pwm,我有基本的wxPython知识 我试图获得滑块值,并将其设置为LED脉宽调制的值 这是我目前掌握的代码: 滑块 slider = wx.Slider (panel, 100, 25, 1, 100, pos=(200,70), size=(250, -1), style= wx.SL_HORIZONTAL | wx.SL_AUTOTICKS | wx.SL_LABELS ) slider.SetTickFreq(5, 1) slider.SetBackgroundColour("light bl

我有基本的wxPython知识

我试图获得滑块值,并将其设置为LED脉宽调制的值

这是我目前掌握的代码:

滑块

slider = wx.Slider (panel, 100, 25, 1, 100, pos=(200,70), size=(250, -1), style= wx.SL_HORIZONTAL | wx.SL_AUTOTICKS | wx.SL_LABELS )
slider.SetTickFreq(5, 1)
slider.SetBackgroundColour("light blue")
self.Bind(wx.EVT_SCROLL_CHANGED, self.OnSlide1)
作用

def OnSlide1(self,event):
    PWM_VALUE = event.GetEventObject()
    p = GPIO.PWM(11, PWM_VALUE)
    p.start(0)
这将返回TypeError:需要一个浮点,我认为这意味着它需要一个浮点


但是,我不确定代码是否接近正确。

您似乎正在通过滑块的窗口句柄。你想传递一个号码

试试这个:

self.slider = wx.Slider(...)

# UNTESTED
def OnSlide1(self, event):
  freq = self.slider.GetValue()
  p = GPIO.PWM(11, freq)
  duty_cycle = 0
  p.start(duty_cycle)

该错误消息还应该包含一个trackback,它指示错误发生在哪一行。您能确定错误发生在哪一行吗?或者,如果您想让滑块控制占空比,请选择freq=60和duty_cycle=self.slider.GetValue。谢谢您的回答。该代码不会像以前一样返回错误,因此是一种改进,但实际上并不控制LED的亮度,而是在释放滑块时LED刚刚关闭:s