Está en la página 1de 69

1

Mind+

Manual de Usuario y Tutorial Bsico

Mind+ es una potente herramienta de
Programacin Visual para Arduino


Prof. Jos Manuel Ruiz Gutirrez
Marzo 2014
2

ndice
1. Qu es Mind+?
2. Cuestiones bsicas para empezar?
3. Nuestro primer trabajo con Mind+
4. Intermitente usando bloque retardo.
5. Intermitente usando Bloque Temporizador
6. Activacin de una salida en modo biestable
7. Secuencia de encendido sin bucle
8. Semforo
9. Secuencia de encendido con bucle.
10. Temporizaciones. Monoestables.
11. Lee un valor analgico y lo enva al puerto
12. Intermitente con variacin de tiempo.
13. Medida de Luz con activacin de salida.
14. Medida de luz y deteccin de niveles.
15. Contador con bucle de suma
16. Contador de dos bits.
17. Contador 3 bits
18. Control de un Servo y salida PWM
19. Activacin de Servo siguiendo una curva de valores dada.
20. Generador de seal Lineal (Rampa)
21. Generador de impulsos.
22. Emulacin Sensor Capacitivo
23. Receptor bsico de Infrarrojos
24. Gobierno de Salida con Infrarrojos
25. Medida de Temperatura con Alarma
26. Medida de temperatura y humedad
27. ANEXO I



Jos Manuel Ruiz Gutirrez
Marzo 2014. Ver1
Este trabajo est bajo licencia Creative Commons Attribution 3.0 Unported License)
3

1. Que es MindPLus (Mind+)?

Se trata de una herramienta de programacin grfica que permite realizar aplicaciones
para la Plataforma Open Hardware Arduino.
El entorno est basado en la elaboracin de un esquema a base de bloques de funcin
enlazados que se ajustan a las distintas funciones que se realizan sobre los terminales de
la tarjeta Windows encaminadas a la gestin de las E/S de esta.
Mind+ dispone una amplia librera de bloques de funcin con los que podemos realizar
una amplia gama de aplicaciones.
Ventajas de la Herramienta:
Su carcter grafico. Esto nos descarga de la laboriosa labor de escribir nuestros
programas en el IDE de Arduino.


Generacin de cdigo. Esta posibilidad permite generar y descargar el cdigo
sobre el micro controlador y despus poder liberar la conexin con el PC y tener
nuestra aplicacin totalmente programada.
4



Amplia coleccin de libreras. Existe una amplia gama de libreras de bloque de
funcin que permiten la manipulacin de los pines de Arduino.

Posibilidad de edicin de los bloques de librera e incluso creacin de bloques
propios. Para esto la herramienta viene acompaad de un software llamado
BlockMaker con el que es posible incluir nuevos bloques con cdigo compatible
con el IDE de Arduino e incluso compatibilizando las llamadas a las libreras de
Arduino.

5

Muy adecuado a la educacin. Esta herramienta es muy til para la educacin ya
que permite de in modo fcil estudiar las posibilidades de la plataforma Arduino.

Permite la conexin con distintas plataformas Arduino. Se puede realizar la
programacin de distintas variedades de Arduino.

La herramienta en el momento de finalizar este manual se encuentra en fase de
evaluacin con la versin0.96c que se puede descargar http://www.mindplus.cc/
Min+ permite la sencilla creacin de prototipos en muy poco tiempo. Nos libera de la
tediosa escritura de cdigo y est abierto a la ampliacin.
6


Estas son las etapas en el desarrollo de una aplicacin
Versiones disponibles de Mind+
Existen tres versiones de Mind+: para Windows, para Mac y para Linux
Requisitos para el funcionamiento.
Es importante que nuestro ordenador tenga instalado ya el driver correspondiente para el
reconocimiento de la tarjeta Arduino. Debemos saber tambin en que numero de puerto
esta conectada. Esto se puede hacer directamente desde el IDE de Arduino en su men
de opciones Herramientas lo podemos encontrar.
En la pgina web de Mind+ hay documentacin en la que se describe con detalle la
instalacin del software.
7

2. Cuestiones bsicas para empezar.
NOTA MUY IMPORTANTE:
Este manual se ha realizado con una versin de las libreras de funciones parte de ellas
traducidas al espaol. Para poder cargar los ejemplos que se abordan es preciso
colocar la carpeta Espaol dentro de la carpeta Blocks que a su vez esta dentro de la
carpeta Resources.
..\Mind+\resource\Blocks
..\Mind+\resource\Blocks\-Espaol
Los ejemplos se pueden colcar en una carpeta dentro de la carpeta Mind+
..\Mind+\Ejemplos manual
Las libreras han sido traducidas solo a nivel de sus nombres y ventanas de texto de
ayuda que muestran en cada uno de sus terminales.

Bloques de funcin.
Los bloques de funcin tienen una estructura bsica que conviene tener en cuenta. En la
figura vemos un ejemplo.

