Étape 6: Le Code de l’éclairage
Ces valeurs "pulsé" (en temps et hors du temps) sont appelées un PWM Duty Cycle, donc la fonction Python, nous allons utiliser pour définir les valeurs RVB est '. ChangeDutyCycle()'.
# Update the hue with R G B values def updateHue(R, G, B): rVal = 100 - (R/255.0)*100 # Will have to change these values depending on gVal = 100 - (G/255.0)*100 # on whether your LED has a common cathode or bVal = 100 - (B/255.0)*100 # common anode. This code is for common anode. print "rgb(%.2f, %.2f, %.2f)" % (rVal, gVal, bVal) RED.ChangeDutyCycle(rVal) GREEN.ChangeDutyCycle(gVal) BLUE.ChangeDutyCycle(bVal)
Puisque notre PWM est pulsé à 100Hz, il faut lui donner une valeur comprise entre 0,0 et 100.0 pour son Cycle d’utilisation. 100,0 signifie que la goupille reste toujours élevé, 0,0, qu'il reste toujours faible. Comme quiconque a travaillé avec CSS sait, les valeurs de couleur sont souvent représentées par des valeurs Hex à 6 chiffres. Pour ajuster les valeurs RVB dans 6 chiffres hexagones, chaque couleur a en fait 2 ^ 8 = 256' choix possibles (0-255). Cela dit, nous devons maintenant trouver la valeur proportionnelle de notre RVB désiré sur 100. Par exemple, est une valeur donnée de R sur 100 '(R/255.0) * 100'.
Cette partie est particulièrement différente pour common anode et cathode commune LEDs !
Si vous utilisez une cathode commune (c'est-à-dire la goupille longue est reliée à la terre), vous devez utiliser le code "rval pointe = (R/255.0) * 100'. Toutefois, si vous utilisez une anode commune (5V à longue tige), comme moi, vous aurez besoin d’utiliser ' rval pointe = 100 - (R/255.0) * 100'
rVal = (R/255.0)*100 # Common Cathode (Ground) rVal = 100 - (R/255.0)*100 # Common Anode (5V)
Pensez-y que ce passant, la terre est basse, 5V est élevé. Si la goupille longue va au sol, vous devrez les valeurs RVB d’aller haut et donner de la puissance LED. Si je veux la lumière rouge, je veux envoyer un « rval pointe » de 100,0. Si la goupille longue est connectée à la 5V, je suis effectivement résistant le 5V courant en envoyant des courants des broches GPIO. Si je désire la lumière anode commune rouge, je veux rval « pointe » de 0,0 (aucune résistance sur le rouge actuel) et une « gVal » et « bVal » de 100,0 pour résister à tous les deux de ces courants de couleur.