CNY70
SENSOR ÓPTICO REFLEXIVO

El CNY70 es un sensor óptico reflexivo que tiene una construcción compacta dónde el emisor de luz y el receptor se colocan en la misma dirección para detectar la presencia de un objeto utilizando la reflexión del infrarrojo sobre el objeto. Permite diferenciar entre dos colores: el blanco y el negro.
El CNY70 funciona como un detector de distancia, muy utilizado en robots seguidores de línea. Para esto, requiere de una superficie que pueda reflejar la luz infrarroja. Entonces el detector recibe esta luz en la base del foto-transistor. Si la corriente en la base es suficiente, permite el paso de corriente entre el colector y el emisor. El CNY70 funciona como un switch que se abre o cierra si existe una superficie que refleje la señal que emite el diodo IR.
La distancia máxima, la determina la corriente que le llega a la base del transistor. La distancia va desde 0 mm hasta 10 mm.
CARACTERÍSTICAS
• Sensor óptico por reflexión

• Combina un led infrarrojo emisor y un fototransistor receptor en un mismo módulo
• Longitud de onda del emisor: 950 nm
• Rango de operación con cambio >20% de la corriente de colector: 0 mm a 5 mm
• Distancia operativa a corriente de salida pico: <0 .5="" font="" mm="">
• Filtro contra la luz del espectro visible
• Corriente del LED en directo max: 50 mA
• Voltaje inverso del LED max: 5 V
• Corriente de colector del fototransistor en directo max: 50 mA
• Voltaje colector-emisor del fototransistor max: 32 V
• Voltaje emisor-colector del fototransistor max: 7 V

Aplicaciones


Detección de presencia o ausencia de objetos
Detección de posición
Seguimiento de línea en robótica
Medición de revoluciones
Escaneo de discos codificados
Encoders 

Funcionamiento

El funcionamiento es similar al sensor de ultrasonidos HC-Sr04, pero mediante infrarrojos.

El emisor envía una señal en infrarrojos, ésta se refleja sobre el objeto que está dentro de su alcance y es recogida por el diodo receptor de infrarrojos.

Si el receptor recibe la señal del emisor, el transistor conduce, por lo que habrá un “1” lógico en el Arduino.



CONEXIONADO y PROGRAMACIÓN



Ejemplo: el sistema diferencia mediante el sensor CNY70 entre el color negro y el color blanco, activando un led

int CNY = A0;                                      //CNY asociado al pin A0
int Led = 7;                                          //pin del Led
int valor = 0;                                        //valor inicial del sensor

void setup () {

pinMode (CNY, INPUT);                     //Pin 4 como entrada análoga
pinMode (Led, OUTPUT);                  //Led como salida
Serial.begin(9600);                             //monitor serial
}

void loop () {
valor = analogRead(CNY);                  //El sensor lee el valor y lo almacena
Serial.println(valor);                            //visualizar valores
delay (100);                                         //esperar entre valor y valor
if (valor>=11){                                   //valor para el color blanco
digitalWrite (Led, HIGH);                  //enciende el led
}

if (valor<5){                                       //valor para el color negro
digitalWrite (Led, LOW);                  //apaga el led
}
}

Ejemplo: se encenderá un LED verde en el caso de que lea un '0' o un LED amarillo en el caso de que lea un '1'.

int LedPin1 = 8;                                  //pin del Led verde
int LedPin2 = 9;                                  //pin del Led amarillo
int infraPin = 4;                                   //pin de infrarrojo, entrada digital
int valorInfra = 0;                                //valor inicial de la lectura inicial del infrarrojo

void setup () {
pinMode (LedPin1, OUTPUT);           //LedPin1 como salida
pinMode (LedPin2, OUTPUT);           //LedPin2 como salida
pinMode (infraPin, INPUT);                //Pin 4 como entrada digital
}

