wxPython PWM с использованием ползунка

У меня есть базовые знания wxPython.

Я пытаюсь получить значение ползунка и установить его как значение широтно-импульсной модуляции светодиода.

Это код, который у меня есть до сих пор:

  • Слайдер

    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: требуется число с плавающей запятой», что, как я полагаю, означает, что ему нужна плавающая точка.

Однако я не уверен, что код в любом случае близок к правильному.


person user3564614    schedule 23.04.2014    source источник
comment
Это сообщение об ошибке должно было также включать обратную связь, указывающую, в какой строке происходит ошибка. Можете ли вы определить, в какой строке возникает ошибка?   -  person Robᵩ    schedule 23.04.2014


Ответы (1)


Кажется, вы передаете дескриптор окна ползунка. Вы хотите передать число.

Попробуй это:

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)
person Robᵩ    schedule 23.04.2014
comment
В качестве альтернативы, если вы хотели, чтобы ползунок контролировал рабочий цикл, freq = 60 и duty_cycle = self.slider.GetValue(). - person Robᵩ; 23.04.2014
comment
Спасибо за ваш ответ. Код не возвращает ошибку, как раньше, поэтому это улучшение, однако на самом деле он не управляет яркостью светодиода, а когда ползунок отпускается, светодиод просто выключается: с - person user3564614; 28.04.2014