Paso 6: Escribir (o copiar) el programa
Usted puede escribir sus propios programas para aplicar efectos visuales diferentes para el LED RGB, pero si apenas vas a empezar con la programación del microcontrolador es más conveniente empezar con un ejemplo. Por ejemplo puedes copypaste el código siguiente en la ventana IDE.Lo genial de este código es que unidades RGB LED y luz independientemente cada color. Normalmente esto se logra mediante el uso de PWM (Pulse Width Modulation) y la mayoría de microcontroladores tienen hardware especial para producir la señal PWM. PICAXE-08 también tiene esta capacidad, pero sólo está disponible en un canal. Por lo que este programa genera la señal PWM para el software de tres colores forma.
----------------- CUTLINE ----------------- 8< -------------------- CUTLINE --------------------
#rem
PICAXE 08m básico programa simple que controla al azar e independientemente
brillo de los 3 colores en un LED RGB
creación de patterms calma (como en una lámpara de estado de ánimo).
Ver mi http://rtfms.com blog para más detalles
Eres libre de hacer lo que quieras con este código, sólo mencionar mi http://andrey.mikhalchuk.com blog
en los comentarios, así que la gente puede encontrar código actualizado. ¡ Gracias!
#endrem
#picaxe m 08 ; config ; pins del mapa ; asignar valores de pin a mem ; mapa pin_deltas a mem ; valores de temperatura para la subrutina ; parámetros de la subrutina ; inicializar todo ; iniciar el modo servo ; Este código es como loop() en arduino ; Este sub ajusta el brillo de los LED y delta ; ver mi otro blog http://rtfms.com y RTFMs video blog en youtube para demo
setfreq m4
símbolo velocidad = 3; menor será el valor mayor el color cambiar velocidad
símbolo SPEED_VARIATIONS = 7; define cuántas velocidades de cambio de color diferente deben utilizar
símbolo RED0_PIN = 0
símbolo GREEN0_PIN = 1
símbolo BLUE0_PIN = 2
; valor del PIN es el brillo actual del LED
símbolo red0 = b0
símbolo green0 = b1
símbolo blue0 = b2
; Delta es la velocidad del cambio de brillo
símbolo red0_delta = b3
símbolo green0_delta = b4
símbolo blue0_delta = b5
símbolo delta_w = w3
símbolo tmp = b7
pin símbolo = b8
símbolo de val = b9
delta del símbolo = b10
red0 = 0
green0 = 70
blue0 = 200
red0_delta = 1
green0_delta = 5
blue0_delta = 9
; Tenga en cuenta que "servopos RED0_PIN, 255" hace LED apagado!!
; "servopos RED0_PIN, 0" hace que sea muy tenue, pero encendido. ¿Es un error en PICAXE?
servo RED0_PIN, 255
servo GREEN0_PIN, 255
servo BLUE0_PIN, 255
principal:
; emulando una llamada a función en medio de la función menos
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 y val < delta; FWD
delta_w al azar
Delta = delta % SPEED_VARIATIONS + 1
Delta = 255 - delta
Val = 255
elseif delta > = 128 y val < = delta; inversa
delta_w al azar
Delta = delta % SPEED_VARIATIONS + 1
Val = 0
endif
tmp = val - 1; solución de errores de Servopos
; sí, servopos tiene solamente constante como primer argumento :(
Si pin = RED0_PIN entonces
Servopos RED0_PIN, tmp
elseif pin = GREEN0_PIN entonces
Servopos GREEN0_PIN, tmp
elseif pin = BLUE0_PIN entonces
Servopos BLUE0_PIN, tmp
endif
pausa de velocidad
volver
; Esto se cubre en el episodio #7: joyería cumple con microcontrolador