void loop () {
valorInfra = digitalRead (infraPin);     //Lee el valor de la entrada 4
digitalWrite (LedPin1, valorInfra);       //escribe en Pin 8 el valor del infrarrojo

valorInfra = !valorInfra;                        //se asigna el valor al infrarrojo
digitalWrite (LedPin2, valorInfra);       //escribe en Pin 9 el valor del infrarrojo
}

........................................................................

int LedVerde = 8;                                //pin del Led verde
int LedAmarillo = 9;                           //pin del Led amarillo
int sensor = 4;                                     //pin de infrarrojo, entrada digital
int valor = 0;                                       //valor inicial de la lectura inicial del infrarrojo

void setup () {
Serial.begin (9600);
pinMode (LedVerde, OUTPUT);         //LedVerde como salida
pinMode (LedAmarillo, OUTPUT);    //LedAmarillo como salida
pinMode (sensor, INPUT);                  //Pin 4 como entrada digital
}

void loop () {
valor = digitalRead (sensor);               //Lee el valor de la entrada 4
Serial.println (valor);
delay (100);

if (valor == 0)
{
   digitalWrite (LedVerde, HIGH);
   digitalWrite (LedAmarillo, LOW);
}

else
{
   digitalWrite (LedVerde, LOW);
   digitalWrite (LedAmarillo, HIGH);
}
}

CONEXIONADO CON EL PUENTE H & LOS MOTORES

PROGRAMACIÓN

int infraPin1 = 10;
//pin del infrarrojo utilizado como entrada digital en el lado derecho (#1)
int infraPin2 = 11;
//pin del infrarrojo utilizado como entrada digital en el lado izquierdo (#2)
int valorInfra1 = 0;
//valor inicial de la lectura digital del infrarrojo #1
int valorInfra2 = 0;
//valor inicial de la lectura digital del infrarrojo #2
int OUTPUT4 = 4;
//Output conectado al pin 4
int OUTPUT3 = 3;
//Output conectado al pin 3
int OUTPUT2 = 6;
//Output conectado al pin 6
int OUTPUT1= 7;
//Output conectado al pin 7


void setup () {

Serial.begin (9600);
//comenzar comunicación serial
pinMode (infraPin1, INPUT);
//inicializa el pin 1 como entrada digital
pinMode (infraPin2, INPUT);
//inicializa el pin 2 como entrada digital
pinMode (OUTPUT1, OUTPUT);
//inicializa el pin 7 como salida digital
pinMode (OUTPUT2, OUTPUT);
//inicializa el pin 6 como salida digital
pinMode (OUTPUT3, OUTPUT);
//inicializa el pin 3 como salida digital
pinMode (OUTPUT4, OUTPUT);
//inicializa el pin 4 como salida digital
}



void loop () {

valorInfra1 = digitalRead (infraPin1);
//lee el valor de la entrada 10 (infrarrojo #1)
Serial.print (“SENSOR1 “);
//imprimir el texto “SENSOR1 “
Serial.println (valorInfra1);
//imprimir la lectura del infrarrojo #1
valorInfra2 = digitalRead (infraPin2);
//lee el valor de la entrada 11 (infrarrojo #2)
Serial.print (“SENSOR2 “);
//imprimir el texto “SENSOR2 “
Serial.println (valorInfra2);
//imprimir la lectura del infrarrojo #2


if (valorInfra1==0)
//si la lectura del infrarrojo #1 es 0, ese cumplirá una de las siguientes condiciones:
{

if (valorInfra2==0)
//si la lectura del infrarrojo #2 es 0, es decir los dos sensores están sobre la línea negra, entonces los
{
// dos motores avanzarán en línea recta.
digitalWrite (OUTPUT1, 0);

digitalWrite (OUTPUT2, 1);

digitalWrite (OUTPUT3, 1);

digitalWrite (OUTPUT4, 0);

}

else
//si la lectura del infrarrojo #2 es 1, el sensor #1 está sobre la línea negra y el sensor #2 está por fuera de la
{
//línea negra, entonces solo una rueda gira
digitalWrite (OUTPUT1, 0);

digitalWrite (OUTPUT2, 0);

digitalWrite (OUTPUT3, 1);

digitalWrite (OUTPUT4, 0);

}

}

else
//si la lectura del infrarrojo #1 no es 0, será 1, se darán las siguientes posibilidades:
{

if (valorInfra2==0)
//como el sensor #1 está por fuera de la línea negra y el sensor #2 está sobre la línea negra, entonces sólo una
{
//rueda gira y esto causará el giro
digitalWrite (OUTPUT1, 0);

digitalWrite (OUTPUT2, 1);

digitalWrite (OUTPUT3, 0);

digitalWrite (OUTPUT4, 0);

}

else
//si ambos sensores dan lectura 1, los dos están por fuera de la línea negra, para que vuelva a su trayectoria
{
//tiene que retroceder
digitalWrite (OUTPUT1, 1);

digitalWrite (OUTPUT2, 0);

digitalWrite (OUTPUT3, 0);

digitalWrite (OUTPUT4, 1);

}

}

}



