Paso 4: Programación del PIC
Lo bueno de programar el Picaxe es la cantidad mínima de dinero que necesita para obtener en la utilización de ellos y la simplicidad de la lengua. Para mi programa he utilizado 1/2 docena comandos básicos. Expertos podrían hacer probablemente más para menos pero soy un hack y obtener un resultado que me conviene! Para programar el chip sí mismo necesita un chip (obviamente) un cable de descarga - serial o paralelo que podría incluso hacer serial su auto nada, también se necesita el software de programación gratuito disponible en el sitio web de Picaxe.El Picaxe que utilicé fue un 18 X, este chip tiene 9 pines de salida y 5 pines de entrada y puede contener hasta 600 líneas de código. En esta etapa sólo hacer uso de la 6 de los pines de salida. 5 ejecutar el LED y 1 para activar y desactivar el módulo de sonido. En una etapa posterior podría romper el LED para arriba en bloques de 8 para una mayor resolución, recuerde mi driver darlington puede ejecutar hasta 8 salidas a la vez. O alternativamente podría hacer la hoja de 4 bloques (como otra marca) y controlar individualmente cada lámina
Todo lo que dicho y hecho más o menos puedo hacer el hojas de luz arriba y abajo con cerca de 20 líneas de código. ¿Y qué hay de los otros 580? Me parece una basura así que he añadido algunos modos extras 1. Modo normal, 2. Modo normal sin sonido 3. Modo de jinete nocturno 5. Modo de cerdo. Para cambiar de modo pulsado el botón durante 5 segundos que el sable parpadea dos veces para indicar modo y dependiendo de cómo muchas veces usted golpea en dictados de 5 segundos el botón de empuje con su nuevo modo. Si no pulse el botón o presione muchas veces vuelve al modo normal.
Aquí está el código que he comenzado con de todos modos...
B5 = % 00000001' Intiallise saber modo variable
B1 = 0' Intialise modo cambio contador variable
B0 = 0' no seguro por qué hice esto
B2 = 1' Set el modo por defecto para Saber normal
que pins = % 00100000' conjunto perno 6 alto, baja se enciende el módulo de sonido
RESET: ' reinicializa todos los pernos después de un cambio de modo
que pins = % 00100000
PAUSE 100
Goto bucle
Loop: ' bucle principal control pulsador
Si pin2 = 0 entonces modo??? saltar a flsh si pin0 es alto
Goto bucle
modo de:
Si b1 > 5 entonces mode_change ' si el contador está en el cambio de modo de ir 5
pausa de 20
Si pin2 = 1 entonces decidir ' si el interruptor es goto, seleccione un modo de
Si pin2 = 0 then count_t ' goto contador
count_t: ' este contador contará a cinco
pausa de 10
B1 = b1 + 1
modo de ir
mode_change: ' sable parpadea dos veces para cambiar el modo de significar
B2 = 0
que pins = % 00111111
PAUSE 300
que pins = % 00100000
PAUSE 300
que pins = % 00111111
PAUSE 300
que pins = % 00100000
PAUSE 300
Conde 2, 5000, b2 ' bush acciones de botones con las cuentas en 5 segundos y esto almacena en b2
que pins = % 00111111
PAUSE 300
que pins = % 00100000
PAUSE 300
B1 = 0
Goto bucle
Decidir: ' decisiones dependiendo del valor en b2
B1 = 0
Si b2 = 1 entonces saber
Si b2 = 2 entonces silent_saber
Si b2 = 3 entonces Knight_rider
Si b2 = 4 entonces cerdos
Si b2 > 4 entonces saber
Si b2 < 1 entonces saber
Goto bucle
saber: ' modo de sable básico
B1 = 0
Si b5! = % 00000001 luego p_down
Si b5 = % 00000001 luego p_up
Goto bucle
p_up:
que pins = % 00110000
pausa de 200
que pins = % 00010000
PAUSE 100
que pins = % 00011000
PAUSE 100
que pins = % 00011100
PAUSE 100
que pins = % 00011110
PAUSE 100
que pins = % 00011111
B5 = % 00000000
Goto bucle
p_down:
que pins = % 00111111
pausa de 200
que pins = % 00011111
PAUSE 400
que pins = % 00011111
PAUSE 100
que pins = % 00011110
PAUSE 100
que pins = % 00011100
PAUSE 100
que pins = % 00011000
PAUSE 100
que pins = % 00010000
PAUSE 100
que pins = % 00000000
B5 = % 00000001
Goto bucle
silent_saber: ' lo dice todo realmente
B1 = 0
Si b5! = % 00000001 luego p_down_s
Si b5 = % 00000001 luego p_up_s
Goto bucle
p_up_s:
que pins = % 00110000
PAUSE 100
que pins = % 00111000
PAUSE 100
que pins = % 00111100
PAUSE 100
que pins = % 00111110
PAUSE 100
que pins = % 00111111
B5 = % 00000000
Goto bucle
p_down_s:
que pins = % 00111111
PAUSE 100
que pins = % 00111110
PAUSE 100
que pins = % 00111100
PAUSE 100
que pins = % 00111000
PAUSE 100
que pins = % 00110000
PAUSE 100
que pins = % 00100000
B5 = % 00000001
Goto bucle
Knight_rider:
Si pin2 = 0 entonces puesta a cero
que pins = % 00100000
PAUSE 100
que pins = % 00110000
PAUSE 100
que pins = % 00101000
PAUSE 100
que pins = % 00100100
PAUSE 100
Si pin2 = 0 entonces puesta a cero
que pins = % 00100010
PAUSE 100
que pins = % 00100001
PAUSE 100
que pins = % 00100010
Si pin2 = 0 entonces puesta a cero
PAUSE 100
que pins = % 00100100
PAUSE 100
que pins = % 00101000
PAUSE 100
que pins = % 00110000
Si pin2 = 0 entonces puesta a cero
Goto Knight_rider
cerdos:
Si pin2 = 0 entonces puesta a cero
que pins = % 00100000
PAUSE 100
que pins = % 00110000
PAUSE 100
que pins = % 00101000
PAUSE 100
que pins = % 00100100
PAUSE 100
Si pin2 = 0 entonces puesta a cero
que pins = % 00100010
PAUSE 100
que pins = % 00100001
Si pin2 = 0 entonces puesta a cero
Goto cerdos
Finalmente creo que sería cool que utilice un micrófono o algo y el saber como un medidor de VU - traer el tri color de LED!