Las cajas de parmetros permiten la introduccin de los parmetros (numrico, texto,
PIN, etc.), tambin pueden recibir valores de otros bloques (bloques de salida).
Las salidas entregan normalmente estado ON, OFF que sirven para activar la entradas
de otros bloques.
Los conectores se establecen con la ayuda del ratn: manteniendo pulsado el botn
derecho del ratn sobre el bloque de comienzo de la conexin y arrastrando y soltado en
el terminal final de la conexin.
Los terminales, para ser unidos, deben ser de la misma naturaleza en cuanto a los datos
que emiten o reciben.
8

Ayuda:
Todos los bloque muestran una caja de texto de ayuda cuando dejamos el raton sobre el
termina correspondiente. Esta ayuda nos permite comprender mejor la funcionalidad de
ese terminal.

Borrar bloques y enlaces:

Para borrar un bloque se marca con el ratn (botn izquierdo), el bloque se queda
marcado con un contorno amarillo y luego pulsamos directamente en el icono de la
papelera (parte superior derecha de la barra de men) y se borra. Tambin se borra si
pulsamos la tecla DEL.
Para borrar un enlace se proceder de similar manera. Se marca el enlace a borrar, se
colorea de amarillo y se pulsa el botn de la papelera o la tecla DEL.




9

Conexiones entre Bloques.
El bloque Start emite la orden de activacin de los bloques, aunque tambin
estos se pueden activar con las salidas de otros bloques o incluso se pueden establecer
realimentaciones ente la salida y la entrada de un mismo bloque.

En el caso A se activa la funcin Leer Digital uniendo la salida Start con la entrada de
este bloque.
Es posible conectar las salidas de un bloque con las entradas de otros, con el fin de
realizar la activacin de unas funciones detrs de otras, tal como se indica en el caso B
de la figura.
En ocasiones se pueden realizar realimentaciones de bloques. As lo podemos ver en el
caso C de la figura anterior. Esto permite que se este ejecutando el bloque de manera
permanente. La idea es que una vez realizada la operacin, los bloques activan sus
salidas para permitir la actuacin progresiva de las siguientes.
Los bloques intercambian entre ellos informacin. Por ejemplo si deseamos realizar una
estructura condicional tomando un valor ledo en una entrada analgica para activar una
salida si se cumple una condicin tendremos que realizar conexiones entre bloque que
se envan informacin. En la figura lo vemos.

Se lee el canal analgico A0 y se enva el valor al bloque IF, a la vez, para activar el
bloque IF llevamos la salida del bloque Leer Analgica a la entrada del bloque IF. En
este caso cuando se lee el valor del canal A0 se activa seguidamente la salida del bloque
de lectura. Vemos que la salida del bloque IF la conectamos al bloque Escribir Digital,
10

ya que del mismo modo que en el caso anterior, una vez ejecutado el bloque IF se
activan las salidas de este bloque, para permitir el desarrollo de la secuencia de
ejecucin.
Una misma salida de activacin puede ir a ms de una entrada. Se supone que en este
caso los bloques que son excitados por la misma seal se ejecutan a la vez.
En la figura vemos que la entrada digital PIN2 gobierna a la vez, mediante un bloque
Leer Digital, las salidas PIN3 y PIN13 de los dos bloques Escribir Digital.


Flujos de datos y rdenes.
No olvidemos que los conectores rojos son para trasladar datos e informaciones y los
conectores azules son para trasladar rdenes.


El men.
En cuanto al men del entorno es muy sencillo. En la figura vemos los principales
comandos.

Componentes de librera.
11

Hay dos formas de mostrar los componentes de librera una en la que se muestran los
ms usuales e importantes y otra en la que se muestran todos. Se conmuta mediante los
botones que figuran en la parte inferior izquierda.


En la figura vemos los dos tipos de libreras, la bsica y la completa. Las libreras estn
en una carpeta dentro de la carpeta en donde est el programa Mind+ llamada:
\MindPlusV096c\Mindplus096c\resource\Blocks
Dedicaremos en este o en otro manual un espacio al comentario de cmo modificar y/o
crear nuevos bloques de funcin con la herramienta BlockMaker.
Nota IMPORTANTE Sobre las Libreras
Para la realizacin de este trabajo he traducido las libreras que viene con la versin de
distribucin de Mind+ al espaol y las he colocado en una carpeta llamada Espaol.
Los ejemplos que voy a realizar en este manual estn co9nstruidos con esta librera
traducida, por lo que es necesario disponer de ella copiada en la carpeta de los bloques:
\MindPlusV096c\Mindplus096c\resource\Blocks\-Espaol
12

3. Nuestro primer trabajo con Mind+
En este primer ejemplo hacemos uso del bloque Intermitente que se encuentra en la
librera de Bloques Bsicos.

La funcin que realiza es activar una salida que seleccionamos en su parmetro de
entrada PIN de Salida y el valor del tiempo que deseamos que dure activada y
desactivada esta salida.


Al pulsar dos veces sobre el tringulo rojo del parmetro se abrirn sendas ventanas de
recogida de datos en las que seleccionamos el PIN y el tiempo.

