Este documento introduce los microcontroladores y el PICAXE08M en particular. Explica que un microcontrolador es un pequeño ordenador en un chip que contiene una CPU, memoria y puertos de entrada y salida. Detalla la arquitectura del PICAXE08M y cómo programarlo usando diagramas de flujo y lenguaje BASIC. Incluye ejemplos de programas básicos para controlar salidas, evaluar entradas y usar bucles y subprogramas.
2. Definición Un µcontrolador es un pequeño ordenador integrado en un chip. Básicamente consta de: CPU (Unidad de central de procesamiento) Memoria del programa y de datos Puertos de Entrada y Salida Temporizadores El microprocesador es un circuito integrado digital que puede programarse con una serie de instrucciones, para realizar funciones específicas con los datos
3. Arquitectura del PICAXE08M Consta de 8 patillas 1 = V+ 8=0V (Alimentación) 2 = Serial IN 3 = IN4/OUT4 4 = IN3 5 = IN2/OUT2 6 = IN1/OUT1 7 = OUT0
4. Programación Para programar usaremos el lenguaje BASIC mediante el PicaxeProgramming Editor Y la versión Flowchart para programar mediante diagramas de flujo. Usaremos preferentemente esta ya que es más fácil de entender los diagramas de flujo El µcontrolador, interpreta el programa: Evalúa las entradas Lee las variables Hace los cálculos Envía los datos a las salidas
5. Flowchart - >Basic Una vez que tenemos el Diagrama de flujo en flowchart podemos obtener el código basic: PICAXE -> Convertir Flowchartto BASIC
6. Activar una salida Activar la salida 0 Presionar -> High 0 Activar la salida 1 High 1 Cambiar 0 por
7. Desactivar una salida Se sigue el mismo proceso que para activarlas Desactivar la salida 0 Low 0 Desactivar la salida 1 Low 1
8. Bascular una salida Mediante la orden toggle n, basculamos una salida n. Es decir si vale 1 la ponemos a 0 y viceversa Bascular la salida 0 Toggle 0
9. Tiempos de espera Espera 5 sg Presionar wait 5 Espera 1000 ms = 1sg Pause 1000
10. Programa 1 Vamos a diseñar un programa para que: Inicio Activar 0 Espera 1 sg Apagar 0 Espera 1 sg Vuelve a inicio
11. Programa 2 LED 1 : Out 0 LED 2 : Out 1 Programa para que encienda los LED 1 y 2 durante 1 sg. Los apague durante 1 sg y vuelva al principio
12. Evaluar las entradas Si tenemos conectado un pulsador NA a IN2. El sistema estará esperando a que se presione. Mientras no se presione valdrá «N» y cuando se presione valdrá «Y» Se presiona el bloque Y se elige el bloque
13. Evaluar una entrada Conectaremos N a la entrada. Es decir estará en un bucle cerrado a la espera de que se pulse: Pin2 =1 entonces valdrá Y se ejecutará el código correspondiente Label_11: If pin2 = 1 thengoto label_12 Goto label_11 Label_12:
14. Programa 3 Inicio Apagar OUT 0, 1 Esperar a que se pulse IN2 Si se pulsa IN2 Activar 0 Espera 0,8 sg Apagar 0 Espera 0,8 sg Activar 1 Esperar 0,8 sg Apagar 1 Esperar 0,8 sg Volver a esperar que se pulse IN2
16. Evaluar 2 entradas IN2 O IN3 Iabel_11: If pin2 = 1 OR pin3 =1 thengoto label_12 Goto label_11 Label_12:
17. Programa 4 Inicio Apagar OUT 0, 1 Esperar a que se pulse IN2 o IN3 Si se pulsa IN2 Activar 0 Espera 0,8 sg Apagar 0 Espera 0,8 sg Activar 1 Esperar 0,8 sg Apagar 1 Esperar 0,8 sg Volver a la espera de pulsar IN2 o IN3
19. Evaluar 2 entradas IN2 Y IN3 Iabel_11: If pin2 = 1 AND pin3 =1 thengoto label_12 Goto label_11 Label_12:
20. Programa 5 Inicio Esperar a que se pulse IN2 Y IN3 Si se pulsa IN2 y IN3 Activar 0 , 1 Espera 5 sg Apagar 0 , 1 Espera 5 sg Volver a la espera de pulsar IN2 y IN3
22. Bucles Si deseamos que una acción se repita un número determinado de veces podemos recurrir al bucle FOR…NEXT Ejemplo: Activar la salida 0 durante 0,5 sg , apagarla durante 0,5 sg. Repetirlo 5 veces Hay que emplear variables del programa b0, b1, b2,… For b0 = 1 to 5 High 0 Pause 500 Low 0 Pause 500 Next
23. Bucles II Podemos hacer lo mismo mediante una sentencia IF Es decir el bucle se ejecutará mientras se cumpla la condición Let b0 = 0 Label_11: High 0 Pause 500 Low 0 Pause 500 Inc b0 If b0 < = 5 thengoto label_11 Label_12:
24. Bucles III Podemos hacer lo mismo mediante DO…LOOP WHILE Es decir el bucle se ejecutará mientras se cumpla la condición Let b0 = 0 DO High 0 Pause 500 Low 0 Pause 500 Inc b0 LOOP WHILE b0 < = 5 Label_12:
26. Llamada a subprogramas Gosub sub0 -> llama al programa sub0 Return -> vuelve al punto desde donde fue llamada Subprograma : comienza con el nombre sub0 y terminamos con Return