En este capítulo vamos a ver tres tipos
de entradas entradas digitales entradas
analógicas y entradas de interrupción
tanto para los PLCs como para las
placas arduino necesitamos sensores del
tipo PNP
lo que significa que tenemos que leer un
voltaje para que el PLC o una placa
Arduino pueda entender que una entrada
se ha activado para las entradas
analógicas este voltaje podrá tener un
rango de entre 0 y 10 voltios para los
PLCs comentar que las placas Arduino
Leonardo y Arduino Mega trabajan a 5
voltios por lo que para leer una entrada
digital necesitan recibir 5 voltios del
sensor conectado a la entrada
correspondiente para centrarse
analógicas necesitan leer un valor de 0
a 5 voltios esta entrada analógica
debido a que las placas Arduino trabajan a
10 bits las lo transforman
de forma lineal de 0 a 1.023 que
sería el valor que le demos en el Arduino
ID ahora vamos a ver cómo funcionan
las entradas cómo se conectan y cómo se
programan ahora vamos a ver cómo se
conecta un sensor la mayoría de sensores
que utilizamos tienen tres siglos por
no extendernos demasiado el vídeo
si tenéis alguna pregunta sobre cómo se
conecta un otro tipo de sensor de dos
hilos de NPN etc
mandar un correo a curso@industrialshields.com
y tu tutor se encargará de
responder sus preguntas
primero de todo un sensor lo tenemos que
conectar al PLC mediante el cable de
señal que el sensor nos da tanto si es
digital como enológico y por lo general
los sensores también van alimentados por
lo que tienen en común lo negativo que
se llama genere y el voltaje de
alimentación que suele ser de 24 voltios
aunque también hay sensores de 12
voltios y para conectar nuestra placa
arduino también hay sensores de 5 voltios
muchas veces la fuente de alimentación
que alimenta el sensor también es la
fuente de alimentación que alimenta al
PLC por lo que también tenemos el PLC
conectado a GNV y el voltaje para que
al parecer funcione es un montaje que es
de 12 a 24 voltios
una vez ésta aparece y el sensor
alimentados lo único que falta es
conectar el cable de señal que proviene
del sensor a la entrada correspondiente
del PLC ahora vamos a ver cómo funcionan
las entradas digitales ya que estas
entradas tienen dos estados flow cuando
la programación leemos un cero y estado
height cuando en programación leemos un
1 esto es lo equivalente a no recibir
señal cuando estamos en low y recibir
voltaje cuando estamos en high
para las entradas analógicas de sensores
industriales podemos leer un intervalo
de entre 0 y 10 voltios estos no se
pueden conectar directamente a una placa
Arduino ya que éstas trabajan de 0 a 5
voltios pero sí que se pueden conectar
directamente a los PLCs basadas en Arduino las entradas analógicas tienen 10
bits aunque significa que recibimos un
valor de 0 a 1.023 a la hora de leer la
entrada la forma como trabaja este tipo
de entrada es como con una interpolación
lineal lo que significa que en el rango
de 0 a 10 voltios tenemos un pendiente
constante porque cuando recibimos 5
voltios en la entrada analógica le daremos el
valor de 510 en la entrada
correspondiente en la gráfica hemos
dibujado una curva para que entendáis
que podríamos ver cualquier valor dentro
de este rango
por otro lado los PLCs tenemos alguna
entrada que se encuentra octoaislada esto
significa que por un lado tenemos un
PLC conectado a una fuente de
alimentación y por otro lado tenemos un
sensor conectado al PLC desde alimento a
una fuente alimentación diferente a la
del PLC en este caso es necesario
conectar a parte del cable el señal del
sensor al PLC también el cable del común
proveniente del sensor esas entradas se
acostumbran a utilizar cuando no se
quiere unir la instalación del PLC con
la del sensor
por último vamos a ver cómo funciona una
entrada interrupción imaginemos que
tenemos un PLC con una secuencia
programa ejecutándose el código se va
ejecutando por orden de escritura y
cuando termina vuelva a empezar y así
sucesivamente cuando recibimos una señal
de interrupción automáticamente
interrumpimos la secuencia que se está
ejecutando para ejecutar la secuencia
preparada en la interrupción
una vez ejecutado esto volvemos al punto
donde la interrupción nos había parado y
seguimos ejecutando el código principal
este tipo de señales es muy importante
contemplar las en aquellas entradas que
queríamos dar prioridad en la
instalación un ejemplo de esto sería una
entrada de encoger que cuentan las
revoluciones de un eje y no queremos
descontarnos sobre cuántas vueltas
puede haber dado este eje
ahora vamos a ver ejemplos sobre cómo se
lee una entrada digital primero de todo
vamos a abrir el Arduino ID vemos que por
defecto hablar de un ID ya nos tiene
una plantilla preparada donde
nos separa la primera organización
básica donde vemos el void setup para
configurar las diferentes señales y
variables y también vemos la función void
loop que es donde escribiremos el código
principal donde se ejecutará la lógica
del proyecto a partir de aquí vamos a
abrir el primer ejemplo de entrada
digital clicando sobre archivos ejemplos
en el apartado 01 basics abrimos el
ejemplo read serial
los programas se estructuran añadiendo
un comentario en la parte superior
indicando la función de éstos a partir
de aquí se descargan las variables a
utilizar y posteriormente se configuran
estas dentro del menú setup este ejemplo
es interesante porque vemos una
configuración del puerto serie del
PLC debido al que queremos visualizar
el estado de las entradas en el monitor
serie esto lo hacemos con la función
serial.begin indicando la
velocidad de transmisión de datos entre
PLCs y ordenador en este caso es de
9600 bits por segundo en el menú setup
también configuramos la variable en este
caso denominada como pushButton y ésta
tiene la función de entrada una vez
realizada la configuración añadimos el
código dentro del bucle void loop donde
lo primero que hacemos es leer el estado
de la entrada
push button y almacenamos
utilizando el signo igual a la variable
button state el valor de esta variable
la enviamos al monitor serie mediante la
instrucción serial.println
donde añadimos entre paréntesis el
nombre de la variable luego al abrir el
monitor serie del Arduino ID este nos indica el estado de esta
variable
una vez visto este ejemplo nos
interesará a ver la función de bounce
que se muestra en el ejemplo dentro del
apartado 02 digital en este ejemplo nos
muestra cómo podemos añadir un filtro
que incluso podemos entender o utilizar
como temporizador esto nos permitirá
validar que una entrada se ha activado o
puesto en modo high y entenderemos la
entrada con activada después de haber
pasado un cierto tiempo activa
como todos los códigos lo primero que
hacemos es declarar las variables y la
configuramos dentro del set up en este
caso lo primero que se hace es descargar
las entradas las salidas y justamente en
este ejemplo nos encontramos con una
secuencia interesante debido a que
directamente en el setup configuramos
una variable donde lo primero que hace
es adquirir su estado como el estado en
el que se encuentra una entrada
después de configurar el setup
ejecutamos el código dentro del void loop
en este caso lo primero que hacemos es
leer el estado de la entrada digital
posteriormente tenemos un bucle if que
pretende iniciar un contador de tiempo
utilizando la función milis de tal forma
que empieza a contar cuando la entrada
se activa pasando un tiempo definido
como debounceDelay pasamos el estado
de la variable que representa la entrada
high por lo que luego ya daremos la
entrada como leida pasado el tiempo
de filtro que le hemos indicado este
ejemplo es muy interesante de utilizar
en entradas que provienen de mecanismos
mecánicos donde es posible que tengamos
ciertos rebotes estos pueden ser botones
finales de carrera tipo sensores rip
por último indicar que hemos estado
viendo el estado de las entradas en el
monitor serial pero podemos utilizar
como monitor el modelo escala que vamos
a ir ejecutando en los siguientes
capítulos utilizando proceso con el fin
de disponer de una interfaz
hombre-máquina visual que nos sea más
cómoda que el monitor serial que nos
ofrece Arduino ahora vamos a ver cómo se
lee una entrada analógica abriendo el
ejemplo analog input dentro del menú
03 analog
en este ejemplo como en todos los
programas desarrollados con el Arduino ID vemos los comentarios de su
funcionamiento al principio donde nos
remarca la función analogRead
una vez leído los comentarios podemos
ver que se declaran todas las variables
entre las que se define el sensor pin
como la entrada que proviene de la
entrada analógica a 0 por otro lado en
este ejemplo también se declara una
salida que se ejecutará en el pin 13 de
la placa arduino podemos ver dentro del
void setup que sólo se configura la
salida ya que la entrada analógica no es
necesario configurar a partir de aquí
dentro del google loop lo primero que
hacemos es leer el valor de la entrada
analógica lo almacenamos en la variable
value
esta variable nos indicará en todo
momento el valor de la entrada analógica
las entradas analógicas tienen 10
bits por lo que el valor que podemos ver
será de entre 0 y 1023 en este
ejemplo aprovechamos este valor para
identificarlo dentro de la secuencia delay
para realizar un retardo
entre 0 y 1023 milisegundos en función
del valor de la entrada analógica
conectada hoy hemos visto dos funciones
de temporizador la función milis y la
función delay no recomendamos
utilizar nunca la función delay ya que
está para todo el código hasta que ha
pasado tiempo indicado en esta aunque
parece más engorroso la función milis es
mucho más fácil de controlar y ejecutar
si bien lo único que hay que hacer es
comparar los valores antes y después
para realizar un temporizador ahora
vamos a ver cómo se ejecutará una
entrada de interrupción
este ejemplo es muy fácil de entender
dentro de la misma página de arduino
podéis buscar la secuencia ataque
interrumpe en el mismo buscador de la
página arduino.org lo primero que vemos es que tenemos las
interrupciones numeradas
independientemente al número del pin
digital donde ésta se conecta tener en
cuenta que en nuestro caso utilizamos
una placa leonardo o una placa Arduino
mega
la interrupción para la secuencia dentro
del void loop en función a una serie de
estados como pueden ser pasar a low cambio
de estado donde en definitiva todos
estos cambios de estado indicados en la
página la secuencia de las entradas de
interrupciónes és ataque interno y como
veréis tenemos varias formas de
programarlo primero de todo tenemos que
entender que la lógica de programación que se va a
ejecutar es el programa fuera del void loop que hemos visto hasta el momento
luego en función a la secuencia de
interrupción que hayamos seleccionado se
ejecutará la interrupción
correspondiente para los PLCs
tenemos diferentes entradas que tiene en
función de interrupción estas las
podemos ver en el pineado de
los mismos en el árbol relay en el
que hemos mostrado y algún ejemplo y algún capítulo tenemos que mirar el mapeado y
vemos que la identificación de las
interrupciones es diferente al pin
aunque hace referencia por otro lado
tenemos las entradas de interrupción en
el M-duino como podéis ver también
tenemos un mapeado dentro de la página
web de Industrial Shields por lo que
simplemente tenemos que relacionar la
numeración de las interrupciones con el
pin correspondiente
el conexionado eléctrico de una entrada
de interacción es exactamente igual al
de una entrada digital pero como podemos
ver la programación cambia totalmente
hay diferentes formas de poder programar
entradas e interrupciones en la que
podemos hacer llamadas a bucles dentro
del mismo código os recomiendo tener
este concepto claro y realizar alguna
práctica para terminar de entender su
funcionamiento continuamos en el
siguiente capítulo