La realizacin del conexionado de los bloques es muy sencilla. Basta con pulsar en el
lugar START y manteniendo pulsado llegar a al tringulo azul de entrada o
activacin. En la figura vemos el procedimiento.
13


Una vez realizado el conexionado del bloque y colocados sus parmetros pulamos en el
icono Upload y aparecer la venta de la siguiente figura. Si es necesario
seleccionamos la tarjeta que tenemos conectada y tambin el puerto (por defecto ya nos
indicar el adecuado).

Pulsaremos en el texto Upload y el programa se cargar en la tarjeta Arduino.

Despus pulsamos en Done y nuestro programa estar funcionando.
El ejemplo se encuentra en el fichero: blink.mps
El siguiente es el montaje de este ejemplo.
14



15

4. Intermitente usando bloque retardo.
Esta vez vamos a realizar un intermitente que bsicamente funcionar como el anterior
pero lo implementaremos con otros bloques.
Bloques a usar: 2 Bloques LED de la librera Mind+Kit
2 Bloques Retardo de la librera Tiempo
El bloque LED tiene dos entradas por las cuales lo activamos o lo desactivamos ON y
OFF son los nombres de estas. En la parte superior tiene una entrada de parmetros por
la que seleccionbamos el PIN sobre el que queremos trabajar. En realidad el bloque
hace lo que la funcin digital.Write del IDE de Arduino.
Las salidas del bloque igual que la entrada son ON y OFF se activan cuando se ejecuta
la funcin LED.

Cableamos la entrada ON a START para activar el bloque
Con la entrada OFF se desactivara la salida.
Cuando activamos la entrada ON se activa tambin la salida ON y si desactivamos con
la entrada OFF tambin se activa la salida OFF

El bloque de Retardo se activa a travs de su entrada ON y una vez finalizado el
tiempo se activa su terminal de salida.
Hemos colocado los bloque LED asociados al PIN 5 unidos por los bloques de
Retardo, teniendo en cuenta que una vez finalizado el tiempo del primer bloque de
Retardo se debe desactivar la salida PIN 5 y a la vez se activa el bloque de Retardo
16

segundo que una vez finalizado su tiempo su salida volver a activar el PIN 5
(realimentacin).
Hemos seleccionado 500 ms de tiempo pero aqu podemos controlar el tiempo se
encendido (primer bloque de Retado) y el de apagado (segundo bloque de Retardo)


Una vez realizado el cableado se procedera a descargar la aplicacin sobre la tarjeta
(mediante el botn Upload)
El montaje sobre protoboard seria el siguiente.

Fichero del ejercicio: blink1
17

5. Intermitente usando Bloque Temporizador
Vamos a utilizar en este ejemplo un nuevo bloque llamado Temporizador y que
funciona exactamente como un temporizador. Cuando se activa su seal de entrada ON
se pone a temporizar, sacando por su salida de parmetro el Valor de Tiempo
Actual. Una vez que termina el tiempo se activa la primera salida (superior) del
bloque. Mientras temporiza la salida inferior se mantiene activa.
El valor del tiempo se introduce en el bloque como un parmetro mediante la caja de
entrada de valor que aparece cuando pulsamos dos veces seguidas en la entrada de este
parmetro.

La idea es activar y desactivar una salida digital, que esta vez hemos seleccionado en el
PIN3. Para conseguir el basculamineto de la seal lo hacemos mediante el bloque
Interruptor Switch que acta como biestable.
En la siguiente figura vemos este nuevo bloque Interruptor Switch.

La salida del temporizador la realimentamos con la entrada para que de ese modo se
generen las temporizaciones en modo bucle consiguiendo el encendido y apagado
del Led conectado en el PIN3

18



Este serie el montaje sobre protoboard del ejemplo.
Fichero: blink_con_temporizador
19

6. Activacin de una salida en modo biestable
Antes de nada explicare como funciona un nuevo bloque de funcin que vamos a
utilizar: Bloque Botn.
Este bloque se encarga de programar un PIN digital de Arduino en una entrada digital.
Los parmetros que le debemos designar son el PIN y el tiempo de retardo antirrebotes.
Sus entradas son dos: Una la que activa el bloque y otra la que lo desactiva.
Sus salidas son dos y simplemente son las salidas ON y OFF de cualquier bloque
general que sirven para trasladar la orden de activacin del bloque siguiente en
secuencia, despus de ejecutada en este caso la lectura del PIN de entrada establecido.
El bloque de la figura pertenece a las libreras Mind+Kit pero hay uno similar definido
en la librera Bsicos.


El bloque similar de la librera Bsicos es el siguiente.

A) Por flanco de subida
Con esta aplicacin gobernaremos una salida digital con una entrada digital en
modo biestable, es decir con memoria. Se trata de utilizar un bloque muy
interesante llamado Interruptor Swtich que recibe impulsos e su entrada y
cambia el estado de sus salidas guardando el estado en el que se queda, es decir
se trata de un biestable.
20

