Flowcode Arduino PDF
Flowcode Arduino PDF
+
Simulacin y programacin de aplicaciones con Arduino, E-Blocks y Flowcode 6
Flowcode V6 + Arduino
ndice
Introduccin Descripcin del mdulo EB081 Configuracin de la tarjeta Arduino para ser reconocida por Flowcode. Blink Blink con Macro Blink Tiempo variable Botn Alarma bsica Monitorizacin de funcionamiento con Alarma Ejemplo Contador Contador de impulsos de entrada Funcin lgica AND Salida PWM Control de un motor con tres velocidades Termostato
Flowcode V6 + Arduino
1.
Introduccin
Este manual pretende explicar las posibilidades didcticas y metodolgicas del software Flowcode 6 de la empresa Matrix Multimedia para la programacin de la Plataforma Open Hardware Arduino en sus diversas formas de presentacin y con los diversos microcontroladores PIC de la familia Atmega. La herramienta Flowcode lleva en el mercado los suficientes aos para haberse convertido en un referente mundial dentro del grupo de Herramientas para la Programacin de PICs. La oferta de versiones es muy amplia y el fabricante ha liberado versiones que pueden trabajar con Arduino manteniendo restricciones con otras PICs pero que son suficientes para poder trabajar en el mbito educativo.
La versin con la que voy a realizar este manual es Flowcode 6 que representa el ltimo producto en la lnea de software. Esta versin es muy adecuada para la docencia y la investigacin dado que, a la potencialidad en lo que refiere a la programacin grafica de una PIC, se ha sumando, en este caso, un motor grfico de simulacin que incluye una amplia librera de objetos en 2D y 3D con los que podemos realizar simulaciones muy potentes y atractivas. He realizado todas las prcticas con la tarjeta Arduino UNO Rev3 y buena parte de los E-Blocks que tiene en su catlogo Matrix Multimedia, los cuales me han permitido de manera cmoda y sencilla realizar las simulaciones. La tarjeta bsica E-Block que he utilizado como base es la EB081 que es un E-Block shield adaptado para recibir sobre l una tarjeta estndar Arduino tanto en versin UNO como en versin MEGA. En este manual no explicar de manera profunda las posibilidades de la simulacin, pero quede dicho que estas son muchas y podran ser materia para abordar en un segundo manual.
Flowcode V6 + Arduino
Tarjeta de la serie E-Blocks EB081 Esta tarjeta es muy interesante porque permite conectar a nuestro prototipo todas las tarjetas de la serie E-Blocks con lo que prcticamente sin tener que realizar apenas cableado podemos disponer configuraciones muy diversas. Las tarjetas que he utilizado y propongo para configurar un kit bsico de trabajo son: EB081 Shield para adaptacin de Arduino a al sistema E-Blocks EB003 Modulo de sensores EB004 Modulo de salidas de LED EB005 Mdulo display EB007 Mdulo de entradas de pulsadores EB038 Mdulo de salida de Rels EB011 Control de Motores EB059 Modulo para Servos EB016 Modulo protoboard para montaje de componentes
Flowcode V6 + Arduino
2.
El mdulo EB081 tiene dispuestos sus conectores macho para recibir una tarjeta Arduino tipo UNO o tipo MEGA, lo cual es muy sencillo y cmodo para trabajar. Los pines de Arduino se extienden a los puertos conectores del tipo E-Blocks que se indican en la siguiente figura.
1.
Tarjeta Arduino conectada sobre EB081 2. Power LED 3. Conector E-blocks port - A0 to A7 4. Conector E-blocks port - A8 to A15 5. Conector E-blocks port - D0 to D7 6. Conector E-blocks port - D8 to D13 7. Conector E-blocks port - D14 to D21
Conexion de alimantacin Conexiones 5V, 3V3 y VCC Pulsador Reset ICSP header Analgica VREF Conector Arduino USB
Las correspondencias de los pines de Arduino con los conectores son las siguientes:
Flowcode V6 + Arduino
3.
Con el fin de evitar problemas y errores a la hora de realizar la conexin de Arduino con Flowcode es muy importante que configuremos correctamente los parmetros de nuestra tarjeta para que la compilacin y la descarga de los bitcodes de nuestro programa sobre la PIC de Arduino no de ningn problema. Para realizar la configuracin 1. Debemos abrir la opcin del men Realizar->Opciones de Compilador
1 Representa el tipo de Tarjeta Arduino 2 Representa el COM por el que nos comunicamos con Arduino 3 Representa la velocidad de comunicacin
2.
Los parmetros para los distintos tipos de Arduino son los siguientes:
Flowcode V6 + Arduino
Tipo de tarjeta
Parmetros (1) Cdigo (3)Velocidad 115200 57600 19200 115200 57600 19200 57600 19200 19200 57600 19200 57600 19200 57600 19200 19200 19200
Arduino Uno Arduino Duemilanove or Nano w/ ATmega328 Arduino Diecimila, Duemilanove, or Nano w/ ATmega168 Arduino Mega 2560 Arduino Mega (ATmega1280) Arduino Mini Arduino Fio Arduino BT w/ ATmega328 Arduino BT w/ ATmega168 LilyPad Arduino w/ ATmega328 LilyPad Arduino w/ ATmega168 Arduino Pro or Pro Mini (5V, 16 MHz) w/ ATmega328 Arduino Pro or Pro Mini (5V, 16 MHz) w/ ATmega168 Arduino Pro or Pro Mini (3.3V, 8 MHz) w/ ATmega328 Arduino Pro or Pro Mini (3.3V, 8 MHz) w/ ATmega168 Arduino NG or older w/ ATmega168 Arduino NG or older w/ ATmega8
stk500 stk500 stk500 stk500v2 stk500 stk500 stk500 stk500 stk500 stk500 stk500 stk500 stk500 stk500 stk500 stk500 stk500
Las etapas bsicas para realizar la descarga de la aplicacin desde Flowcode a Arduino son: Compilar, Ensamblar, Descargar Para la ejecucin de estas etapas se ejecuta un fichero .bat que contiene las instrucciones para el compilador, ensamblador y modulo de descarga del cdigo que se encuentran en la carpeta .. compilers\avr\batchfiles\ de la aplicacin Flowcode. Los ficheros que se ejecutan son: Para la Compilacin: avra.bat Para el ensamblado: avrb.bat Para la Programacin(descarga) del cdigo: avrc_ArduinoA.bat Si nos fijamos bien podremos crear distintas configuraciones que podremos aplicar a distintas tarjetas, bastar pinchar sobre la carpeta AVR y mediante el men contextual (botn derecho) aadir una nueva configuracin que se guardar con ese nombre una vez que nosotros hayamos puesto en cada una de las opciones (compilar, ensamblar y descargar) los parmetros.
Flowcode V6 + Arduino
Luego podremos definir como predeterminada la que deseamos tener como tal:
Flowcode V6 + Arduino
4.
Blink
Vamos a realizar nuestra primera aplicacin con Arduino +Flowcode. Se trata del clsico ejemplo Blink en el que activamos y desactivamos con un tiempo de cadencia determinado una salida digital de Arduino. Describiremos en este primer ejemplo de manera ms detallad las etapas para realizar la programacin, descarga y simulacin de este sencillo ejemplo. Descripcin del proceso:
1.
Una vez que ejecutamos Flowcode se abre la pantalla de inicio y se nos pide que elijamos lo que deseamos hacer. Nosotros seleccionamos Nuevo proyecto
2.
Seguidamente podremos, si lo deseamos, hacer una descripcin de nuestro proyecto Pestaa Descripcin de Proyecto y no tocaremos nada en las otras pestaas.
9
Flowcode V6 + Arduino
3.
Una vez realizadas estas sencillas opciones se abre la pantalla del entorno y ya estamos en disposicin de realizar nuestro trabajo.
Queremos encender y apagar un led que estar conectado al PIN 2 de Arduino que se corresponde con el PIN D2 en la nomenclatura de Flowcode, tal como se indica en la ventana de Pin. Esta ventana se puede hacer visible en la opcin Ver.
Queremos que ese pin PIN Digital 2 se active y desactive cada segundo.
10
Flowcode V6 + Arduino
4.
El siguiente paso ser crear el algoritmo que realice esta funcin. Para ello vamos colocando los elementos de la barra de bloques de programacin de la izquierda en el rea de trabajo. Los bloques que integraremos sern: Un bloque tipo Bucle: Dos bloques tipo Salida: Dos bloques tipo Demora: El diagrama de flujo de nuestro algoritmo de la figura. Tngase en cuenta que todo el desarrollo de las funciones esta dentro de una estructura tipo Bucle.
Los bloques tienen que ser parametrizados de acuerdo a la salida que deseamos y con los tiempos de demora correspondientes. A continuacin se muestran las imgenes de las ventanas de parmetros de estos bloques:
11
Flowcode V6 + Arduino
Con este bloque activamos con el valor 1 la salida digital PIN2 que se corresponde con el puerto PORTD D2
Con este bloque activamos con el valor 0 la salida digital PIN2 que se corresponde con el puerto PORTD D2
12
Flowcode V6 + Arduino
5.
El siguiente paso es configurar el panel de Sistema en el que aparecer un indicador del estado de la salida que hemos programado cuando pongamos el sistema en modo Simulacin. Para esta operacin seleccionamos en el men Ver la opcin Panel Sistema y se muestra el panel. Seguidamente seleccionamos el objeto Dashboard Lamp de la librera de elementos Ouputs y lo arrastramos al panel.
El elemento seleccionado debe ser parametrizado y para ello nos vamos a la ventana propiedades de elemento y all seleccionamos el puerto y pin de salida. Bastar para esta operacin mostrar la ventana de propiedades mediante la opcin Ver>Propiedades de Panel y desplegada esa ventana seleccionamos la pestaa de
13
Flowcode V6 + Arduino
Propiedades y all pinchando en la parte de Connection->pin aparece una venta en la que se muestra el chip ATMEGA328P y seleccionamos el puerto y el pin en las ventanas que aparecen.
Si todo ha ido bien esteremos en disposicin de realizar el test de simulacin de nuestro proyecto para lo cual bastar colocar la ventana de Panel Sistema y la de Chip de forma cmoda y visible y le pulsamos en el botn de simulacin. . Si todo ha ido bien vernos que nuestro Led parpadea dentro de la ventana Panel de sistema y tambin veremos que el PIN 2 de la ventana de Chip se activa y desactiva.
14
Flowcode V6 + Arduino
Tambin aparecer una ventana llamada Depurador de Simulacin que permite, entre otras cosas, modificar la velocidad de simulacin. Si hacemos ms lenta la simulacin podremos ver cmo se van ejecutando las instrucciones en el diagrama de flujo lo cual nos permitir aprender con facilidad como acta.
6.
Una vez que hemos comprobado el funcionamiento en modo simulacin tenemos que realizar la programacin fsica sobre la tarjeta Arduino para ello dispondremos las tarjetas EB081 que es el shield en donde colocaremos Arduino y la tarjeta de salidas tipo Led EB004 que es la que vernos como se activa realmente el led conectado al PIN2 de Arduino y al PIN D2 de la tarjeta de led que se insertar en el conector D0 D7 del shield ED081. En la imagen siguiente vemos el montaje.
15
Flowcode V6 + Arduino
No olvidemos que en este caso la tarjeta de simulacin de Leds de salida los diodos D0 y D1 no se utilizaran normalmente porque se ocupan en los canales de comunicacin Tx y Rx.
7.
La siguiente y ltima fase es descargar el programa sobre Arduino. Para ello se deber realizar la compilacin ensamblado y carga del programa con la ayuda de los botones correspondientes del men de Flowcode.
Primero se compila (1), para ello deberemos salvar previamente el diagrama. Despus se crea el fichero HEX (hexadecimal) (2) y por ltimo se descarga sobre Arduino. Si todo ha ido bien aparecer una ventana en la que se nos dar cuenta de que todo fue bien.
16
Flowcode V6 + Arduino
5.
A continuacion vamos a realizar un ejemplo que es igualo que el anterior pero en el que hemos introducido una macro que se encarga de realizar la cinmutacion de la salida con demoras entteela activiacion y deactivacion. Para crear una macro bastar con ir a la ventana del Explorador de Proyecto y en la pestaa de macros pusar sobre macro y Agreagar nuevo. Ponermos el nombre de la macro, y quedar creada automaticamenbte. Luego pinchando sobre el cion de madro Blink aparecera en el area de trabajo los dos bloques INICIO y FIN y colaoramos entte ambos los bloques que realizan el encendido y apagado del PIN10 de Arduino (PUERTOB 2)
La macro Blink se aade en una pestaa del area de trabajo llamada Blink. Para ewscribir el programa principal pulsamos sobre la pestaa Main y escribimos colcoamos el Bucle y el bloque de funcion Llamar Macro nombre Blink en la venata de parametros de este bloque desigando el
En la siguiente figura vemos el organigrama de la macro Blink una vez termiando de construir
17
Flowcode V6 + Arduino
En la siguinte imagen tenemos el organigrama del programa principal Main. No olvidemos que la activacin sera en el PIN10 de Arduino a que se corresponde con el PORTB 2 (PB2) del Chip ATMEGA 328
En la ejecucin del programa Main se realiza la llamada a la macro Blink tal como se indica en la figura.
18
Flowcode V6 + Arduino
Para construir el Panel Sistema hemos recurridoa la librera de ele,mebtos de salida Outputs y de el se ha seleccionado un led del tipo LED 5mm Unmounted al que en la venta de propiedades le hemos asociado al PIN $PORTB.2
Una vez realizada esta operacin pasamos a simular la aplicacin comprobando que funciona tal y como la hemos pensado. En al siguiente imagen vemos la pantalla en modo simulacin. Cuando se ha probado que est bien nuestro diseo pasamos a las fases de compilar, montar y descargar la aplicacin sobre la tarjeta Arduino montada sobre la tarjeta EB081.
19
Flowcode V6 + Arduino
20
Flowcode V6 + Arduino
6.
Esa variable tiempo se crear simplemente pulsando el botn derecho del rato estando situados en Variables seleccionado Agrega nuevo. Se definir como una variable de tipo Byte. Se pondr el valor 100 por defecto. Esta variable recoger el valor del canal AN1
21
Flowcode V6 + Arduino
En este caso vamos a construir primero el Panel Sistema incluyendo en el dos elementos: un LED y un Slider (potencimetro). Con el primero simularemos el PIN10 de salida de Arduino y con el Slider la variable de entrada analgica AN1
En la ventana de Propiedades, cuando seleccionamos el Slider aparecen las propiedades de este y seleccionamos en este caso en el apartado Connection y Chanel el valor An1 en el men que nos aparece de los terminales (puertos) del Chip.
22
Flowcode V6 + Arduino
De esta manera queda adscrito el canal An1 al Slider. El siguiente elemento es Led
En este caso se asociar al PIN 10 de Arduino que es el PORTB.2 del Chip de Flowcode ATMEGA328.
Realizadas estas operaciones nos dispondremos a construir el diagrama de flujo de nuestra aplicacin. Recordemos que todas las funciones se encuentran dentro de una estructura Bucle. Pondremos un bloque tipo Macro de componente en el que podremos realizar la asociacin de la variable tiempo al objeto pot_color_cap1 que es el slider que acabamos de colocar en el panel Sistema el cual a su vez esta unido al PINA1 de Arduino An 1 (en el chip Flowcode).
23
Flowcode V6 + Arduino
Seguidamente pondremos unos tras otros los siguientes bloques: Salida (poner 0 en PB2) Demora (tiempo ms) Salida (poner 1 en PB2) Demora (tiempo ms) Tal como se en el siguiente el diagrama de flujo ya terminado. No olvidemos que el tiempo de demora ser no un valor numrico sino la variable tiempo.
Lo que corresponde a continuacin es realizar la simulacin del montaje. Para ello pulsamos el correspondiente botn y vemos como al variar la posicin del slider varia el tiempo de encendido y apagado del LED. Podemos hacer ms lenta la ejecucin y ver como los bloque se van ejecutando en el diagrama de flujo. En la siguiente imagen vemos el aspecto del sistema mientras se esta realizando la simulacin
24
Flowcode V6 + Arduino
Comprobado el correcto funcionamiento de nuestro sistema descargamos la aplicacin sobre la tarjeta Arduino. En el montaje obsrvese que se ha colocado la tarjeta de sensores analgicos para poder usar el Potencimetro de esta que est colocado en el canal AN1.
25
Flowcode V6 + Arduino
7.
Botn
La siguiente prctica consiste en la activacin de una salida digital dependiendo del estado de una entrada digital. La designacin de estas seales ser: Entrada digital: PIN 2 (Arduino) PORTD.2 o PD2 (Flowcode) Salida digital: PIN 10 (Arduino) PORTB 2 o PB2(Flowcode) El diagrama de flujo es muy sencillo. Dentro, como siempre, de Bucle pondremos un condicional Decisin en el que se preguntar por el estado de la variable de entrada del Puerto $PORTD.2
Seguidamente colocaremos los bloques de Salida con la seal de puerto PB2 en valor 0 y valor 1
26
Flowcode V6 + Arduino
Para el Panel de Sistema se han colocado un Led (dash_lamp1) y un Interruptor (dash_switch1) sacados de las libreras Inputs y Outputs respectivamente
A estos dos elementos se les asociaran los pines correspondientes $PORTB.2 y $PORTD.2 respectivamente y las etiquetas PIN10 y PIN2 Lo siguiente ser comprobar el funcionamiento, descargar sobre la tarjeta Arduino el cdigo y verificar que todo est correcto a nivel fsico del sistema.
27
Flowcode V6 + Arduino
8.
Alarma bsica
A continuacin vamos a disear una alarma sencilla que consistir en el parpadeo de una salida digital PIN10 cuando se pulse una entrada digital que esta vez en lugar de ser directamente el pi ser una variable que habremos creado previamente.
En los diagramas de flujo que se muestran queda fcilmente aclarado el algoritmo de esta programa. Cuando se activa la entrada D2 a la que hemos llamado Alarma se cumple la condicin del bloque Decisin y se invoca la macro Blink que activa y desactiva la salida B2 cada 200 ms. En la siguiente imagen vemos los elementos que hemos definido en nuestra aplicacin: Una Variable llamada Alarma Una Macro llamada Blink Un componente llamado led_5mm_clip1 Un componente llamado sw_toggle_mtl_pnl1
28
Flowcode V6 + Arduino
Los parmetros de los componentes son los que se muestran en la siguiente figura: led_5mm_clip1 -> pin ($PORTB.1)
Flowcode V6 + Arduino
El montaje es el siguiente.
30
Flowcode V6 + Arduino
9.
Este nuevo ejemplo es una variante del anterior. Se trata de gobernar una salida que indica el estado de buen funcionamiento de un sistema con una entrada que indica un estado de alarma. Cuando por el pin de entrada de alarma parece un 1 se desactiva la salida que indica buen funcionamiento y se pone intermiten otra salida indicando que existe una alarma. Las variables sern: Se define una variable de estado que llamamos Alarma de tipo booleano. El Pulsador de Alarma se establecer en el PIN 4 que se corresponde con el PORTD.4 La salida Funcionamiento ser el PIN 10 que se corresponde con el PORTB.2. La salida intermitente Salida Alarma ser el PIN 9 que se corresponder con PORTB.1 A continuacin se muestran los elementos que debemos crear: La variable, una macro llamada Alarma y los componentes del Panel de Sistema.
El programa es muy parecido al anterior. En el bloque principal Main se establece el Bucle dentro del cual lo que haremos ser testear el estado de la entrada Pulsador de Alarma si su valor es 0 se activar la salida Funcionamiento y si es 1 (alarma) se desactiva la salida Funcionamiento y se ejecuta la macro Alarma en la que se ponen en estado intermitente Salida Alarma . En la simulacin se han dispuesto dos Leds para indicar las salidas y un interruptor para indicar la entrada de Alarma. Recordemos que los pines que se utilizan de Arduino son el PIN10, PIN9 y PIN43. En la siguiente imagen se muestran los diagramas de flujo del programa Main y de la macro Alarma
31
Flowcode V6 + Arduino
Una vez realizada la programacin se proceder a la simulacin de la aplicacin comprobando que funciona de acuerdo a como la hemos pensado.
32
Flowcode V6 + Arduino
33
Flowcode V6 + Arduino
Veamos las instrucciones que debemos colocar en nuestro diagrama de flujo Lo primero que hacemos es poner a cero el estado de las salidas de PORTB, bastar con enviar a el el dato 0. Seguidamente ponemos a 0 el valor de la variable Contador y a continuacin preguntaremos si el valor de la variable es igual a 15. Si se cumple la condicn se pondra a cero la variable (Contador=0) seguidamentes se sacar el valor por el puerto PORTB. Para finalizar ponemos un retardo para poder ver bien el encendico y apagado de los leds de salida.
En la siguiente imagen se puede distinguir el componente que hemos insertado en el Panel Sistema. Se trata de un array de 4 leds que asociamos al puerto PORTB para poder ver, en modo simulacin el esatdo del puerto. Vemos tambien la ventana de parmetros tal como queda configurada.
34
Flowcode V6 + Arduino
Realizamos la simulacion del ejemplo y psoteriormente descargamos el porgrama sobre la tarjeta Arduino, que presentara la siguiente configuracion de conexiones.
35
Flowcode V6 + Arduino
36
Flowcode V6 + Arduino
37
Flowcode V6 + Arduino
El diagrama de flujo de la aplicacin es el siguiente. Las entradas se recogen mediante el bloque de funcin Ingreso que se configura con
38
Flowcode V6 + Arduino
39
Flowcode V6 + Arduino
40
Flowcode V6 + Arduino
El control de la salida PWM se realizara mediante la entrada analgica AN1 y el pin de salida analgica PWM ser el PIN9 que se corresponde con el pin de Flowcode PORTB.1 y que equivale al Channel3 del objeto de librera PWM. Se han colocado los siguientes objetos en el Panel de Sistema: Un potencimetro (pot_color_cap1), un Display tipo CD (cd_4x20) y el propio objeto PWM. En la siguiente imagen vemos sus parmetros. El objeto potencimetro nos permite definir el canal analgico que vamos a leer en la tarjeta Arduino AN1 y el bloque PWM en el que hemos seleccionado el Canal3 nos permite definir como salida PWM el PIN9.
41
Flowcode V6 + Arduino
La programacin de la aplicacin es muy sencilla. 1. Colocaremos en primer lugar un bloque para asignar un valor por defecto a la variable Control_PWM que es la que recoge el valor de activacin de la seal de salida PWM (Bloque de Calculo al que hemos etiquetado como Fijar bvariable Control_PWM=0 2. Seguidamente colocamos un bloque de Macro en el que activamos el componente PWM (bloque Macro al que hemos llamado Llamar Macro Componente PWM) seleccionando el parmetro Enable. 3. Una vez realizadas estas operaciones entraremos en el Bucle y all llamamos a un bloque Macro que se encargara de designar el potencimetro a la variable Control_PWM que ya hemos asociado al pin AN1 cuando hemos definido el objeto para colocarlo en el Panel de Sistema. 4. En el siguiente bloque Macro (Llamar Componente pot_color_cap1) configuramos el parmetro SetDutyCycle del objeto PWM a la variable Control_PWM. 5. Con este nuevo bloque Macro (Llamar Macro Componente PWM) asociamos el parmetro SetDutyCycle a la variable Control_PWM 6. Este bloque Macro (Llamar Macro Componente LCD_4x20) y borra lo escrito anteriormente (Clear)
42
Flowcode V6 + Arduino
7. Este bloque Macro (Llamar Macro Componente LCD_4x20) realiza la escritura del valor de la variable Control PWM en el display 8. Par finalizar ponemos un bloque Demora que introduce un retardo de 10ms.
En la simulacin podremos observar en el componente PWM el trazado de la seal PWM comprobando el factor de ciclo.
43
Flowcode V6 + Arduino
44
Flowcode V6 + Arduino
II Velocidad (Int2) PIN4 Control_PWM= 150 III Velocidad (Int3) PIN5 Control _PWM= 200 El Panel Sistema de nuestra aplicacin tendr tres interruptores, uno por cada velocidad, tres Leds indicadores de la velocidad y el elementos PWM.
45
Flowcode V6 + Arduino
El Panel de Sistema se configurar con los tres interruptores (sw_toggle_mtl_pnl1, sw_toggle_mtl_pnl2, sw_toggle_mtl_pnl3) que simularan las entradas correspondientes. Se colocarn tres diodos leds (led_5mm_clip1, led_5mm_clip2, led_5mm_clip3) para sealizar el estado de estas entradas y finalmente aparece el objeto PWM1
46
Flowcode V6 + Arduino
A continuacin se muestra el diagrama de flujo de la aplicacin. Vemos que, mediante tres condicionales, preguntamos el estado de las entradas y en cada cado se asigna un valor a la variable Control_PWM que es la que finalmente es enviada a la salida PWM1. La configuracin del algoritmo es la siguiente: 1. Colocaremos en primer lugar un bloque para asignar un valor por defecto a la variable Control_PWM que es la que recoge el valor de activacin de la seal de salida PWM (Bloque de Calculo al que hemos etiquetado como Fijar variable Control_PWM=0.
2. Seguidamente colocamos un bloque de Macro en el que activamos el componente PWM (bloque Macro al que hemos llamado Llamar Macro Componente PWM) seleccionando el parmetro Enable.
3. Una vez realizadas estas operaciones entraremos en el Bucle y all llamamos a un bloque Macro que se encargara de controlar el funcionamiento del Componente PWM.
4. Se pregunta si el interruptor Int1 (PIN3) esta activado y si lo esta se asigna a Control_PWM el valor 50
47
Flowcode V6 + Arduino
5. Se pregunta si el interruptor Int2 (PIN4) esta activado y si lo esta se asigna a Control_PWM el valor 150
6. Se pregunta si el interruptor Int1 (PIN5) esta activado y si lo esta se asigna a Control_PWM el valor 200
7. Con este nuevo bloque Macro (Llamar Macro Componente PWM) asociamos el parmetro SetDutyCycle a la variable Control_PWM
48
Flowcode V6 + Arduino
49
Flowcode V6 + Arduino
50
Flowcode V6 + Arduino
15. Termostato
Vamos a construir una aplicacin mediante la cual se pretende controlar un elemento calefactor mediante un rel. Tomaremos una seal de consigna que recibiremos de un termostato y por otro lado leeremos la seal de una sonda. Dependiendo del resultado de la comparacin de ambas seales gobernaremos una salida. Se crear una variable que ser la que recoja el valor de la temperatura: Temperatura La designacin de entradas y salidas es la siguiente: Consigna termostato Salida del rel del calefactor AN1 (PC1) PIN8 (PB0)
El Panel de sistema para la simulacin se construir colocando tres elementos: Un led (dash_lamp1), un potencimetro (pot_col_cap1)y un visualizador analgico (dash_meter1). Los parmetros de estos componentes son los que aparecen en la siguiente figura.
51
Flowcode V6 + Arduino
Las etapas y bloques que se deben insertar en el diagrama de flujo son los siguientes:
52
Flowcode V6 + Arduino
1. Colocaremos en primer lugar un bloque de Clculo para asignar un valor por defecto a la variable Temperatura (Bloque de Calculo al que hemos etiquetado como Inicializa Temperatura=0).
2. Entraremos en el Bucle.
3. Mediante una Macro de Componente se asocia el valor de Temperatura al parmetro GetByte del potencimetro.
53
Flowcode V6 + Arduino
4. Mediante una Macro de Simulacin enviamos el valor Temperatura al medidor analgico (parmetro SetValue).
5. Con la ayuda del bloque Decisin, preguntando si Temperatura >100 estableceremos la activacin o desactivacin de la salida.
6. En este nivel aparecen dos bloques de Salida que ponen en 0 o en 1 la salida B0 (PIN8) dependiendo de si se cumple o no la condicin establecida en el bloque anterior.
Agradecimiento: Quiero expresar mi agradecimiento a la firma Matrix Multimedia Ltd http://www.matrixmultimedia.com por haberme facilitado la utilizacin tanto de su software Flowcode 6 como de los bloques de la serie E-Blocks que he enumerado anteriormente. Especial reconocimiento a la persona: Carl Hegarty R&D Manager de Matrix Multimedia
54