# Rem Simples PICAXE programa 08M básico que controla de forma aleatória e independente o brilho de todas as 3 cores em um LED RGB criar patterms calmantes (como em uma lâmpada de humor). Ver o meu http://andrey.mikhalchuk.com blog para mais detalhes Você é livre para fazer o que quiser com este código, basta mencionar o meu blog de http://andrey.mikhalchuk.com
nos comentários, para que as pessoas podem encontrar o código atualizado. Obrigado!
Este é o meu primeiro programa para PICAXE, peço desculpas se este código não atende a sua qualidade
expectativas e prejuízos de seus sentimentos sobre o código como é bom deve ser semelhante :)
# Endrem
# PICAXE 08M
setfreq m4
; Configuração
símbolo de velocidade = 3; quanto menor for o valor, maior a velocidade de mudança de cor
SPEED_VARIATIONS símbolo = 7; define quantas velocidades diferentes mudanças de cor que deveria usar
; Nos pinos dos mapas
símbolo RED0_PIN = 0
símbolo GREEN0_PIN = 1
símbolo BLUE0_PIN = 2
; Mapas valores pinos para mem
; Valor pino é o brilho corrente do LED
símbolo red0 = b0
símbolo green0 = b1
símbolo blue0 b2 =
; Pin_deltas mapa para mem
; Delta é a velocidade da mudança de brilho
símbolo red0_delta = b3
símbolo green0_delta = b4
símbolo blue0_delta b5 =
; Valores temporários para a sub-rotina
símbolo delta_w = w3
tmp símbolo b7 =
; Parâmetros de subrotinas
símbolo pin = b8
símbolo val = B9
símbolo delta = b10
; Inicializar tudo
red0 = 0
green0 = 70
blue0 = 200
red0_delta = 1
green0_delta = 5
blue0_delta = 9
; Iniciar o modo de servo
; Notar que "servopos RED0_PIN, 255" torna LED desligado!
; "Servopos RED0_PIN, 0" torna muito fraca, mas iluminado. É que um bug no PICAXE?
RED0_PIN servo, 255
GREEN0_PIN servo, 255
BLUE0_PIN servo, 255
; Esse código é como loop () em arduino
principal:
; Emulando chamada de função em função de meio ambiente 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 main
; Este sub ajusta o brilho do LED e do delta
set_color_val:
val = val + delta
se delta <128 e val <delta, em seguida, fwd
delta_w aleatória
ô = delta SPEED_VARIATIONS% + 1
delta = 255 - delta
val = 255
elseif delta> = 128 e val> = delta, em seguida, reverso
delta_w aleatória
ô = delta SPEED_VARIATIONS% + 1
val = 0
endif
tmp = val - 1; solução bug servopos
; Sim, servopos toma única constante como o primeiro argumento: (
se o pino = RED0_PIN então
servopos RED0_PIN, tmp
elseif pin = GREEN0_PIN então
servopos GREEN0_PIN, tmp
elseif pin = BLUE0_PIN então
servopos BLUE0_PIN, tmp
endif
VELOCIDADE pausa
voltar
; Ver o meu outro blog e http://rtfms.com RTFMs blog de vídeo no youtube para demonstração
; Isto é tratado no episódio # 7: Microcontrolador Atende Jóias