Étape 6: Écrire (ou copier) le programme
Vous pouvez écrire vos propres programmes pour appliquer différents effets visuels pour la LED RGB, mais si vous êtes débutant avec la programmation de microcontrôleur il est plus commode de commencer par un exemple. Par exemple, vous pouvez copypaste le code ci-dessous dans la fenêtre de l’IDE.Ce qui est cool à propos de ce code, c’est qu’il pousse RGB LED et réduit la luminosité indépendamment de toutes les couleurs. Typiquement ceci est réalisé à l’aide de PWM (Pulse Width Modulation) et la plupart des microcontrôleurs ont un matériel spécial pour produire le signal PWM. PICAXE-08 a également cette capacité, mais il est uniquement disponible sur un seul canal. Donc ce programme génère le signal PWM pour logiciel de trois couleurs moyen.
----------------- CUTLINE ----------------- 8< -------------------- CUTLINE --------------------
#rem
Simple PICAXE 08m programme basic au hasard et indépendamment des contrôles
luminosité de tous les 3 couleurs une LED RGB
création de patrons calmant (comme dans une lampe d’ambiance).
Voir mon http://rtfms.com blog pour plus de détails
Vous êtes libre de faire ce que vous voulez avec ce code, juste parler de mon http://andrey.mikhalchuk.com blog
donc dans les commentaires, les gens peuvent trouver code mis à jour. Merci !
#endrem
#picaxe 08m ; config ; broches de la carte ; mapper les valeurs de l’axe aux mem ; carte pin_deltas de mem ; valeurs temporaires pour la sous-routine ; paramètres de la sous-routine ; tout initialiser ; démarrer le mode servo ; Ce code est comme loop() en arduino ; Cette sous-routine ajuste la luminosité de la LED et le delta ; Voir mon autre blog http://rtfms.com et blog vidéo RTFMs sur youtube pour la démo
setfreq m4
symbole de vitesse = 3 ; plus la valeur, plus la couleur changer Vitesse
symbole SPEED_VARIATIONS = 7 ; définit des vitesses de changement de couleur différente combien faut-il utiliser
symbole RED0_PIN = 0
symbole GREEN0_PIN = 1
symbole BLUE0_PIN = 2
; valeur de la goupille est la luminosité réelle de la LED
symbole red0 = b0
symbole green0 = b1
symbole blue0 = b2
; Delta est la vitesse de la variation de luminosité
symbole red0_delta = b3
symbole green0_delta = b4
symbole blue0_delta = b5
symbole delta_w = w3
symbole tmp = b7
goupille de symbole = b8
symbole de val = b9
delta de symbole = b10
red0 = 0
green0 = 70
blue0 = 200
red0_delta = 1
green0_delta = 5
blue0_delta = 9
; Notez que « servopos RED0_PIN, 255 » rend LED off!!
; « servopos, RED0_PIN, 0 » rend vraiment faible, mais allumé. Est-ce un bug dans PICAXE ?
servo RED0_PIN, 255
servo GREEN0_PIN, 255
servo BLUE0_PIN, 255
principal :
; des appel de fonction dans l’environnement dépourvu de fonction
pin = RED0_PIN : val = red0 : delta = red0_delta : gosub set_color_val : red0 = val : red0_delta = delta
pin = GREEN0_PIN : val = green0 : delta = green0_delta : gosub set_color_val : green0 = val : green0_delta = delta
pin = BLUE0_PIN : val = blue0 : delta = blue0_delta : gosub set_color_val : blue0 = val : blue0_delta = delta
Goto principal
set_color_val :
Val = val + delta
Si delta < 128 et val < delta puis ; FWD
delta_w aléatoire
delta = delta % SPEED_VARIATIONS + 1
Delta = 255 - delta
Val = 255
else if delta > = 128 et val < = delta puis ; inversée
delta_w aléatoire
delta = delta % SPEED_VARIATIONS + 1
Val = 0
endif
tmp = val - 1 ; servopos bug workaround
; Oui, servopos ne prend que constant comme premier argument:(
Si la broche = RED0_PIN then
servopos RED0_PIN, tmp
ElseIf broche = GREEN0_PIN then
servopos GREEN0_PIN, tmp
ElseIf broche = BLUE0_PIN then
servopos BLUE0_PIN, tmp
endif
faire une pause Vitesse
retour
; C’est couvert dans l’épisode #7: microcontrôleur rencontre bijoux