Académique Documents
Professionnel Documents
Culture Documents
Filtros, características
Filtro pasa bajas
Filtro pasa altas
Filtro pasa bandas
Sensores de velocidad, posición y aceleración.
Potenciómetro
Encoder
Potenciómetro táctil
Sensores de color, luz y visión
Foto transistores
Foto diodo
LDR
Sensores de nivel y proximidad
Ultrasónicos
Resistivos
Capacitivos
Touch
Interruptores
Acondicionadores de señal.
Procesos del acondicionamiento.
Acondicionamiento de sensores resistivos.
Circuitos amplificadores: Introducción y principales características.
1
Configuración seguidor
Configuración inversor y no inversor
Configuraciones de lazo abierto
Configuración sumador
Configuración diferencial
Configuración integral
Configuración derivador
Convertidor analógico digital
Convertidor de corriente a voltaje
Segundo módulo intermedio de programación con microcontroladores:
Timers
Punteros
Pin AREF
Estructuras C++: Struct
Comunicaciones
Protocolo de comunicación i2c
Protocolo de comunicación RS232
Uso de modulo bluetooth y sus configuraciones
Uso de módulo wifi ESP8266
Configuración con códigos AT
Internet de las cosas.
Respuestas domóticas desde WEB
2
INSTRUMENTACIÓN Y PROTOCOLOS DE COMUNICACIÓN
A lo largo del desarrollo intelectual que ha tenido la humanidad, la transformación de la energía ha sido
una necesidad para poderla observar, cuantificar y hasta modificar con el fin de utilizarla para beneficio
del ser humano. Dicha necesidad tomó más importancia al llegar la revolución de las maquinas
automatizadas, el uso de sensores y actuadores electrónicos es a la fecha un tema imprescindible para
desarrollar sistemas en la actualidad, ya que todo sistema requiere medir una variable física, escribir un
dato de manera digital para interpretar a un movimiento en el mundo real o generar una interfaz gráfica
para poder representar de una manera más sencilla los acontecimientos en nuestro entorno.
A lo largo de este curso, el participante aprenderá a utilizar una vasta cantidad de sensores y buenas
prácticas de instrumentación, aprenderá como se clasifican e identifican dependiendo los sistemas a
diseñar.
3
VARIABLES STATIC.
Algunas veces necesitamos que al salir de un bloque la variable no se elimine o pierda su información,
pero también necesitamos (por que nos gusta complicarnos la vida) que no se cree una variable global,
ya que no sería eficiente si solo se va a utilizar en una sola función, en estos casos tenemos que utilizar
la propiedad estática de las variables la cuál: Nos permite crear una variable que únicamente es accesible
desde esa función en específico, pero su valor no desaparecerá al salir de ella, si no que permanecerá
hasta que se cierre o reinicie el programa, de esta manera se nos permitirá conservar su ultimo valor.
Ejemplo: Al ejecutar el siguiente bloque de código
void loop()
{ if ( control)
{
Funcion1 (); // muestra 0
Funcion1 (); // muestra 1
Funcion1 (); // muestra 2
}
control = false ;
}
void Funcion1 ()
{
int x = 0; // Declaramos x como local
Serial.println(x);
x = x + 1;
}
4
Recuerda que, aunque estas variables no se destruyen o pierden su valor con el tiempo, no se
pueden utilizar fuera de estas funciones.
INTERRUPCIONES:
En la programación de microcontroladores el uso de este apartado de software es muy utilizado cuando
queremos darle prioridad a alguna señal de entrada, tanto que todo el ciclo de programación se
interrumpe y salta directamente al bloque de código a ejecutar cuando se presente esa entrada. Hay tres
formas en que se puede presentar una interrupción.
Un evento hardware, previamente definido.
Un evento programado, o Timer
Una llamada por software.
Esta última viñeta no es soportada por Arduino, pero si por muchas otras interfaces.
Cuando estamos aprendiendo muchas veces no entendemos muy bien el uso de estos bloque de
programación ya que a simple vista pareciera que se ejecuta en la misma cantidad de tiempo que el
llamado de una función, sin embargo en bloques de programación grandes son muy importantes debido
a que este concepto nació por la necesidad de reaccionar de forma inmediata a algún acontecimiento
electrónico que no permite demoras, ya sea por la urgencia del suceso (Como un accidente) o porque
una parte del proceso podría perderse de forma irreparable si no reaccionamos lo suficientemente
rápido.
Las interrupciones también nos ofrecen la ventaja de hacer más organizado nuestro código, ya que se
define la función que se ejecutara al recibir una interrupción dada y se ejecuta limpiamente cuando
ocurre, no hay que comprobar si se da o no una situación.
Dentro de las interrupciones de hardware, que son las que nos ocupan en esta entrada, Arduino es capaz
de detectar los siguientes eventos.
RISING, ocurre en el flanco de subida de LOW a HIGH.
FALLING, ocurre en el flanco de bajada de HIGH a LOW.
CHANGING, ocurre cuando el pin cambia de estado (rising ó falling).
LOW, se ejecuta continuamente mientras está en estado LOW
Los pines susceptibles de generar interrupciones varían en función del modelo de Arduino.
5
LA FUNCIÓN ISR
La función asociada a una interrupción se denomina ISR (Interruption Service Routines) y, por
definición, tiene que ser una función que no recibe o devuelve nada, ella debe de tener algunas
características importantes:
Dos ISR no pueden ejecutarse de forma simultánea. En caso de dispararse otra interrupción
mientras se ejecuta una ISR, la función ISR se ejecuta una a continuación de otra.
Frecuentemente la función de la ISR se limitará a activar un flag, incrementar un contador, o
modificar una variable. Esta modificación será atendida posteriormente en el hilo principal,
cuando sea oportuno.
Dentro de la función ISR no sirven las funciones delay (), millis () y cualquier cosa que dependa
de interrupciones o timers.
No se pueden implementar impresiones por Serial.
La función ISR no puede devolver parámetros o recibirlos.
Veamos un ejemplo en código:
int contador = 0;
int n = contador ;
void setup()
{
1. Declaramos el número de interrupción Serial.begin(9600);
“0” que va a estar en el pin dos, dato attachInterrupt( 0, ServicioBoton, FALLING);
proporcionado por la tabla anterior. }
Seguido de una coma decimos el nombre void loop()
de la función ISR. Por último el tipo de {
if (n != contador)
evento que queremos que detecte.
{
Serial.println(contador);
n = contador ;
}
}
2. Función ISR. void ServicioBoton()
{
contador++ ;
}
6
Ahora, vamos a explicar paso a paso los pasos para poder utilizar correctamente la librería por si es que
te lo perdiste en clase.
void loop()
3. Realizamos una variable del tipo time_t, en este { time_t t = now();
caso se llama t
Serial.print(day(t));
Serial.print(+ "/") ;
4. Si necesitamos algún elemento de este nuevo objeto Serial.print(month(t));
lo llamamos: Serial.print(+ "/") ;
Serial.print(year(t));
• Para día: day(t) Serial.print( " ") ;
• Para mes: month(t) Serial.print(hour(t));
• Para año: year(y) Serial.print(+ ":") ;
Serial.print(minute(t));
• Para la hora: hour(t) Serial.print(":") ;
• Para el minuto: minute(t) Serial.println(second(t));
• Para el segundo: second(t) delay(1000);
}
Ahora hagámoslo más difícil; imaginemos que necesitamos crear un sistema que compare dos fechas y
podamos obtener datos como cuantas horas pasaron o cuantos días transcurrieron, paso ello necesitamos
poder estableces más de una variable de tipo time_t y que aparte tenga datos diferentes al now(), para
poder hacer esto usaremos una estructura del tipo tmElements_t, a la cual podemos poner cualquier
fecha dentro del rango que veremos a continuación:
Primer es importante resaltar que la estructura necesita que creemos un objeto, por ejemplo:
tmElements_t tm ;
Dentro pudemos asignar los diferentes valores:
tm.Second Segundos 0 to 59
tm.Minute Minutos 0 to 59
tm.Hour Horas 0 to 23
tm.Wday Dia semana 0 to 6 (No se usa en mktime)
tm.Day Dia 1 to 31
tm.Month Mes 1 to 12
tm.Year Año 0 to 99 (Diferencia desde 1970)
7
Ahora vamos a explicar paso a paso la forma en que realizaríamos uno de estos cálculos.
#include <Time.h> 1. Incluimos la librería Time
time_t T0, T1 ; // Contenedores de fechas
2. Creamos dos variables del tipo time_t;
void setup()
{
Serial.begin(115200);
}
void loop()
{ 3. Llamamos a la función SetFecha la cual esta
T0 = SetFecha(2014, 11, 6, 20, 17, 0); descrita más abajo y pasamos a ella
// 6 nov 2014 20:17 parámetros para la creación de dos fechas en
printFecha(T0) ;
T1 = SetFecha(2014, 11, 13, 16, 45, 0);
la variables time_t
// 13 nov 2014 16:45 4. Tambien llamamos a la función SetFecha, la
printFecha(T1) ; cual esta descrita más abajo.
printFecha(T1 - T0);
Serial.println("------------------------
--------------------------");
time_t H = T1 - T0 ; 5. En este ejemplo realizamos la operación de
Serial.print(String(year(H )- 1970)+ restar dos fechas y observar el resultado
" años," + String(month(H)-1 )+ imprimiéndolo, podremos observar en la
" meses,"); siguiente hoja los resultados.
Serial.println(String(day(H))+
" dias," + String(hour(H))+ " horas");
Serial.println("------------------------
---------------------------");
}
8
USO DE RELOJES EN TIEMPO REAL (RTC):
El manejo de la librería TIME es una forma de obtener un control relativamente certero de nuestros
eventos, sin embargo cuando nuestro sistema requiere de precisión y no admite errores es conveniente
incluir módulos externos que lleven el control de dicho proceso, ese es el caso de los relojes en tiempo
real, modulo que no solamente llevan una cuenta más precisa por ser un dispositivo dedicado, sino que
también nos permite evitar errores como el sobrecargar las variables al exceder la capacidad de
almacenamiento.
Muchos de estos dispositivos dedicados vienen acompañados de una batería externa, para en caso de
presentar fallas en la alimentación eléctrica no se pierda el control de la cuenta y reinicie nuestro sistema
por completo desde el año 1970, además de que en la gran mayoría el uso del protocolo de comunicación
I2C, generará sistemas con una gran facilidad para vincular.
La matrícula del dispositivo que usamos en nuestro curso es: “DS3231”, el cual incorpora una
compensación por los cambios de temperatura, sin embargo al igual que cualquier dispositivo eléctrico
presenta un desfase al tiempo real, para el nuestro es de un segundo cada seis días.
En una sección posterior nos adentraremos a los protocolos de comunicación, por lo que en este
momento únicamente veremos la implementación, el diagrama de conexión entre nuestro Arduino y el
RTC DS3231, es el siguiente:
void setup() {
3. Inicializamos el serial Serial.begin(9600);
delay(1000);
9
Serial.print(date.hour());
Serial.print(':');
Serial.print(date.minute());
Serial.print(':');
Serial.print(date.second());
Serial.println();
}
void loop() {
7. Crearemos una variable tipo // Obtener fecha actual y mostrar
// por Serial
DateTime y en el guardaremos la hora DateTime now = rtc.now();
proporcionada por el RTC. printDate(now);
8. Llamaremos la función que creamos delay(3000);
para imprimir los valores de reloj, }
mandando la variable antes creada.
ALARMAS:
El principal uso de un reloj es poder programar el Arduino para ejecutar determinadas funciones en
una hora/fecha determinadas.
Como ya sabemos, la plataforma Arduino tiene un buen número de librerías que nos facilitan bastante
algunas tareas, pues la lógica ya ha sido implementada y solamente debemos conocer el API de dichas
librerías para acceder a su funcionalidad. En este caso, estaremos trabajando con la librería de gestión
de eventos y horarios conocida como “TimeAlarms”. Mediante esta librería podemos programar la
ejecución de determinadas funciones en una fecha y hora específica. La librería “TimeAlarms” depende
de la librería “Time” para conocer la fecha/hora actual, por lo que también debemos de incluirla al
realizar estas funciones.
El siguiente bloque de programación incluye el uso de la librería como lo vimos en clase y como es
costumbre anexamos una explicación paso a paso por si llegas a olvidar el tema.
10
7. Mostraremos la hora por serial, para void printDate(DateTime date)
{
poder tener un mejor control de la Serial.print(date.year());
hora actual que tiene nuestro sistema Serial.print('/');
Serial.print(date.month());
Serial.print('/');
Serial.print(date.day());
Serial.print(" (");
Serial.print(") ");
Serial.print(date.hour());
Serial.print(':');
Serial.print(date.minute());
Serial.print(':');
Serial.print(date.second());
Serial.println();
}
funciones indicadas. }
void EventoEnciendeLuz()
{
Serial.println("Encendiendo Luz!!!");
digitalWrite(13, HIGH);
}
void EventoApagaLuz()
{
Serial.println("Apagando Luz!!!");
digitalWrite(13, LOW);
}
11
2. SENSORES: CLASIFICACIÓN Y CARACTERÍSTICAS.
Se le conoce como un transductor al elemento con la capacidad de poder transformar una variable física
en otra de un dominio diferente, existen transductores de entrada los cuales se usan para medir variables
del mundo real y representarlas en el mundo digital, también existen transductores de salida, los cuales
transformaran una variable digital en un movimiento, iluminación, sonido, etc.
Los sensores por sus principios de transducción se pueden clasificar en:
Piezoresistivos.
Capacitivos.
Piezoeléctricos.
Ultrasónicos.
Magnéticos.
Térmico.
Fotoeléctrico.
Químico eléctrico.
Resistivo.
A continuación, se escriben los sensores clasificados por su variable física a medir:
Flujo
Biométricos
Corriente
Presión
Nivel y proximidad
Posición, velocidad y aceleración
Humedad y temperatura
Fuerza y deformación.
Calor, luz y visión.
Esta última clasificación será la que se usa a lo largo del curso debido a que nos ayuda a relacionar más
rápidamente la necesidad de los sistemas a los diferentes sensores, aun cuando al principio esta
clasificación puede causar algo de confusión debido a que el mismo sensor puede ser usado para medir
diferentes variables físicas, es esto mismo lo que con la experiencia nos enseñará a valorar las opciones
que existen y elegir la óptima.
Los sensores se pueden identificar por su matrícula, sin embargo, generalmente nosotros los buscaremos
por sus características. Aquellas características que no varían conforme el tiempo se llamarán
características estáticas y aquellas que se describen en función del tiempo se llamarán características
dinámicas.
Las características estáticas nos permitirán elegir el sensor que más se ajuste a nuestra aplicación,
entre ellas se encuentran:
Exactitud: Característica que se define como la comparación entre el valor obtenido por el
sensor y el valor real de la variable medida.
Resolución: Con esta propiedad nosotros sabremos el cambio mínimo que el sensor puede
registrar en la variable real, por ejemplo: El sensor puede tener una resolución de 1 centímetro
[cm], es decir que si tratamos de hacer la lectura en 1.1 cm, 1.2 cm y 1.3 cm, el sensor
únicamente nos mandara la lectura de 1 cm para todas las medidas reales anteriores y
únicamente registrará un cambio en la lectura hasta llegar a 2 cm.
12
Sensibilidad: Valor que nos expresará la magnitud de valor en la entrada, que representará un
cambio en la salida. En la mayoría de los sensores podremos reconocer este valor gracias a la
“gráfica de salida”, en dicha representación gráfica podemos observar algunas veces líneas en
las cuales su pendiente representará dicha sensibilidad, sin embargo, muchos otros son sensores
con curva de salida no lineal y se deberá realizar una caracterización en todo el rango de
funcionamiento del sensor.
Esta propiedad también nos permitirá saber cuál es valor mínimo con el que trabaja nuestro
sensor.
Rango: Intervalo mínimo y máximo de la variable real que nuestro sensor es capaz de leer.
Precisión: Al nosotros realizar la medida de la propiedad física real, mientras esta permanece
inmutable y sin alteraciones en el sistema, el sensor debe de ser capaz de repetir la medida sin
variación alguna en la lectura.
Offset: Lectura o corrimiento que el sensor emite cuando en realidad este debería de ser cero,
suele presentarse al haber altas o bajas temperaturas debido a que las lecturas de las hojas de
especificaciones son tomadas realizando la instrumentación en condiciones ideales.
Error estático: Estos son los errores cometidos por interpretación y manipulación humana, ya
sea por tener un error al interpolar los valores de las gráficas, equivocarnos al conectar o hasta
tener equivocaciones al colocar nuestras puntas de prueba.
Linealidad estática: Característica dependiente de los factores ambientales, esta propiedad se
identifica como la desviación entre la curva proporcionada por el fabricante en un sistema
controlado y la lectura actual.
𝑑𝑒𝑠𝑣𝑖𝑎𝑐𝑖ó𝑛 𝑚á𝑥𝑖𝑚𝑎
% 𝑁𝑜 𝑙𝑖𝑛𝑒𝑎𝑙𝑖𝑑𝑎𝑑 = 𝑥 100
𝑣𝑎𝑙𝑜𝑟 𝑚𝑎𝑥𝑖𝑚𝑜 𝑎 𝑒𝑠𝑐𝑎𝑙𝑎 𝑐𝑜𝑚𝑝𝑙𝑒𝑡𝑎
Características dinámicas:
Tiempo de respuesta: Variable que se define como el tiempo necesario que le toma a un sensor
registrar y emitir un cambio en la lectura de la magnitud física. Es importante recalcar que este
valor es la característica propia del sensor y no del sistema, por ejemplo, para medir la velocidad
de un caudal necesitamos que nuestro sensor detecte los cambios de flujo al instante y por lo
tanto requerirá un tiempo de respuesta de microsegundos, sin embargo, para medir la
13
temperatura al ser esta una característica que lleva tiempo para su estabilización en el sistema
el tiempo de respuesta puede ser menor.
Histéresis: Al realizar lecturas nosotros podemos llevar al sistema del valor máximo al mínimo
o del valor mínimo al máximo y dependiendo de la dirección obtendremos lecturas diferentes,
sin embargo, este no es un error de precisión, es un error de histéresis ya las lecturas tienen error
dependiendo la dirección que estén tomando los sistemas.
Linealidad dinámica: Capacidad que tiene un sensor de ajustarse a la curva de salida
proporcionada por el fabricante al enfrentarse en pruebas reales a cambios bruscos en la señal
de entrada.
Error dinámico: Este error en la lectura se presenta al incluir la impedancia presente en
nuestros aparatos de medición, ya que indirectamente forman un divisor de voltaje, También
puede presentarse al tomar lecturas relativas, por ejemplo, si colocamos un mechero y nuestro
sensor está muy alejado de la fuente de calor, aunado a un sistema con muchas pérdidas,
podríamos estar teniendo una lectura ineficiente en nuestro punto de interés debido a la posición
del instrumento.
14
3. SENSORES DE POSICIÓN, VELOCIDAD Y ACELERACIÓN.
Es importante recordar que las magnitudes físicas de movimiento existen de manera traslacional y
rotacional, para cada una de estas presentaciones existen sensores y actuadores.
RESISTENCIAS VARIABLES.
Utilizando la resistencia, este transductor tiene la capacidad de leer la
posición de un objeto. Existen potenciómetros lineales, pero los más
utilizados son los rotacionales y generalmente se utilizar con una fuente en
corriente directa.
Como observamos en la Fig. 5.1 Los potenciómetros constan de tres
terminales, la resistencia medida entre las terminales dos y tres es el
complemento para llegar al valor neto del potenciómetro de la resistencia
medida entre las terminales uno y dos; es decir, si nuestro potenciómetro
es de 10 kilo ohm [kohm] y entre las terminales uno y dos medimos con el
multímetro un valor de 2 [kohm] entre la terminal dos y tres tendremos un
Fig 5.1: Terminales de valor de 8 [kohm], siendo la suma entre las dos lecturas el total del
un potenciómetro y su
potenciómetro, en este caso 10 [kohm].
configuración interna
Existen diferentes presentaciones de este dispositivo:
El Preset Fig. 5.2 es una resistencia variable que tiene como finalidad ajustes finales
en el circuito donde se insertan, generalmente no se encuentran al alcance de los
usuarios, pero sí de personal técnico, a diferencia de los potenciómetros no cuentan
con un vástago para poder ser manipulado, generalmente se manipulan por medio de
un desarmador pequeño y son de una sola vuelta. Fig. 5.2: Preset.
El Trimpot Fig. 5.3 es una resistencia variable que al igual que el preset es para ajustes definitivos en el
circuito, pero además cuentan con un encapsulado que les da cierta resistencia al polvo y a la humedad.
Son multivuelta por lo que el ajuste es más fino que en el caso de los presets o los potenciómetros.
Fig. 5.3 Trimpot. Fig. 5.4 Potenciómetro. Fig. 5.5: Potenciómetro lineal.
Por último el Potenciómetro Fig. 5.4 es una resistencia variable que cuenta con un vástago para poder
ser manipulado y variar su resistencia, es ampliamente utilizado en controles de volumen, ajustes entre
otras aplicaciones en donde el usuario le es permitido ajustarlo.
Potenciómetro de movimiento lineal, Fig. 5.5. Funciona de la misma manera que los anteriores, pero a
diferencia de ellos no hace lecturas de movimientos rotacionales, si no lineales. Generalmente son
utilizados para distancias cortas, del orden de centímetros.
15
Sea usado cualquiera de los elementos anteriores, las resistencias variables deben de ser utilizadas en
un circuito divisor de corriente para hacer la lectura (Cap. 2. Acondicionamiento de sensores resistivos).
Por último, es importante saber las características de nuestra resistencia variable, ya que existen:
De una sola vuelta: Solo pueden girar 270° y la salida puede tener una forma lineal o
logarítmica, recordemos que las formas más fácil de instrumentar son las que tienen una salida
lineal.
Multivuelta: Resistencias variables de alta precisión, son muy pequeños y generalmente son
lineales.
Practica: Corrimiento gradual en persianas con un potenciómetro.
ENCODERS
Utilizados para la medición de sistemas rotacionales los encoder no tienen un límite de vueltas ni de
medición, se pueden hacer de la resolución necesaria y se pueden usar para leer movimientos lineales o
rotacionales. Existen encoder magnéticos y ópticos, actualmente por presentar menos ruido y tener más
tiempo de vida útil, son los ópticos los más utilizados.
En la Fig. 5.6 podemos observar que compuestos por una parte emisora (led infrarrojo), un disco
ranurado en medio acoplado al eje de forma mecánica y una parte receptora (fotodiodo o fototransistor)
del otro lado, al girar el disco las ranuras diseñadas en el disco permiten que la señal llegue del emisor
al receptor, la frecuencia de estas señales registrará una frecuencia y esta frecuencia se traduce a la
velocidad del eje.
La ecuación para calcular la resolución es:
En donde Res: Resolución, D: Diámetro del disco, ar: Ancho de cada ranura.
𝜋𝐷
𝑅 =
2𝑎
Como podemos observar en la Fig. 5.6 el encoder únicamente como se ha explicado hasta el momento
no tiene forma de saber si sentido de giro o su posición., para saber esto tenemos que realizar algunas
características adicionales, para esto podemos usar dos metodologías:
Encoder incremental: Utilizando dos sensores ópticos posicionados con un desplazamiento de
¼ de ranura el uno del otro o poniendo los sensores en la misma posición, pero desplazando las
ranuras, se generarán dos señales de pulsos digitales desfasada en 90º o en cuadratura. A estas
señales de salida, se les llama comúnmente A y B. Mediante ellas es posible suministrar los
datos de posición, velocidad y dirección de rotación del eje. Si se incluye la señal de referencia,
se le denomina I (índice). Usualmente, si la señal A adelanta a la señal B (la señal A toma valor
16
lógico “1” antes que la señal B, por ejemplo), se establece el convenio de que el eje está rotando
en sentido horario, mientras que, si B adelanta a A, el sentido será antihorario. Podemos
observar las lecturas antes descritas en la Fig. 5.7
Encoder absoluto: Los encoder absolutos como el de la Fig. 5.8 asignan a cada posición angular
un valor inequívoco, incluso durante varias revoluciones. Incluso después de una caída de
tensión el encoder detecta de forma rápida y segura la posición momentánea. Estos encoder no
utilizan código binario, utilizan código gray, el cual tiene la ventaja de registrar la variación
entre una posición y otra cambiando únicamente uno de sus bits como lo podemos observar en
la Fig. 5.8.
17
Fig. 5.10: Tabla de relaciones entre código decimal, binario y gray.
18
4. SENSORES DE LUZ Y COLORES.
Haz fijo o emisor receptor: Teniendo en posición opuesta el emisor y receptor, este sensor
también es usado para detectar presencia y es muy aplicado en la construcción de encoder.
Foco fijo o difuso: Esta configuración utiliza un objeto para poder rebotar el haz de luz por el
emisor hacia el receptor, son muy utilizados para medir distancias, leer el tipo de material de
un objeto o saber su color.
19
LDR
Los LDR por su nombre en inglés: Light dependent resistor o común mente llamado fotorresistencia,
es un sensor que varía su resistencia debido a la luz incidente en él.
Algunos de los símbolos eléctricos para representar este elemento son los mostrados en la Fig 6.4 y en
su esquema de conexión mostrado en la Fig. 6.5 podemos observar que se realizará con un divisor de
voltaje.
En la Fig. 6.5 podemos observar dos formas de conexión, en la configuración del lado izquierdo,
cuando la luz incida sobre el sensor el voltaje (Vout) se verá disminuido; en la imagen del lado derecho
cuando la luz incida sobre el sensor Vout aumentará.
Practica: Automatización de luz en ausencia de luz.
SENSOR DE COLOR
El color está definido por la capacidad del material a rechazar una longitud de onda, por ejemplo cuando
vemos un objeto de color azul se puede decir que ese objeto absorbe todas las longitudes de onda del
espectro visible, excepto la longitud de onda que corresponde al color azul y de esta esa onda rechazada
es percibida por la retina.
20
Fig. 6.6: Configuración interna de un sensor de color.
Los sensores de color se conforman por un grupo de tres diodos, cada uno con un filtro de color
utilizando el principio de que si tenemos una película de color rojo, este únicamente absorberá las ondas
de dicho color; de esta manera podremos descomponer una tonalidad en sus características RGB: rojo,
verde y azul. Entre los inconvenientes que tiene este tipo de sensores es que son sensibles a la luz del
ambiente, la cual puede generar ruidos o cambios en la lectura; no es lo mismo observar el color rojo
bajo una luz color blanca, que bajo una luz color ámbar, así como tampoco tendremos la misma lectura
si observamos bajo una luz blanca intensa, que bajo una luz blanca tenue. Es por lo anterior que este
sensor generalmente debe de tener integrado un sistema de iluminación para generar una luz ambiental
constante y también tener la capacidad de modificar el pin de ganancia incluido por la mayoría de los
fabricante.
Estos sensores son utilizados tanto en aplicaciones industriales como el nivel de líquido en un sistema
de embazado, proximidad de un objeto, detección de obstáculos, etc. Como en sistemas para el hogar
como nivel de agua en un tinaco, automatización de bebidas, apertura de puertas por proximidad, etc.
ULTRASÓNICOS
Vistos en el curso introductorio, en esta sección únicamente se retoma la teoría acerca de estos sensores.
Estos sensores emitirán una onda denominada ultrasónica por estar arriba de los 20 kHz (generada de
manera capacitiva, electromagnética, óptica o piezoeléctrica) la cual rebotara con el objeto y regresara
al emisor. El tiempo en que la onda tarde en realizar el recorrido antes descrito será utilizado para poder
obtener la variable física buscada: la distancia del objeto al sensor.
Debido a que el sensor utiliza una onda ultrasónica propagada por el ambiente, es importante tener en
cuenta la temperatura, ya que en casos extremos esta variable puede generar lecturas erróneas. La
ecuación para compensar este error será la siguiente:
𝑇
𝑉 = 𝑉𝑂 1 +
273
En donde:
Vs: Velocidad del sonido real.
Vso: Velocidad del sonido a 0°C
T: Temperatura [K]
21
Debido a que el sensor se compone de dos partes (emisor y receptor) este sensor se puede configurar de
dos maneras: de forma contigua y frente a frente como lo vemos en la Fig. 6.7. Estas configuraciones
dependerán mucho de cómo nos ofrezca el fabricante su producto.
Fig. 6.7: Configuraciones en sensores ultrasónicos, izquierda contigua y derecha frente a frente.
En estos sensores tendremos zonas en donde varíe el comportamiento o también llamadas zonas de
detección:
Zona de detección: Zona en la cual es posible detectar un objeto y una lectura confiable de su
distancia.
Zona ciega: Zona en la que por la proximidad del objeto al sensor no puede ser identificado.
Zona de exploración: Zona en el que las lecturas que emita el sensor son confiables.
Zona de exploración límite Zona en la cual es posible detectar solo objetos con buenas
propiedades acústicas.
22
METODOS DE OPERACIÓN EN EL SENSOR ULTRASÓNICO.
Dependiendo de la aplicación que queramos darle a nuestro sensor ultrasónico será la configuración que
elijamos, en el siguiente apartado se describirá la mayoría de los modos de uso, en donde se explica que
criterio se tiene que tomar en cuenta a la hora de programar para elegir el correcto.
Configuración de reflexión: Esta configuración tiene la característica principal de únicamente
detectar la presencia de un objeto cuando dentro de cierto umbral que programemos. Fig. 6.9.
Configuración de ventana: En esta configuración se establecerán dos límites y únicamente se
registrara un cambio de estado cuando el objeto este entre el límite superior e inferior. Fig. 6.10
Configuración de barrera ultrasónica bidireccional: Cuando se tienen materiales de difícil
detección como lo son los materiales espumosos se recurre a esta configuración, la cual se apoya
de un reflector posicionado dentro del umbral de detección, al momento de presentar otro objeto
la señal con el reflector se interrumpiría. Fig. 6.11
Configuración de medidor de distancia: Utilizando nuevamente el principio de configuración
de ventana, se establecerán los límites inferior y superior, ahora ligando cada uno a un voltaje.
Por medio de una salida analógica posicionada entre los dos límites de voltaje, podremos medir
distancias. Fig. 6.12
Fig. 6.11: Configuración de barrera bidireccional. Fig. 6.12: Configuración de medidor de distancia
23
SENSOR TOUCH
Estos son sensores capacitivos con uno de los electrodos como elemento de entrada, esta entrada se
presenta como un área del trabajo que al tocarla hará que se presente una capacitancia debido a la
constancia dieléctrica del material, en esta caso la piel humana y rebasará la capacidad para la cual está
determinada el sensor, que obtendrá una salida digital en alto y cuando no regresará en automático a
una salida en bajo.
Fig. 6.14: Reed Switch con imán permanente. Fig. 6.15: Reed Switch con bobina de cobre.
24
SENSOR RFID
Este sensor está compuesto por un chip digital minúsculo de memoria, que puede contener una
identificación en forma de código e incluso información de diferentes cuestiones grabados en él, además
tiene adicionada una antena que permite identificar el sensor por Radio Frecuencia sin contacto a
distancias de entre nos pocos centímetros o varios metros mediante un receptor adecuado, y la otra es
que la propia señal de RF que usamos para identificarlos es capaz de alimentar el chip de la
etiqueta RFID sin necesidad de batería. Cuando la etiqueta RFID no tiene batería, se llaman pasivas y
son los equipos más económicos, al incluir la fuente de alimentación se denominan activas.
Entre todas sus características tenemos:
Son pasivos en su mayoría y pueden permanecer inactivos durante años.
No se rayan o degradan, ni con el tiempo ni con campos magnéticos, ni con el roce.
No necesitan verse para realizar la identificación, porque la mayor parte de los materiales son
transparentes a las ondas RF que se usan.
Pueden disponer de una memoria interna que contenga toda la identificación del producto o su
trazabilidad. Las hay desde 1Kb.
Se pueden utilizar como llaves maestras para abrir cerraduras electrónicas, tanto como para
identificar productos o personas.
Se pueden reescribir y leer tantas veces como quieras, e ir añadiendo su historia en la propia
tarjeta. Por ejemplo en una tarjeta de pago, puedes conservar las ultimas 100 compras realizadas.
SENSORES INDUCTIVOS.
Los sensores de proximidad inductivos sólo pueden detectar objetos metálicos. No detectan
objetos no metálicos, tales como plástico, madera, papel y cerámica. A diferencia de los
sensores fotoeléctricos, esto permite que un sensor de proximidad inductivo pueda detectar
un objeto de metal a través de plástico opaco.
Estos sensores son utilizados en la industria debido a su gran resistencia ambiental, dado que
estos sensores sólo detectan objetos metálicos, la detección no se ve afectada por el polvo
acumulado o salpicadura de aceite sobre el cabezal.
25
Entre sus ventajas está el que los sensores de proximidad inductivos de tipo de dos hilos
permiten simplificar el cableado, y pueden utilizarse tanto para circuitos NPN como PNP,
además que en su mayoría tienen un consumo de corriente bajo localizado en alrededor 1
miliamperio (mA).
Fig. 6.17: El sensor inductivo es capaz de detectar aun con elementos no metalicos en medio.
SENSOR CAPACITIVO
Son similares a los inductivos, con la principal diferencia de que los capacitivos producen un campo
electrostático en lugar de un campo electromagnético. Esto hace que los sensores capacitivos puedan
detectar objetos metálicos y no metálicos, tales como papel, vidrio, líquidos, tela, etc. En cuanto a las
formas de ejecución mecánica, tipos de alimentación y formas de conexión son idénticas a las de los
detectores inductivos.
Una de las principales aplicaciones de estos sensores es la detección a través de recipientes. Por
ejemplo, el agua tiene una constante dieléctrica mucho más alta que el plástico, esto le da la posibilidad
al sensor de detectar a través del recipiente. De esta forma se puede detectar el nivel de líquidos.
TERMISTOR.
Un termistor es un elemento de detección de temperatura compuesto por un material semiconductor
sinterizado que exhibe un gran cambio en la resistencia en respuesta a un pequeño cambio en la
temperatura. Existen dos tipos de termistor, aquellos cuya resistencia aumenta en función de la
temperatura, también llamados PTC (Positive Temperature Coefficient ) y aquellos cuya resistencia
disminuye conforme aumenta la temperatura, llamados NTC ( Negative Temperature Coefficient). Los
termistores más comunes son aquellos que tienen coeficientes de temperatura negativos (NTC).
26
La ventaja de los termistores frente a otros sensores de temperatura es el bajo precio de estos y su amplio
rango de medida, sin embargo la desventaja principal es que no son lineales, lo que dificulta la
adquisición de datos y son complicados de calibrar.
TERMOPAR O TERMOCUPLA.
Este sensor de temperatura se compone de dos metales diferentes unidos en un extremo, cuando la unión
de los dos metales se calienta o enfría, se produce una tensión que es proporcional a la temperatura. Las
aleaciones de termopar están comúnmente disponibles como alambre.
Debido a que los termopares miden en rangos de temperatura muy amplios y son relativamente
resistentes, los termopares se utilizan muy a menudo en la industria. Los siguientes criterios son
utilizados en la selección de un termopar:
Rango de temperatura
La resistencia química del termopar o material de vaina
Resistencia de abrasión y vibración
Requisitos de instalación (es posible que tengan que ser compatibles con equipos existentes; los
agujeros existentes pueden determinar el diámetro de la sonda)
Los termopares están disponibles en diferentes combinaciones de metales o calibraciones para adaptarse
a diferentes aplicaciones. Los tres más comunes son las calibraciones tipo J, K y T, de los cuales el
termopar tipo K es el más popular debido a su amplio rango de temperaturas y bajo costo. Otros tipos
de termopares son los que se nombran a continuación:
Cobre – Constantano (Tipo T)
Están formados por un alambre de cobre como conductor positivo y una aleación de 60% de cobre y
40% de níquel como elemento conductor negativo. Tiene un costo relativamente bajo, se utiliza para
medir temperaturas bajo o 0 °C. Y como límite superior se puede considerar los 350º C, ya que el cobre
se oxida violentamente a partir de los 400º C.
Hierro – Constantano (Tipo J)
27
En este tipo de junta el hierro es electropositivo y el constantano electronegativo. Mide temperaturas
superiores que el anterior ya que el hierro empieza a oxidarse a partir de los 700º C. No se recomienda
su uso en atmósfera donde exista oxigeno libre. Tiene un costo muy bajo y esto permite que su
utilización sea generalizada.
Chromel – Alumel (Tipo K)
Una aleación de 90% de níquel y 10% de cromo es el conductor positivo y un conductor compuesto de
94% de níquel, 2% de Aluminio, 3% de manganeso y 1% de Silicio como elemento negativo. Este
termopar puede medir temperaturas de hasta 1200º C. Ya que el níquel lo hace resistente a la
oxidación. Se los utiliza con mucha frecuencia en los hornos de tratamientos térmicos. Su costo es
considerable lo que limita su utilización.
Platino rodio – Platino (Tipo R)
Tienen como conductor negativo un alambre de platino y como conductor positivo una aleación de
87% de platino con 13% de sodio. Este tipo de junta desarrollada últimamente con materiales de alta
pureza es capaces de medir hasta 1500º C si se utilizan las precauciones debidas.
Son muy resistentes a la oxidación pero no se aconseja su aplicación en atmósferas reductoras por su
fácil contaminación con el hidrógeno y nitrógeno que modifican la respuesta del instrumento.
Platino rodio – Platino (Tipo S)
El conductor positivo es una aleación de 90% de platino y 10% de Rodio mientras que conductor
negativo es un alambre de platino. Sus características son casi similares al termopar anterior con la
diferencia que no puede usarse a temperaturas elevadas porque los metales no son de alta pureza
produciendo alteraciones de la lectura a partir de los 1000º C. en adelante.
SENSOR CI LM35
El LM35 es un sensor de temperatura analógico, con una precisión calibrada de 1ºC. No necesita
circuitería externa ni ajustes de calibración para funcionar, su rango de medición abarca desde -55°C
hasta 150°C. La salida es lineal y cada grado centígrado equivale a 10mV. Es ideal para aplicaciones
remotas ya que consume menos de 60 mA de corriente, además es compatible con Arduino, PIC,
EMBED, AVR o cualquier microcontrolador.
28
El FC-28 es un sensor sencillo que mide la humedad del suelo por la variación de su conductividad. No
tiene la precisión suficiente para realizar una medición absoluta de la humedad del suelo, pero tampoco
es necesario para controlar un sistema de riego.
El FC-28 se distribuye con una placa de medición estándar que permite obtener la medición como valor
analógico o como una salida digital, activada cuando la humedad supera un cierto umbral.
Los valores obtenidos van desde 0 sumergido en agua, a 1023 en el aire (o en un suelo muy seco). Un
suelo ligeramente húmero daría valores típicos de 600-700. Un suelo seco tendrá valores de 800-1023.
La salida digital dispara cuando el valor de humedad supera un cierto umbral, que ajustamos mediante
el potenciómetro. Por tanto, obtendremos una señal LOW cuando el suelo no está húmedo, y HIGH
cuando la humedad supera el valor de consigna.
El valor concreto dependerá del tipo de suelo y la presencia de elementos químicos, como fertilizantes.
Además, no todas las plantas requieren la misma humedad, por lo que lo mejor es que hagáis una
pequeña calibración en el terreno real.
6. SENSORES DE FUERZA.
Galgas extensiométrica.
Una galga extensiométrica o extensómetro es un sensor, que mide la deformación, presión, carga, par,
posición, etc. y se basa en el efecto piezorresistivo, que es la propiedad que tienen los materiales de
cambiar el valor nominal de su resistencia cuando se les somete a esfuerzos y se deforman en dirección
de los ejes mecánico; entonces un esfuerzo que deforma la galga extensiométrica generará una variación
en su resistencia eléctrica.
La galga se adhiere al objeto cuya deformación se quiere estudiar mediante un adhesivo, como el
cianoacrilato. Según se deforma el objeto, también lo hace la lámina, provocando así una variación en
su resistencia eléctrica. Los materiales que suelen utilizarse para fabricar galgas son aleaciones
metálicas, como por ejemplo constantán, nicrom o elementos semiconductores como por ejemplo el
silicio y el germanio.
Las galgas extensiométricas metálicas se constituyen por una base muy delgada y fina, a la cual se le
adhiere un hilo muy fino metálico que puede ser bobinado o plegable. Las dos terminales en las que
acaba el hilo se unen a los transductores, para su fabricación se emplean diversos conductores metálicos,
como las aleaciones constantán, karma, isoelestic y aleaciones de platino.
29
Las galgas metálicas pueden ser de:
Hilo metálico
Están adheridas a una base con medidas constantes. Presentan errores cuando existen estados tensionales
y son las más sencillas. Están compuestas por una película de protección, un soporte, un hilo de medida
y las terminales de conexión.
Película metálica
Esta clase de galgas tiene una característica de fabricación similar a los circuitos impresos que tienen
bases flexibles. Se desarrollan por el medio de creación de placas utilizando fotografías, llamado el
método de fotograbado. Se conforman por una película de protección, un soporte, un pad de conexión
y de zonas anchas para reducir el efecto de tensiones transversales.
Tambien existen galgas por resistencia las cuales son un conductor eléctrico que al ser deformado
aumenta su resistencia, puesto que los conductores se vuelven más largos y finos.
30
SENSOR FSR
Estos sensores permiten detectar la presión física, pulsación y peso, el FRS está hecho de 2 capas
separadas. Cuánto más se presiona, la parte redonda de tu sensor se activa, toca el semiconductor y eso
hace que la resistencia disminuya.
Los FSR’S son básicamente una resistencia que cambia su valor (en ohmios Ω) dependiendo de la
cantidad que se presiona. Estos sensores son de bajo costo y fácil de usar pero son poco precisos.
También varían algunos de sensor a sensor tal vez 10% en cuanto la exactitud, es por la anterior
característica que estos sensores suelen usarse en intervalos o rangos y no en aplicaciones para medir
pesos exactos.
Entre sus principales características está:
Rendimiento: Circuito Infinito/abierto (sin presión), 100KΩ (ligera presión) a 200Ω (presión máx.)
Rango de fuerza: de 0 a 20 libras (de 0 a 100 Newtons) que se aplica de manera uniforme sobre el área
de superficie de 0,125 pulgadas cuadradas.
Fuente de alimentación: Cualquiera este sensor utiliza menos de 1 mA de corriente (depende de las
posibles resistencias de pull-up / down utilizados y voltaje de alimentación).
31
7. OTROS SENSORES (SEGURIDAD).
SENSOR DE LLAMA
Un sensor de llama óptico es un dispositivo que permite detectar la existencia de combustión por la luz
emitida por la misma. Esta luz puede ser detectada por un sensor óptico, y ser capturado por las entradas
digitales y las entradas analógicas de Arduino.
La llama es un fenómeno de emisión de luz asociado a los procesos de combustión. La combustión es
un proceso que desprende grandes cantidades de energía en forma de calor. Durante la reacción se
generan compuestos intermedios que liberan parte de su energía mediante la emisión de luz.
El espectro de emisión de llama depende de los elementos que intervienen en la reacción. En el caso de
combustión de productos con carbón en presencia del oxígeno tenemos dos picos característicos en
ultravioleta en longitudes de onda de 185nm-260nm y en infrarrojo en longitudes de onda 4400-4600nm.
SENSOR DE GAS
Los sensores de gas son dispositivos que indican la presencia de algún gas específico, en algunos casos
pueden configurarse o, en caso de tener sensores más precisos, miden la concentración de gas. Los
sensores de gas son usados para prevenir la exposición a gases combustibles y gases tóxicos. Se
recomienda usar estos sensores en espacios confinados y pequeños debido a que su eficiencia es mayor.
32
Uno de los detectores más utilizados es el catalítico, a estos sensores también suelen llamarlos
pellistores -palabra formada por la combinación de las palabras en inglés pellet y resistor-. Su
funcionamiento es por la oxidación del gas vía catalítica.
Estos sensores están compuestos por dos elementos: un elemento detector (D) y un elemento
compensador (C), que no reacciona a los gases combustibles. Estos gases solamente quemarán en el
elemento detector, provocando un aumento de temperatura del mismo y el consecuente aumento en el
valor de su resistencia.
Este sensor catalítico es de los más utilizados para la domótica, debido a que entre sus ventajas tenemos:
Robustez
Manejo simple
Fácil instalación
Bajo costo
Durabilidad
Fiabilidad
Fácil calibración
Detección de amplia variedad de gases
Pero en sus desventajas tenemos.
Pueden inactivarse por contaminación con otros gases.
Para detectar la inactivación es necesario comprobar con el gas objetivo.
Requiere presencia de oxígeno para la detección.
Una exposición prolongada a concentraciones del gas objeto puede reducir el rendimiento del
sensor.
SENSOR DE CORRIENTE
El sensor de corriente ACS712 es una solución económica para medir corriente, internamente trabaja
con un sensor de efecto Hall que detecta el campo magnético que se produce por inducción de la
corriente que circula por la línea que se está midiendo. EL sensor nos entrega una salida de voltaje
proporcional a la corriente, dependiendo la aplicación podemos usar el ACS712-05A, ACS712-20A o
el ACS712-30A, para rangos de 5, 20 o 30 amperios respectivamente
El ACS712 podemos encontrarlo en módulos, los cuales nos facilitan sus conexión, traen una bornera
para conectar la línea que queremos medir y 3 pines, dos para conectar la alimentación y un pin para la
salida analógica.
33
El rango de corriente que podemos medir y sensibilidad varían dependiendo del modelo del integrado,
existen tres modelos los cuales detallamos a continuación:
Para hacer las lecturas el sensor nos entrega un valor de 2.5 voltios para una corriente de 0A y a partir
de allí incrementa proporcionalmente de acuerdo a la sensibilidad, teniendo una relación lineal entre la
salida de voltaje del sensor y la corriente.
Dicha relación es una línea recta en una gráfica Voltaje vs Corriente donde la pendiente es la sensibilidad
y la intersección en el eje Y es 2.5 voltios. La ecuación de la recta seria la siguiente
34