# Rem Simple PICAXE 08M programa básico que al azar y controla de forma independiente el brillo de los 3 colores en un LED RGB la creación de patterms calmantes (como en una lámpara de estado de ánimo). Véase mi blog de http://andrey.mikhalchuk.com para obtener más detalles Eres libre de hacer lo que quieras con este código, sólo mencionar a mi blog de http://andrey.mikhalchuk.com
en los comentarios, que la gente pueda encontrar el código actualizado. Gracias!
Este es mi primer programa de PICAXE, pido disculpas si este código no cumple con la calidad de su
las expectativas y los daños a sus sentimientos acerca de lo bueno que el código debe ser similar :)
# Endrem
# PICAXE 08M
setfreq m4
; De configuración
con código de velocidad = 3; cuanto menor sea el valor, mayor será la velocidad de cambio de color
SPEED_VARIATIONS símbolo = 7; define el número de diferentes velocidades de cambio de color se debe utilizar
; Los pins del mapa
símbolo RED0_PIN = 0
símbolo GREEN0_PIN = 1
símbolo BLUE0_PIN = 2
, Los valores del mapa de pines a los miembros
; Valor del PIN es el brillo actual del LED
símbolo de red0 = b0
símbolo de green0 b1 =
símbolo de blue0 = b2
; Pin_deltas asignan a miembros
; Delta es la velocidad del cambio de brillo
símbolo de red0_delta = b3
símbolo de green0_delta = b4
símbolo de blue0_delta = b5
; Valores temporales para la subrutina
símbolo de delta_w = w3
tmp símbolo = b7
, Los parámetros de subrutinas
símbolo de pin = b8
símbolo de val = b9
símbolo delta = b10
; Iniciar todo
red0 = 0
green0 = 70
blue0 = 200
red0_delta = 1
green0_delta = 5
blue0_delta = 9
; Iniciar el modo de servo
, Tenga en cuenta que "servopos RED0_PIN, 255" hace LED apagado!
; "Servopos RED0_PIN, 0" hace que sea muy tenue, pero iluminado. ¿Es eso un error en PICAXE?
RED0_PIN servo, 255
GREEN0_PIN servo, 255
BLUE0_PIN servo, 255
, Este código es como loop () en el arduino
principal:
; Emulando llamada de función en función-menos medio ambiente
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
Ir a principal
; Este sub ajusta el brillo de los LED y el delta
set_color_val:
val = val + delta
Si delta <128 y Val <delta entonces; fwd
aleatoria delta_w
delta = delta SPEED_VARIATIONS% + 1
delta = 255 - Delta
val = 255
elseif delta> = 128 y val> = delta de entonces; inversa
aleatoria delta_w
delta = delta SPEED_VARIATIONS% + 1
val = 0
endif
tmp = val - 1; servopos solución de errores
, Sí, servopos toma única constante como el primer argumento: (
si el pin = RED0_PIN a continuación
servopos RED0_PIN, tmp
elseif pin = GREEN0_PIN a continuación
servopos GREEN0_PIN, tmp
elseif pin = BLUE0_PIN a continuación
servopos BLUE0_PIN, tmp
endif
pausa VELOCIDAD
volver
, Ver a mi otro blog y http://rtfms.com RTFMs Blog de vídeo en youtube para ver la demostración
, Lo que está cubierto en el episodio # 7: Microcontroladores Cumple Joyería