TCRT 5000L
SENSOR ÓPTICO REFLEXIVO

Un TCRT5000L es un tipo de sensor óptico reflectivo que detecta la diferencia de color en un objeto mediante la reflexión de la luz en el mismoEl módulo posee un comparador de voltaje y un trimmer para ajustar la sensibilidad de detección del sensor.
El TCRT5000L es un sensor sencillo. Dispone de un LED emisor de luz infrarroja, y de un fototransistor que recibe la luz reflejada por un posible obstáculo. La cantidad de luz recibida depende del color y reflectividad del objeto, por lo que podemos distinguir entre zonas y oscuras de un objeto.
El rango de medición del sensor varía entre 0,2 a 15mm, siendo la distancia óptima 2,5mm. Por tanto es un sensor de muy corta distancia.
DIFERENCIA ENTRE EL TCRT5000L & CNY70
El TCRT5000L es menos inmune a la luz ambiente, lo que lo hace mejor para el desarrollo de robots o seguidores de línea.
El CNY70 solo detecta en un rango de 0mm a 5mm, mientras que el TCRT5000 permite 12mm y en algunas pruebas se ha logrado hasta 25mm.
CARACTERÍSTICAS

Distancia de detección

12mm (generalmente)
Método de detección
 Reflectivo
Longitud de onda de funcionamiento
 950mm 
Voltaje inverso
5 V 
Corriente directa
60mA 
Sobretensiones Corriente
3A 
Emisor Disipación de potencia
100 mW 
Colector-emisor Voltaje
70 V 
Collector
100mA
Detector Disipación de potencia
100 mW 
Sensor disipación de energía total
200 mW 
Temperatura de funcionamiento
-25 ~ + 85
Tiene dos esquemas de conexión: digital y  análoga.
Digital: entrega un nivel de tensión alto o bajo  para indicar si la línea es blanca o negra.
Analógica: el nivel de tensión de salida variará de 0 a 5 voltios en función del color y tono del objeto (claro u oscuro).
FUNCIONAMIENTO

Un TCRT5000L es un sensor óptico que detecta la diferencia de color en una superficie. Para hacerlo dispone de:

Un LED (emisor infrarrojo) que emite luz infrarroja (IR) y
Un FOTODIODO que es capaz de recibir esa luz infrarroja y transmitir una señal.
ESQUEMA DEL MONTAJE
Se alimenta el módulo a través de Vcc y GND conectándolos, respectivamente, a la salida de 5V y GND en el Arduino.
Por otro lado, se conecta la salida digital del sensor (D0) a una entrada digital para leer el estado del sensor.
CÓMO PROGRAMARLO
Para detectar cuando el TCRT5000L pasa por encima de una zona oscura simplemente leemos el estado de la entrada digital.
Cuando el sensor se dispara tomaremos las acciones oportunas, como detener o variar la dirección de un robot.
const  int sensorPin = 9;