La manera de activar este bloque biestable puede ser o bien actuando con el
flanco se subida o bien de bajada de las seal de entrada. En ambos casos se
mantiene la funcin de memoria pero cambia el modo de activacin.

En el montaje vemos que un bloque Botn gobierna al bloque Interruptor
Switch y lo hace en su salida.
La entrada que designamos es el PIN2 y la salida el PIN3.
Cuando pulsemos el botn del pulsador puesto en el PIN2 cambiara de estado la
salida PIN3.

Fichero: boton_activa_al_Pulsar
B) Por flanco de bajada

En este montaje he introducido un nuevo bloque Escribir Digital que este en la
librera Bsicos y que funciona exactamente igual que el bloque LED ya
comentado anteriormente.

Las dos entradas sirven para poner en 0 o e 1 el PIN que designemos en la
entrada de parmetros Selecciona PIN. Las salidas sirven para propagar las
ordenes de activacio0n y desactivacin de los bloques que vengan a
continuacin.
Este montaje en lo nico que vara es en el conexionado de las salidas del bloque
Interruptor Switch con el bloque Escribir Digital que estn cruzadas.
21



En este caso se gobierna el bloque Iterruptor Switch con flancos de bajada
en su entrada.
Fichero: boton_activa_al_Soltar
El montaje sobre protoboard es el siguiente.

22

7. Secuencia de encendido sin bucle
En algn caso podramos querer encender hasta tres LEDs en secuencia con tiempos
distintos. Para ello bastara encadenar Retardos y bloques LED.
Este es el ejemplo que vemos en la figura.
Utilizaremos tres salidas digitales PIN3, PIN4 y PIN5 que estarn gobernadas mediante
los bloques de funcin LED de la librera Min+Kit.
Los bloques de Retardo los fijamos a 500 ms.
Debemos fijarnos en el conexionado de los bloques ya que los bloques LED poseen dos
salidas una ON y otra OFF las salidas que usamos son las ON, esto significa que cuando
se activa el bloque LED (se enciende el Led conectado en el PIN) a la vez se pone en
marcha el bloque Retardo, el cual una vez transcurrido su tiempo se activa su salida que
ser la misma que active el siguiente bloque LED.

No olvidemos que la secuencia una vez ejecutada no vuelve a realizarse dado que no
hemos realimentado la ltima accin del bloque LED con el primero. Tendramos que
pulsar el botn de Reinicio de la tarjeta de Arduino para conseguir realizar e nuevo el
encendido de los LEDs.
La secuencia se realiza nada mas iniciar Arduino y una vez encendidos los Leds se
quedan as. Para volver a ejecutar la secuencia debemos pulsar el botn Reset de la
tarjeta Arduino.
El fichero del ejemplo se denomina secuencia_simple
El montaje es el de la figura siguiente
23


24

8. Semforo.
En este ejemplo mostramos la posibilidad de realizar un semforo simplemente
realizando el enlazado de bloques de Retardo y Escribir Digital realimentadas.
Las salidas establecidas son PIN3, PIN4 y PIN5.

El montaje es el siguiente.

El fichero del ejemplo es: semforo
25

9. Secuencia de encendido con bucle
A continuacin vemos la realizacin de una secuencia de encendido de Leds en forma
de bucle repetitivo. Se utilizaran de nuevo las salidas digitales PIN3, PIN4 y PIN5.
Vemos que los bloques utilizados son simplemente de dos tipos: Escribir Digital y
Retado
En esta ocasin colocaremos los bloques de Retardo de tal manera que los leds
realicen la secuencia siguiente.
N Sec. PIN3 PIN4 PIN5
1 1 0 0
2 1 1 0
3 1 1 1
4 0 1 1
5 0 0 1
1 1 0 0



Fichero: secuencia_bucle
Otra posibilidad de realizar una secuencia sera la que se lleva a cabo con el montaje
siguiente.
26

N Sec. PIN3 PIN4 PIN5
1 1 0 0
2 0 1 0
3 0 0 1
4 1 0 0



Fichero: secuencia_bucle2
El montaje sobre protoboard es el siguiente.

27

10. Temporizaciones. Monoestables.
Par realizar temporizaciones se recurre al bloque Temporizador con este se pueden
implementar monoestables. En esta practica montaremos dos tipos de monoestables.
A) Temporizacin con flanco de subida
En este primer tipo se trata de activar la temporizacin con un flanco de subida,
es decir cuando la seal en el PIN2 de entrada pasa de valer 0 a valer 1 (al pulsar
el botn)

Este diagrama de tiempo muestra con claridad el efecto del monoestable a nivel
temporal.
Los bloques que se utilizan son tres. El bloque Leer Digital recoge el valor de
la entrada PIN2 y cuando se produce el cambio de nivel flanco ascendente- se
activa el temporizador al que le hemos colocado el parmetro de tiempo en valor
de 3000 ms. La salida del temporizador se lleva finalmente a un bloque se salida
digital Escribir Digital que es el que gobierna el estado del PIN3 de Arduino
al que le hemos colocado un diodo led. Obsrvese que las salidas del
Temporizador y las entradas del bloque Escribir Digital estn cruzadas.

