# Rem Semplice programma PICAXE 08m di base che controlla in modo casuale e indipendente luminosità di tutti e 3 i colori in un LED RGB la creazione di patterms calmanti (come in una lampada d'animo). Vedere la mia http://andrey.mikhalchuk.com blog per maggiori dettagli Sei libero di fare quello che vuoi con questo codice, a citare il mio blog http://andrey.mikhalchuk.com
nei commenti, così la gente può trovare il codice aggiornato. Grazie!
Questo è il mio primo programma per il PICAXE, mi scuso se questo codice non soddisfa la vostra qualità
aspettative e danni i tuoi sentimenti su quanto è buono il codice dovrebbe essere simile :)
# Endrem
# PICAXE 08m
setfreq m4
; Config
simbolo SPEED = 3, minore è il valore maggiore è la velocità di cambiamento di colore
SPEED_VARIATIONS simbolo = 7; definisce quanti differenti velocità di cambio colore dovrebbe utilizzare
; Mappa pin
RED0_PIN simbolo = 0
GREEN0_PIN simbolo = 1
BLUE0_PIN simbolo = 2
; Mappa i valori dei pin a mem
; Valore perno è la luminosità corrente del LED
simbolo red0 = b0
simbolo green0 b1 =
blue0 simbolo = b2
; Pin_deltas mappa per mem
, Delta è la velocità del cambiamento di luminosità
simbolo red0_delta = b3
simbolo green0_delta = b4
simbolo blue0_delta = b5
, I valori temporanei per la subroutine
simbolo delta_w = w3
tmp simbolo = b7
; Subroutine parametri
simbolo pin = b8
simbolo val = b9
simbolo delta = b10
; Inizializzare tutto
red0 = 0
green0 = 70
blue0 = 200
red0_delta = 1
green0_delta = 5
blue0_delta = 9
; Avviare la modalità servo
; Notare che "servopos RED0_PIN, 255" rende LED spento!
; "Servopos RED0_PIN, 0" che lo rende davvero scarsa, ma illuminato. È un bug in PICAXE?
servo RED0_PIN, 255
servo GREEN0_PIN, 255
servo BLUE0_PIN, 255
, Questo codice è come loop () in Arduino
principale:
; Emulando chiamata di funzione in funzione-less 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
goto principale
, Questo sub regola la luminosità del LED e delta
set_color_val:
val = val + delta
se delta <128 e val <delta allora; fwd
casuale delta_w
delta = SPEED_VARIATIONS sulla delta + 1
delta = 255 - delta
val = 255
elseif delta> = 128 e val> = delta allora; inverso
casuale delta_w
delta = SPEED_VARIATIONS sulla delta + 1
val = 0
endif
tmp = val - 1; servopos bug workaround
, Yeah, servopos richiede solo costante come primo argomento: (
Se il codice PIN = RED0_PIN poi
servopos RED0_PIN, tmp
elseif pin = GREEN0_PIN poi
servopos GREEN0_PIN, tmp
elseif pin = BLUE0_PIN poi
servopos BLUE0_PIN, tmp
endif
pausa SPEED
ritorno
; Vedere il mio blog e altri http://rtfms.com RTFMs blog video su youtube per la demo
, Questo è coperto nell'episodio # 7: Microcontroller Meets Jewelry