void setup () {
  Serial.begin(9600);                                             //iniciar puerto serie
  pinMode (sensorPin, INPUT);                            //definir pin como entrada
}

void loop () {
  int value = 0;
  value = digitalRead (sensorPin);                        //lectura digital de pin

  if (value == LOW) {
      Serial.println("TCRT5000L activado");           //zona oscura
  }
  delay(1000);
}





...................................................................................................................................................

SENSOR INFRARROJO DE MOVIMIENTO 
PIR HC-SR501

Los sensores o detectores PIR (Passive Infrared - Sensor Pasivo de Infrarrojos) reaccionan sólo ante determinadas fuentes de energía, como es el caso del calor del cuerpo humano o animales. Básicamente reciben la variación de las radiaciones infrarrojas del medio ambiente que cubre.

Es denominado detector pasivo debido a que no emite radiaciones, sino que las recibe. Estos captan la presencia detectando la diferencia entre el calor emitido por el cuerpo humano y el espacio alrededor. (Todo cuerpo emite cierto nivel de radiación; entre mayor temperatura tenga, mayor radiación emitirá).

El sensor incluye unas lentes de Fresnel, que hacen que el sensor en su conjunto tenga un campo de visión mayor.

¿CÓMO FUNCIONA?

El principal elemento que lo compone es un SENSOR PIROELÉTRICO, diseñado para detectar cambios en la radiación infrarroja recibida. 

Consta de dos elementos detectores separados, siendo la señal diferencia entre ambos la que permite activar la alarma de movimiento. Este sensor da 1 si detecta movimiento o 0 si no lo detecta. En el caso del HC-SR501, la señal generada por el sensor ingresa al circuito integrado BISS001, el cual contiene amplificadores operaciones e interfaces electrónicas adicionales. Otros sensores, incorporan un transistor de efecto campo que amplifica la señal eléctrica que genera cuando se produce dicha variación de radiación recibida.

CARACTERÍSTICAS

- Usa el PIR HC-SR 501 y el controlador BISS0001
- Voltaje de alimentación: de 5 a 12 VDC
- Consumo promedio: <1 font="" miliamperio="">
- Rango de distancia de 3 a 7 metros ajustable
- Ángulo de detección: cono de 110°
- Ajustes: 2 potenciómetros para ajuste de rango de detección y tiempo de alarma activa.
- CH1: Con este resistenca se establece el tiempo que se va a mantener activa la salida del sensor. Una de las principales limitaciones es que el tiempo mínimo es de más o menos 3 segundos (por defecto es de 4 segundos).
- RL2: Esta resistencia variable permite establecer la distancia de detección que puede variar entre 3-7 metros.
- Jumper para configurar la salida de alarma en modo mono-disparo o disparo repetitivo (‘rettrigerable’)
- Salida de alarma de movimiento con ajuste de tiempo entre 3 segundos a 5 minutos.
- Salida de alarma activa Vo con nivel alto de 3,3 volts y 5 mA source, lista para conexión de un led, o un transistor y relevador.
- Tiempo de inicialización: después de alimentar el módulo HC-SR05, debe transcurrir 1 minuto antes de que inicie su operación normal. Durante ese tiempo, es posible que el módulo active 2 ó 3 veces su salida.
- Tiempo de salida inactiva: cada vez que la salida pase de activa a inactiva, permanecerá en ese estado los siguientes 3 segundos. Cualquier evento que ocurra durante ese lapso es ignorado.
- Temperatura de operación: -15° a +70° C.
- Dimensiones: 3,2 x 2,4 x 1,8 cms.


El módulo HC-SR501 tiene tres (3) pines de conexión: + 5V, OUT (3,3V) y GND; y dos resistencias variables de calibración: (CH1 y RL2).