Fichero: monoestable1
B) Temporizacin con flanco de bajada
En este segundo tipo de monoestable se trata de activar la temporizacin con un
flanco de bajada, es decir cuando la seal en el PIN2 de entrada pasa de valer 1
a valer 0 (al soltar el botn)

28



Este segundo diagrama de tiempo muestra con claridad el efecto del monoestable a
nivel temporal.
Los bloques que se utilizan en este segundo montaje son exactamente los mismos. La
salida del temporizador se lleva finalmente a un bloque se salida digital Escribir
Digital pero se hace directamente de la primera salida del bloque Temporizador a
la primera entrada del bloque Escribir Digital y la segunda a la segunda.
Fichero: monoestable2
El montaje en la protoboard es el siguiente.

29

11. Lee un valor analgico y lo enva al puerto
Aqu vamos a trabajar con los siguientes bloques: 1 Bloque de Leer Analgica
1 Bloque Enva Nmero P.Serie
1 Bloque Retardo
El Bloque de lectura analgica realiza la funcin equivalente a la instruccin
analog.Read de IDE de Arduino. El blooque se activa por la entrada ON y genera una
orden de lectura en el canal analgico indicado en la entrada de parmetros Selecciona
PIN de Arduino. Los valores de lectura real oscilan entre 0 y 1024 pero en este bloque
podemos realizar el escaldo de ese rango y llevarlo a otro por ejemplo de 0 a 100, estos
valores se acotan mediante los parmetros de entrada Valor Desde y Valor Hasta.

El valor de salida se recoge en el terminal de datos Valor Salida La salida Activa
Siguiente Bloque traslada la oren para gobernar el siguiente bloque que pusiramos.
El siguiente bloque que hemos incluido es el bloque Enva Nmero P. Serie que se
encarga de enviar al puerto serie el valor que coloquemos en su entrada de parmetros
segunda Dato Numrico colocando un texto en la entrad primera Etiqueta Texto
Enviar. La orden de enva se ejecuta cuando en la entrad del bloque aparece un 1
True y su salida Activo Cuando acaba el envo indica que se ha ejecut5ado la orden



El montaje es muy sencillo. Se activa con START el bloque Leer Analgica llevando
el dato Valor Salida a la entrada del bloque de envo al puerto. Por otro lado la salida
del bloque se lleva a la entrada de este bloque de envo para que se ejecute.
30

La salida del bloque de envo al puerto se lleva a un temporizador para que con una
cadencia de 500 ms. Se repitan los envos (realimentndose al bloque de envo)

Cuando descarguemos la aplicacin a la tarjeta Arduino podremos visualizar el valor
que se est leyendo mediante el Monitor de Puerto que tiene Mind+. Icono
que automticamente abre una ventana de visualizacin como la de la figura.

Habilitando la casilla aparecen retornos lnea automticos en la
visualizacin.
Fijmonos en el nmero puerto y en la velocidad es importante .
La velocidad debe ser 9600 porque as est programado el bloque.
31

Desde esta ventana tambin podemos enviar datos a Arduino. Ya veremos algn
ejemplo ms adelante.
El fichero de esta aplicacin es: analogica1
En la figura siguiente vemos el montaje en protoboard de la aplicacin.

32

12. Intermitente con variacin de tiempo
Una vez que hemos realizado la prctica anterior vamos a continuar con las seales
analgicas. Esta vez la propuesta consiste en realizar un Intermitente pero con el
tiempo variable. Se trata de que el valor de temporizacin se recoja de una entrada
analgica, pongamos de la entrada A0.

Inyectamos el valor ledo en el canal A0 en la entrada de parmetro Tiempo del
bloque Retardo.
Actuaremos en la salida PIN3 en donde escribiremos Cero y Uno con este retardo
establecido. Lo ms importante es ver como la salida del segundo retardo se lleva no
solo al primer bloque de Escribir Digital para que la vuelva a activar.
No olvidemos que las entradas de los bloques Escribir Digital sirve para poner a 1 o a
0 la salida PIN3.
El fichero de esta prctica es: blink2
La figura siguiente representa el montaje de esta practica.


33

13. Medida de Luz con activacin de salida.
Vamos a realizar una aplicacin en la que leeremos el valor de un canal analgico
A0 de la tarjeta Arduino en el que tenemos conectada una LDR.
El bloque IF tiene la estructura del la figura.

El valor que leemos lo llevamos a al primer trmino del bloque condicional IF
que lo que hace es comparar si el valor de A0 es menor que 0. Si se cumple la
condicin se activa la salida primera del bloque y si no se activa la segunda. Al
realizar la conexin directa de las salidas 1 y 2 del bloque IF a las entradas 1 y 2
del bloque Escribir Digital el PIN3 estar en estado 1 cuando no se cumple la
condicin y se pondr a 0 cuando se cumpla. El valor ledo tambin se enva al
puerto serie mediante el bloque Enva Nmero P.Serie con cadencias de 500ms
que establecemos con el bloque Retardo.



