Buscar

Curriculum vitae y biografía de la autora Un par de artículos relacionados con mi hobby - robótica
Mis impresiones sobre la inmigración a Australia. En ruso. Recetas para la resolución de los problemas cotidianos
Linux puestos relacionados con la Windows puestos relacionados con la
Mensajes relacionados con el software Una gran cantidad de información sobre el hardware
Las diferentes herramientas que pueden resultar útiles Artículos sobre las tecnologías web diferentes
Todo lo que no encaja en el resto del menú RSS feed de este blog

Nube de etiquetas

Archivo

Enlaces

Blog de Andrey Mikhalchuk

English flagItalian flagKorean flagChinese (Simplified) flagPortuguese flagGerman flagFrench flagSpanish flagJapanese flagRussian flagDanish flagFinnish flagHebrew flag

Technoblog acerca de la vida

23 de junio 2011 El control de RGB LED con PICAXE-08: Conceptos básicos de software PWM

Driving RGB LED with PICAXE-08M

Conducir RGB LED con PICAXE-08M

Estoy trabajando en un nuevo episodio de RTFMs que implica empacar un LED RGB y un microcontrolador en un espacio muy apretado. El microcontrolador que decidí usar es PICAXE-08. Lo elegí por tres razones:
- Tuve una en el cuadro
- Yo no tenía otros planes para ella, ya que parecía no ser muy adecuado para lo que me dieron, por (un proyecto de globo de gran altitud)
- Su utilización para atenuar LED RGB es un reto


Busqué en Google por un tiempo y no encontró ninguna solución para hacer de LED RGB y el trabajo PICAXE-08M juntos como había planeado. Mientras que el cambio entre tres diferentes colores de los LED no es un problema en absoluto con los colores de mezcla no es trivial, con este chip. Quería controlar cada color por separado, con 256 gradaciones de brillo / oscurecimiento por lo que el LED puede producir verdadera mezcla RGB. Esto se logra típicamente con ancho de pulso (PWM) y no un problema con Arduino por ejemplo. ATMega328 dispone de 6 canales de PWM, por lo que puede conducir a dos LEDs RGB. Pero PICAXE08 tiene un solo canal de PWM para la misión puede parecer imposible. He resuelto el problema mediante la implementación de software de PWM que funcionó sorprendentemente bien, con PICAXE08 un rendimiento limitado. Aquí está mi código:

# 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

Algunas notas acerca de este código:
- Pone en práctica "el estado de ánimo de la lámpara RGB". Siéntase libre de cambiar a sus necesidades
- Desde el PICAXE mantiene un bucle todo el tiempo que sospecho que el consumo de energía es horrible. Aún así es bueno para una hora por lo menos cuando el poder por dos pilas pequeñas, como se muestra en el episodio blog de RTFMs video # 7
- Rendimiento de PICAXE08 es tan-tan. Como se puede ver en el video RTFMs la luz es ligeramente más brillante. Usted probablemente no se dará cuenta al mismo tiempo mirando el LED en persona, pero la cámara de vídeo hace que el efecto notable. De hecho, en el estado de ánimo de la lámpara hasta me gusta :)
- El tamaño del programa es de 146 bytes (de los disponibles en 08 256). Usted probablemente puede optimizar un poco.
- El video RTFMs sobre el proyecto de la lámpara el estado de ánimo se menciona aquí es que se dio a conocer un poco más tarde

Esta entrada se publicó en el hardware , Cómo , Otros .

No hay comentarios

No hay comentarios

Deja un comentario

Mapa del Sitio (C) Andrey Mikhalchuk, 2005-2008