El sensor PIR tiene dos trimers, que se pueden variar con un destornillador de estrella. Estos trimers ajustan el tiempo de retardo y la sensibilidad (de 3,3 mm a 7 m), de forma individual. También hay un puente de selección de modo de disparo.

       H (re-activación): la salida permanece alta cuando el sensor se dispara repetidamente y baja cuando está inactivo.

       L (Normal): la salida cambia de alta a baja cuando se activa. El movimiento continuo da como resultado un pulso alto-bajo repetido.

El lente y el sensor son las partes que captan el infrarrojo. El sensor solo capta, pero de forma recta, y con el lente es capaz de captar en 180º. El lente tiene un color blanco con un patrón de hexágonos.

El sensor dejaría de captar si está con agua o húmedo.

Una mejora que se le puede incluir al sensor es soldarle una fotocelda, este lo que causa es que el funcionamiento cambia al punto de que solo detecta cuando tenga una cierta cantidad de luz.


El sensor en un detector de movimiento está en realidad dividido en dos mitades. La razón de esto es que las dos mitades están conectadas de tal manera que se anulan entre sí. Si una mitad ve más o menos radiación IR que la otra, la salida oscilará a alto o bajo.

Hay algunos PIR que son de colector abierto, esto quiere decir que cuando el sensor detecta un cuerpo, la señal de salida pasa a masa, por lo que se deberá incorporar al circuito de conexión una resistencia de unos 10 K pull-up.

COMPROBAR EL SENSOR PIR

Hay que tener en cuenta el orden de los pines, es diferente según el modelo utilizado. En algunos modelos como el Sparkfun es necesario conectar una resistencia "pull-up" de 10 Kentre su pin de alimentación y su pin de datos para que funcione correctamente, este tipo de sensor envía una señal HIGH cuando no detecta movimiento y una señal LOW cuando sí.

El circuito mostrado cuando el sensor PIR (modelo Adafruit que no usa resistencia pull-up externa) detecte el movimiento, el pin de datos enviará un pulso HIGH de 3,3V y por tanto, se ilumina el led. Cuando el le se apague, se puede comprobar al pasar la mano por delante, o todo el cuerpo.

Al conectar las baterías, se debe esperar unos segundos a que el sensor PIR se estabilice e inicie a emitir datos fiables. 

En el modelo Adafruit, según la posición del jumper situado en el dorso de la placa funciona de dos modos: si está en el "L" el led parpadeará a un ritmo de segundo a segundo mientras detecta movimiento; y si está colocado en "H", el led permanecerá encendido mientras detecta movimiento.


El programa anterior, simplemente notifica por el monitor serial cuándo se ha detectado movimiento.


DETECTAR UN MOVIMIENTO (1)


PROGRAMACIÓN

const int LEDPin = 7;
//declarar el pin 7 para el LED
const int PIRPin = 4;
//declarar el pin4 para el PIR


void setup ()

{

pinMode (LEDPin, OUTPUT);
//inicializa el pin 7 como salida digital
pinMode (PIRPin, INPUT);
//inicializa el pin 4 como entrada digital
}



void loop ()

{

int value = digitalRead (PIRPin);
//lee el valor de la entrada 4 (sensor infrarrojo PIR)


if (value == HIGH)
//si la lectura del infrarrojo es 1, ese cumplirá la siguiente condición:
{

digitalWrite (LEDPin, HIGH);


}

else
//de lo contario el LED no enciende
{

digitalWrite (LEDPin, LOW);

}

}


DETECTAR UN MOVIMIENTO (2)

Otras Alternativas
.......................
Observaciones:

boolean estado=false
El funcionamiento del sensor sin ésta haría que apareciera repetidamente por el monitor serial el texto que se va a imprimir hasta que el sensor dejase de detectar movimiento.

El sensor está durante un tiempo enviando señal de movimiento, pasado ese tiempo volverá a su estado de observación.