En la siguiente imagen se ve la pantalla de Mind+ en modo monitorizacin con la
venta de visualizacin del puerto serie abierta y mostrando cada

34


Fichero: sensor luz
El montaje es el de la siguiente figura

35

14. Medida de luz y deteccin de niveles.
Con este ejemplo vamos a realizar la medida de la cantidad de luz a travs de un
sensor que colocaremos en el canal analgico A0 realizando hasta tres
comparaciones con la instruccin IF de tal manera que podamos detectar tres niveles
de iluminacin.
Fijaremos el escalado de la seal leda entre 0 y 100. Tambin pondremos en el
puerto serie el valor ledo
Si A0 >= 40 entonces activaremos la salida PIN3
Si A0 >= 60 entonces activaremos la salida PIN3
Si A0 >= 75 entonces activaremos la salida PIN3


En la siguiente pantalla vemos la aplicacin con la ventana de visualizacin del
puerto abierta.

36

El fichero del ejemplo es: sensor luz escalado
Este sera el montaje en protoboard.



37

15. Buzzer. Distintos montajes
a. Activacin de sonido al levantar botn (flanco de bajada)
En este montaje se trata de leer el valor de una entrada digital PIN2 y en funcin
del valor ledo activar o no el Altavoz es la funcin Buzzer.
Los parmetros de esta funcin se muestran en el esquema de la siguiente figura.

La emisin del sonido ser al levantar el botn, es decir en flanco de bajada.


b. Activacin de sonido al pulsar (flanco de subida)
Ahora en este otro montaje lo que ocurrir es que se emitir el sonido al pulsar el
botn, es decir cuando la seal pase de o a 1 (flanco de subida).

El montaje en protoboard es el siguiente:
38


Los ficheros de este ejemplo son: buzzer y buzzer1
BLOQUE TONO
Un bloque parecido a Altavoz es Tono.
El bloque tono lo que hace es emitir de manera permanente un tono, siewmrpe que su
entrada ON este activada. Para dejar de sonar basta con que activemos la entrada STOP


39


Los ficheros en donde estn estos ejemplos son: tono y tono1
El montaje es el mismo que el anterior.

40

16. Contador con bucle de suma
Este ejemplo nos muestra como realizar un contador haciendo uso del bloque
Sumar +. Se trata de realizar una realimentacin del resultado con el primer
sumando, de tal manera que cuando llega la orden sumar se sume el segundo
sumando al valor del resultado de la ultima suma.

La idea es que cada vez que aparece un impulso en la entrada PIN2 se realiza una
suma. El resultado se enva al puerto para poder leerse en la ventana de
monitorizacin de este. La escritura del valor de la suma se realiza cada 500 ms.

En la siguiente imagen vemos el aspecto de la pantalla mientras se est ejecutando el
programa en Arduino

Fichero: contador1
41

17. Contador de dos bits.
Este ejemplo nos muestra como es posible crear un contador binario utilizando el
bloque de funcin Interruptor Switch que es en definitiva un bloque biestable.
Se trata de realizar un esquema que cumpla la tabla siguiente.
Impulso A
PIN4
B
PIN5
0 0 0
1 1 0
2 0 1
3 1 1

Las salidas se han seleccionado en los pines PIN4 y PIN5.
La entrada de impulsos de cuenta se establece en el PIN2 haciendo uso de un bloque
Leer Digital


La conexin del bloque Interruptor Switch al bloque Escribir Digital se hace con
los dos terminales para conseguir el encendido y apagado asociado a los dos estados del
switch
El fichero que contiene la aplicacin es: contador3
El montaje sobre protoboard es el de la siguiente figura.
42







43

18. Contador 3 bits
En este contador lo nico que hemos aadido es una salida ms. Ahora las salidas son
PIN3, PIN4 y PIN5 y la entrada de impulsos sigue siendo el PIN2.

Impulso A
PIN3
B
PIN4
C
PIN5
0 0 0 0
1 1 0 0
2 0 1 0
3 1 1 0
4 1 0 0
5 1 0 1
6 1 1 0
7 1 1 1

En al tabla anterior se muestran los distintos estados por los que va pasando el contador.
La figura siguiente muestra el esquema de conexionado.

44

El fichero de este ejemplo es: contador4.
El esquema de montaje es el que se muestra a continuacin.


45

19. Control de un Servo y salida PWM
Con este ejemplo vamos a gobernar un servo, PIN3, haciendo uso del bloque de
funcin Poner Angulo Servo con el dato obtenido desde el canal analgico A0 en el
que conectaremos un potencimetro. A la vez activaremos en modo PWM el PIN5.
El nuevo bloque que aparece es Poner Angulo Servo del que mostramos sus
parmetros a continuacin.

