2014-04-23 3 views
0

J'ai des connaissances de base en wxPython.wxPython PWM en utilisant le curseur

J'essaie d'obtenir la valeur du curseur et de définir cette valeur comme la valeur de la modulation de largeur d'impulsion d'une LED.

Ceci est le code que j'ai jusqu'à présent:

  • curseur

    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) 
    
  • Fonction

    def OnSlide1(self,event): 
        PWM_VALUE = event.GetEventObject() 
        p = GPIO.PWM(11, PWM_VALUE) 
        p.start(0) 
    

Ce retour "TypeError: nécessite un flotteur" qui Je crois que cela signifie qu'il a besoin d'un fl point de flottaison.

Cependant, je ne suis pas sûr si le code est proche d'être correct de toute façon.

+0

Ce message d'erreur devrait avoir également inclus un trackback, qui indique sur quelle ligne l'erreur est INTERVENUES. Pouvez-vous identifier sur quelle ligne l'erreur se produit? –

Répondre

0

Vous semblez passer la poignée de la fenêtre du curseur. Vous voulez passer un numéro.

Essayez ceci:

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) 
+0

Alternativement, si vous avez voulu que le curseur contrôle le cycle de travail, 'freq = 60' et' duty_cycle = self.slider.GetValue() '. –

+0

Merci pour votre réponse. Le code ne renvoie pas l'erreur comme précédemment, donc c'est une amélioration, mais ne contrôle pas réellement la luminosité de la LED, mais plutôt quand le curseur est libéré, la LED est juste éteinte: s – user3564614

Questions connexes