byte sensorpir 2;              // pin de salida del sensor, en el Arduino es entrada.
byte led=13;                   // pin de salida para activar un diodo LED

void setup()
{
 pinMode(sensorpir, INPUT);    // declaramos los pines de entrada y salida 
 pinMode(led, OUTPUT);
 Serial.begin(9600);           // conf. velocidad del monitor Serial 
}

void loop)
 {
 if(digitalRead(sensorpir)== HIGH)
  { 
   Serial.println("Detectado movimiento por el sensor pir");
   digitalWrite(led, HIGH);
   delay(1000);
   digitalWrite(led, LOW);
  }
}
................................

int calibrationTime = 30;

long unsigned int lowIn;

long unsigned int pause = 5000;

boolean lockLow = true;

boolean takeLowTime;

int pirPin = 7;

int ledPin = 8;

int ledPin = 9;



void setup ()

{

Serial.begin(9600);

pinMode (ledPin, OUTPUT);

pinMode (PirPin, INPUT);

digitalWrite (pirPin, LOW);

Serial.print ("calibrating sensor");

  for (int i = 0; i < calibrationTime; i ++) {

        Serial.print (" . ");

        delay (1000);

  }

        Serial.print (" done ");

        Serial.println (“SENSOR ACTIVE“);

        delay (50);

}



void loop ()

{

if (digitalRead (pirPin) = HIGH) {

     digitalWrite (ledPin, HIGH);

      if (lockLow) {

      lockLow = false;

      Serial.print (" --- ");

      Serial.print ("motion detected at");

      Serial.print (millis()/1000);

      Serial.print ("sec");

      delay (50);

      }

      takeLowTime = true;

   }

if (digitalRead (pirPin) = LOW) {

     digitalWrite (ledPin, LOW);

      if (takeLowTime) {

      lockIn = millis ();

      takeLowTime = false;

      }

if (! lockLow && millis() – lowIn > pause)  {

    lockLow = true;

      Serial.print ("motion ended at");

      Serial.print (millis() – pause /1000);

      Serial.prinlnt ("sec");

      delay (50);

      }

    } 

}

..........................................................................................................................................

SENSOR ULTRASONIDO

HC-SR04

Un sensor de ultrasonidos puede servir para medir distancias a objetos, utilizarlos como "sonar" en lugares pocos accesibles y como detector de obstáculos.

Los ultrasonidos son aquellos sonidos que se generan en el rango de 20 KHz hasta los 400 KHz, aproximadamente.

El sensor HC-SR04 es un sensor de distancia que utiliza ultrasonido para determinar la distancia de un objeto en un rango de 2 a 450 cm. 

El sensor HC-SR04 posee dos transductores: un emisor (TRIG) y un receptor (ECHO) piezoeléctricos, además de la electrónica necesaria para su operación. 

PINES
  • VCC (+5V DC)
  • TRIG (Disparo del ultrasonido)
  • ECHO (Recepción del ultrasonido)
  • GND (0V)

Nota: El sensor US-016 es similar al HC-SR04 pero con salida de tipo analógica.

FUNCIONAMIENTO

El funcionamiento del sensor es el siguiente: el emisor piezoeléctrico emite 8 pulsos de ultrasonido (40KHz) luego de recibir la orden en el pin TRIG, las ondas de sonido viajan en el aire (340 m/s) y rebotan al encontrar un objeto, el sonido de rebote es detectado por el receptor piezoeléctrico, luego el pin ECHO cambia a Alto (5V) por un tiempo igual al que demoró la onda desde que fue emitida hasta que fue detectada, el tiempo del pulso ECO es medido por el microcontrolador y así se puede calcular la distancia al objeto. El funcionamiento del sensor no se ve afectado por la luz solar o material de color negro (aunque los materiales blandos acústicamente como tela o lana pueden llegar a ser difíciles de detectar).