Como el valor mximo que podemos colocar en la entrada Angulo del bloque lo que
hacemos es realizar el escalado del rango de la seal leda del canal A0 en el prpio
bloque Leer Analgica, que siendo de 0 a 1024 pasa a ser de 0 a 180.
La misma seal de A0 tenemos que llevarla a un pin PWM, en nuestro caso al PIN5
para ello recurrimos al bloque Escalar y esta vez nos llevamos la seal al rango de 0
a 255 que como sabemos es el rango permitido para las salidas analgicas PWM de la
tarjeta Arduino. La seal PWM la sacamos al PIN5 con un bloque Escribir
Analgica.
El bloque Escalar se muestra en la siguiente figura.

El bloque Escribir Analgica se muestra en la siguiente imagen.

Se marca el rango de entrada y el de salida y es suficiente.
46

En la figura siguiente se muestre el ejemplo completo.

El fichero que lo contiene es: servo1
El montaje en protoboard es el siguiente.



47

20. Activacin de Servo siguiendo una curva de
valores dada.
En esta aplicacin vamos a mover un servo de acurdo con una funcin de salida cuyos
datos sern secuencialmente sacados al PIN3. Para ello utilizaremos un nuevo bloque
que se denomina Generador Curva y que aparece en la siguiente figura.

La entrada de valores en la curva se realiza mediante una ventana en la que se pueden
definir los puntos y con la ayuda del ratn situarlos en el rea.
En nuestro caso vamos los parmetros de la curva a seguir son:
Tiempo total del ciclo: 5000 ms.
Valor Mnimo: 0
Valor Mximo: 180

La salida del bloque Generador Curva se lleva al bloque Poner Angulo Servo y a la
vez la sacamos por el puerto para visualizar los valores que se van generando.
Obsrvese que la salida del bloque se realimenta con la entrada con el fin de que el
servo este realizando el ciclo establecido de forma permanente.

En la siguiente figura vemos el esquema completo del ejercicio.

48




Pantalla visualizando datos



El ejemplo se encuentra en el fichero: servo2
El montaje de la aplicacin en protoboard es el siguiente.

49


50

21. Generador de seal Lineal (Rampa)
Existe un bloque llamado Generador Lineal que es capaz de generar una rampa de
valores acotada entre dos que se colocan en sus entradas de parmetros Desde y
Hasta La rampa se genera con una duracin que tambin podemos establecer
mediante el parmetro Tiempo.
Las salidas son tres y ellas se recogen el valor actual de la rampa, el tiempo actual y el
tanto % de rampa que se lleva ejecutado en el instante.

Para probara este bloque lo que haremos ser enviar al PIN3 loa seal de salida, que
previamente hemos establecido entre 0 y 255 ejecutndose la rampa en un tiempo de 5s.
La salida de valor tambin la llevamos al puerto serie para ver cmo va cambiando.

En la siguiente figura vemos el aspecto de la pantalla, mientras est generando la rampa,
pudiendo leer los valores en la venta de monitorizacin de puerto.
51



Este sera el montaje en protoboard.

El fichero del ejemplo es: generador linea1
52

22. Generador de impulsos.
Con este ejemplo vamos a demostrar cmo es posible crear un generador de impulso
(reloj) con la ayuda de un bloque Generador Lineal.
Si queremos una seal de 2 segundos de frecuencia (1s. Activa y 1s. Desactiva) lo que
hacemos es programar el Generador Lineal con un tiempo de 10000 ms. Y que realice la
cuenta de 0 a 10 (10 impulsos de 0.1 seg.). La salida de este se lleva a un bloque de tipo
Interruptor Switch que realizara la conmutacin en modo biestable cada vez que
llegue un impulso de Fin de generacin de valores.
La salida del bloque Interruptor Switch se lleva a un bloque de salda digital
Escribir Digital que asociamos al PIN3 por donde sacamos los impulsos de frecuencia
2s.
Esta figura muestra el sistema contando ya que hemos colocado un bloque de Envio
Numero P.Serie que saca por el puerto el estado de cuenta

La siguiente figura muestra el conexionado de los bloques en este ejemplo.
El ejemplo se encuentra en el fichero: generador lineal1
Una variacin sobre este montaje sera la siguiente. En ella se generan impulsos de
frecuencia constate, marcada por el bloque Generador Lineal que se activa mediante
una entrada PIN2.

Este ejemplo esta en el fichero: generador lineal2
53

El montaje en protoboard del caso primero es el siguiente.

El segundo caso se montara en protoboard de esta manera.

54

23. Emulacin Sensor Capacitivo
El bloque Sensor Capacitivo permite configurar un sensor capacitivo indicando los
pines entre los que se deber colocar la resistencia. Se muestra en la siguiente figura. En
su salida se muestra el valor correspondiente a la capacidad establecida entre el
conductor que une los pines de envo y recepcin.


El montaje se realiza de acuerdo a la figura siguiente. Vemos que se recoge el valor de
salida del bloque Sensor Capacitivo y se lleva a un bloque condicional IF en el que
se establece la condicin para que se active la salida PIN3. A la vez enviamos el valor
ledo del bloque sensor al puerto serie.