CARACTERÍSTICAS

  • Voltaje de Operación: 5V DC
  • Corriente de reposo: menor a 2mA
  • Corriente de trabajo: 15 mA
  • Rango de medición: 2 cm a 450 cm
  • Precisión: +- 3 mm
  • Ángulo de apertura: 15°
  • Frecuencia de ultrasonido: 40 KHz
  • Duración mínima del pulso de disparo TRIG (nivel TTL): 10 μS
  • Duración del pulso ECO de salida (nivel TTL): 100-25000 μS
  • Dimensiones: 45mm x 20mm x 15mm
  • Tiempo mínimo de espera entre una medida y el inicio de otra 20ms (recomendable 50ms).

CONEXIONADO




PRÁCTICA 1

SENSOR ULTRASONIDO (A)




PRÁCTICA 2

SENSOR ULTRASONIDO (B)





CONTROL DE MOTORES CONECTADOS A UN SENSOR DE PROXIMIDAD


..........................................................................................................................................

SENSORES DE GAS


SENSOR MQ-3


Este sensor detecta la concentración de alcohol en aire. Simplemente se conecta a una entrada analógica de un Arduino y se podrá medir la concentración de alcohol.

Los sensores de gas de la serie MQ son sensores analógicos por lo que son fáciles de implementar con cualquier microcontrolador.
También tiene una salida digital que se calibra con un potenciómetro, esta salida tiene un led indicador.
Este sensor de alcohol es adecuado para detectar la concentración de alcohol en el aliento, al igual que un alcoholímetro. Tiene un alta sensibilidad y tiempo de respuesta rápida.  Es muy sensible al alcohol y de menor sensibilidad a la bencina, también es sensible a gases como GLP, Hexano, CO, CH4 pero con sensibilidad muy baja, la cual se puede despreciar si hay poca concentración de estos.

Son electroquímicos y varían su resistencia cuando se exponen a determinados gases, internamente posee un calentador encargado de aumentar la temperatura interna.  
ESPECIFICACIONES TÉCNICAS
  • Voltaje de Operación: 5VDC
  • Integrado amplificador LM393 con umbral mediante potenciómetro.
  • 2 pines de salida (salida analógica y salida de nivel TTL).
  • Salida de nivel TTL válida de bajo nivel, se puede conectar directamente al microcontrolador.
  • Salida analógica de 0 ~ 5 V , el voltaje más alto equivale a una concentración más alta.
  • Condiciones de trabajo: Temperatura ambiente:-10℃ to 65℃, Humedad:≤95% RH

DIAGRAMA DE CONEXIONADO
Los sensores MQ se encuentran en módulos, lo que simplifica la parte de conexiones y facilitan su uso, solo basta con alimentar el módulo y empezar a leer el sensor, estos módulos también tienen una salida digital la cual internamente trabaja con un comparador y con la ayuda de un potenciómetro se podrá calibrar el umbral y así poder interpretar la salida digital como presencia o ausencia del gas.
Salida Digital
Tan pronto se alimente el módulo este empezará a calentar, hay que esperar unos minutos para que el módulo caliente y tener un censado adecuado.
El programa es el mismo para cualquier módulo MQ si se usa la salida digital, puesto que  esta salida se comporta como 1 o 0. Tener en cuenta que esta salida es negada, 1 para ausencia de alcohol y 0 para presencia de alcohol.
Nota: antes de usarlo hay que dejarlo conectado por 24 horas

La sensibilidad del sensor se configura a través de la resistencia variable que trae el módulo, girando a la derecha se hace más sensible y necesitamos menos presencia de alcohol para activar la salida, de igual forma si giramos a la izquierda aumentamos el umbral necesitando mayor presencia del gas (alcohol) para que se active la salida.

La diferencia de utilizar la salida digital, es que usando la salida analógica se puede trabajar con diferentes niveles de presencia de gas y escalarlo de acuerdo a la necesidad de nuestra aplicación.

Programación:
int pin_mq = 2;

void setup() { 
  Serial.begin(9600);
  pinMode(pin_mq, INPUT);
}


void loop() {
  
  boolean mq_estado = digitalRead(pin_mq);          //Leemos el sensor
  if(mq_estado)                                     //si la salida del sensor es 1
  {
    Serial.println("Sin presencia de alcohol");
  }
  else                                              //si la salida del sensor es 0
  {
    Serial.println("Alcohol detectado");
  }
  delay(100); 
}

Salida Analógica
La diferencia de utilizar la salida analógica es que podemos trabajar con diferentes niveles de presencia de gas y escalarlo de acuerdo a la necesidad del diseño de la aplicación.
Programación:
void setup() {
  Serial.begin(9600);
}

void loop() {
  
  int adc_MQ = analogRead(A0);                 //Lemos la salida analógica del MQ
  float voltaje = adc_MQ * (5.0 / 1023.0);     //Convertimos la lectura en un valor de voltaje

  Serial.print("adc:");
  Serial.print(adc_MQ);
  Serial.print("    voltaje:");
  Serial.println(voltaje);
  delay(100);
}

PRUEBA INICIAL



PRÁCTICA 3

Sensor de Humo (A)

Se implementa el circuito sin led, para revisar los valores que muestran al acercar o alejar la simulación  de humo en el sensor de gas. Estos valores son los que se tendrán para la programación terminada.


PRÁCTICA 4

Sensor de Humo (B)

Se implementa el circuito conectando los leds. 




TMP 36 o LM35DZ son sensores de temperatura en grados centígrados de precisión y bajo voltaje.

Características del LM35

Voltaje de funcionamiento: 4 a 30 Voltios
Rango de Temperatura: 55°C a 150°C
Precisión: ±2°C
Corriente de Salida: +10mV/°C 



El fabricante del TMP36 o LM35 establece que la salida de tensión será de 10mV por cada grado de temperatura, y como el Arduino Uno mide las salidas analógicas un máximo de 1024 para 5V (y 0 para 0V), por tanto, para una lectura dada, el valor en voltios de la medida será:

Para convertir el voltaje leído en temperatura se utiliza la siguiente fórmula: 

En el TMP36 El 0V no es 0° sino -50° (para leer valores bajo cero), así que al total hay que restarle 50. En cambio en el LM35DZ empieza en 0°, no hay que restarle nada.

Debido a los valores resultantes del sensor (en milivoltios), este sensor se deberá conectar en las entradas analógicas de Arduino.

También se puede utilizar otros tipos de sensores para medir la temperatura, como lo es TERMISTOR NTC.

 PRÁCTICA 5. SENSOR DE TEMPERATURA 


PROGRAMACIÓN (A)


PROGRAMACIÓN (B)


PROGRAMACIÓN (C)



PRÁCTICA 6. RETO: SENSOR DE TEMPERATURA CON PANTALLA LCD y LEDs





El sensor de presión barométrica BMP180 permite medir la altura respecto al nivel del mar, su funcionamiento está basado en la relación entre presión del aire y la altitud. El BMP180 es el reemplazo de BMP085, posee alta precisión y de bajo consumo de energía.

CARACTERÍSTICAS

Digital interfaz de dos cables (I2C)
Amplio rango de medición de presión barométrica
Ultra-bajo consumo de energía
Bajo ruido
Completamente calibrado
Medición de temperatura incluida
Ultraplano y pequeño tamaño
Alimentación: 1.8V – 3.6V
Rango de medición: 300 – 1100hPa

Los pines A4 y A5 están definidos fijos para las señales SDA y SCL del bus I2C y no se pueden cambiar en el Arduino UNO.


Lecturas de presión y temperatura con el BMP180




Lecturas de presión y temperatura con el BMP180 a través de la pantalla LCD




QRD 1114

SENSOR INFRARROJO




0 Comentarios