Vemos una imagen de la pantalla de trabajo de Mind+ en la que aparece la ventana de
visualizacin del puerto serie mostrando los valores obtenidos cada vez que tocamos el
4 en el que tenemos colocada la resistencia.
Cabe la posibilidad de realizar un montaje alternativo usando el bloque Trigger
Capacitivo Detector que directamente hace lo que el montaje anterior en un solo
bloque, es decir que integra el condicional dentro del bloque del sensor capacitivo
Fichero: sensor capacitivo1
55



El bloque Trigger Capacitivo Detector permite leer el valor y establecer un umbral
de disparo cuando se sobrepasa ese valor.

Este montaje hace lo mismo que el anterior

56

Fichero: sensor capacitivo2
La siguiente imagen es el montaje en protoboard.

57

24. Receptor bsico de Infrarrojos
Con este montaje se pretende probar de manera sencilla la forma de trabajar con sensor
de infrarrojos.
Utilizaremos el bloque Configurar Receptor IR que nos permite localizar el pin de
entrada por el cual se recibirn los impulsos procedentes de una fuente de emisin de
infrarrojos, en nuestro caso un mando a distancia lo haremos por el PIN11. Este
bloque se conecta seguidamente al bloque Receptor Cdigo IR que lo que hace es
decodificar la seal recibida generando el cdigo recibido en su pin Salida Cdigo


Seguidamente lo que hacemos es llevar al puerto serie el dato para verlo, lo haremos
mediante el bloque Enva Nmero P.Serie y bloque de retardo asociado para realizar
el muestreo de valor y enviar datos cada 500ms.
En la siguiente imagen vemos el aspecto del montaje.

La siguiente imagen muestra la pantalla estando el puerto serie abierto en modo
monitorizacin.
58


El montaje sobre protoboard sera el siguiente.
El nombre del fichero es: receptor infrarrojos

59

25. Gobierno de Salida con Infrarrojos
Con este montaje gobernaremos un pin digital de salida PIN3 cuando se lea un
determinado cdigo a travs del sensor que colocamos en el PIN11.
Los pasos a seguir seran: Configurar el receptor IR, esperar a recibir un cdigo que
previamente ya hemos visto con el montaje anterior y que se corresponde con una
determinada tecla de nuestro teclado infrarrojos y des pues activar un bloque de
conmutacin en modo biestable, para finalmente activar el PIN3.
En nuestro caso se trata de la tecla 0 cuyo cdigo en nuestro teclado es 16724175

La anterior figura es el montaje del sistema y la siguiente el montaje en protoboard.

El nombre del fichero es: infrarrojosReceptorActivador

60

26. Medida de Temperatura con Alarma
Mind+ tiene en sus libreras una denominada Temperatura dentro de la cual hay un
bloque definido especficamente para el sensor LM35 de amplio uso en los montajes
con Arduino.
En la figura vemos el esquema del bloque Sensor LM35.

Bsicamente lo que hacemos es recoger el valor del bloque sensor que hemos conectado
al pin A0 de Arduino y lo llevamos a un bloque condicional IF que lo compara con
un valor establecido como consigna, en nuestro caso 30. Si se cumple que el valor ledo
es mayor que 30 entonces se activar la salida PIN7 en la que hemos colocando un
Buzzer.

El montaje que debemos realizar en la protoboard es el de la siguiente figura.

El nombre del fichero es: sensor temperatura
61

27. Medida de temperatura y humedad
De la misma manera que en l caso anterior, dentro de la librera Temperatura existe un
bloque denominado Sensor DHT11 que lee dos variables: Humedad y Temperatura.
Los valores que lee los entrega en sus salidas correspondientes. El pin de conexin se
identifica en el parmetro de entrada PIN

Se han colocado dos bloques Enva Nmero P. Serie a travs de los cuales se
recogen los valores y de enva al puerto con retardos de 500 ms. En la figura se muestra
el esquema.

El fichero se llama: sensor humedad temperatura
62

28. ANEXO I
Principales Bloques de Mind+ Utilizados en este manual.
INTERMITENTE


LED (Salida Digital)


RETARDO


63



TEMPORIZADOR


INTERUPTOR SWITCH

BOTON (Entrada Digital)




64



LEER ANALOGICA (Entrada Analogica)

ESCRIBIR ANALGICA



ENVIAR PUERTO SERIE






65

IF


ALTAVOZ (Buzzer)



TONO


SUMA



66

PONER ANGULO SERVO


ESCALAR

GENERADOR CURVA



67

GENERADOR LINEAL



SENSOR CAPACITIVO

TRIGGER CAPACITIVO DETECTOR

CONFIGURAR RECEPTOR IR

68

RECEPTOR CODIGO IR

ENVIA CDIGO IR


SENSOR DE TEMPERATURA LM35

SENSOR DE HUMEDAD Y TEMPERATURA DHT11


69



Jos Manuel Ruiz Gutirrez
Marzo 2014. Ver1
Este trabajo est bajo licencia Creative Commons Attribution 3.0 Unported License)

También podría gustarte