Anda di halaman 1dari 7

F.

Hugo Ramrez Leyva Microcontroladores Semforo

Prctica No. 3 del Curso "Microcontroladores"


Contador de Objetos

Objetivos

Hacer un sistema con base en el MSP430 que cuente los objetos que pasan con
base en un detector infrarrojo, cada que pasen 10 objetos encienda un led.

Material

Sensor QRD1114
Metro
Superficie reflectora
Resistencias de 1k y 180
MSP430 Launchpad

Planteamiento

El contador de objetos es utilizado en sistemas donde se requiere llevar la cuenta de


personas u objetos que pasan enfrente del sistema. Normalmente se monta en una
cinta transportadora. El sensor puede ser realizado con base, en infrarrojo, laser,
capacitivo, inductivo, etc. Normalmente este tipo de sensores tienen una salida digital
con salida a relevador, o transistor.

En esta prctica por cuestiones econmicas se va usar en un sensor infrarrojo


QRD1114 cuyo diagrama esquemtico se muestra en la figura 1(a), su diagrama de
conexiones se muestra en la figura 1(b).

(a) (b)

Figura 1. (a) Diagrama a bloques del codificador de BCD a 7 segmentos. (b)


Conexiones de los segmentos.

El sensor QRD1114 utiliza un diodo emisor infrarrojo en combinacin con un


fototransistor infrarrojo para detectar las seales emitidas por el primero. Sirve para
1
F. Hugo Ramrez Leyva Microcontroladores Semforo

detectar transiciones Negro-Blanco (robots sigue-lneas) o para detectar objetos


cercanos (0.5 a 1 cm). Cuando se encuentra un objeto, ste refleja la luz emitida por el
emisor y es captada por el transistor, el cual se pone en saturacin. Cuando no hay luz
reflejada el transistor esta en corte.

En la figura 2 se mustra el circuito para probar al sensor. El resistor R2 le


suministra corriente al fotoemisor, cuando se recibe seal infrarroja reflejada esta es
convertida a corriente por el foto transistor. La polarizacin de este ltimo se hace con
el resistor R1. Cuando no se recibe nada de seal el voltaje en P1.1 esta en 3.3V, a
medida que empieza a recibir seal, el voltaje va disminuyendo de este valor haste 0V
(cuando se recibe una seal muy intensa).

Figura 2. Diagrama esquematico del circuto de prueba del

Procedimiento.

1. Realzar el programa para el microcontrolador MSP430 que lea una entrada por
el pin P1.1 y encienda uno de los 2 leds, con que se cuenta el lauchpad. Cada
que se presiona el interruptor se debe incrementa la cuenta en un registro y
cambiar el estado del el led, cuando la cuenta es un mltiplo de 10 se debe
cambiar el estado del otro led. La entrada que va a leer se muestra en la figura
3.

2
F. Hugo Ramrez Leyva Microcontroladores Semforo

Figura 3. Diagrama de conexiones para probar la entrada digital

2. Una vez que se ha realizado el programa. Caracterizar el sensor QRD1114.


Para ello se va a armar el circuito de la figura 2. Una vez que este armado se va
a poner un objeto con superficie blanca al frente y se va a variar la distancia
entre ste y el sensor. En la tabla 1 se va a anotar los voltajes detectados en el
punto P1.1. Con base en la tabla se va a determinar la distancia mxima a partir
de la cual se detecta un objeto (con un 1 o un 0 lgico)

3. Finalmente conectar el sensor al launchpad con el programa hecho previamente


al circuito del sensor QRD1114 y pasarle un objeto enfrente de l. Comprobar
que funciona el contador.

Tabla 1. Caracterizacin del sensor QRD1114


Distancia (cm) Voltaje en el punto P1.1 (V)
0.5
1.0
1.5
2.0
2.5
3.0
3.5
4.0
5.0
6.0
7.0
8.0
10.0
15.0
20.0

3
F. Hugo Ramrez Leyva Microcontroladores Semforo

Reporte

El reporte se va a entregar en 1 semanas despus de concluida la prctica. No


se les olvide incluir, la introduccin, el procedimiento, resultado, conclusiones y
bibliografa.

Referencias.

[1] Fairchild. QRD1113/1114 Reflective Object Sensor. Fairchild


Semiconductor Corporation. 2000

4
F. Hugo Ramrez Leyva Microcontroladores Semforo

//***************************************************************************
************
// MSP430 Blink the LED Demo - Software Toggle P1.0
//
// Description; Toggle P1.0 by xor'ing P1.0 inside of a software loop.
// ACLK = n/a, MCLK = SMCLK = default DCO
//
// MSP430x5xx
// -----------------
// /|\| XIN|-
// | | |
// --|RST XOUT|-
// | |
// | P1.0|-->LED
//
// J. Stevenson
// Texas Instruments, Inc
// July 2011
// Built with Code Composer Studio v5
//***************************************************************************
************

#include <msp430g2452.h>

void RutRet1(unsigned int a);

int main(void)
{
// unsigned int i=0;
WDTCTL = WDTPW + WDTHOLD; // Stop watchdog timer
P1DIR |= 0x7F; // Set P1.0 to output direction
P2DIR |= 0x00; // Set P1.0 to output direction
//i=100;
//b=i;
//b=200;
while(1)
{
volatile unsigned int b, c; // volatile to prevent
optimization

//b=P2IN & 0x007F;


for(b=0;b<=15;b++)
{
switch (b) {

case 0: c=0x007E;
break;
case 1: c=0x0030;
5
F. Hugo Ramrez Leyva Microcontroladores Semforo

break;
case 2: c=0x006D;
break;
case 3: c=0x0079;
break;
case 4: c=0x0033;
break;
case 5: c=0x005B;
break;
case 6: c=0x001F;
break;
case 7: c=0x0070;
break;
case 8: c=0x007F;
break;
case 9: c=0x0073;
break;
case 10: c=0x000D;
break;
case 11: c=0x0019;
break;
case 12: c=0x0023;
break;
case 13: c=0x004B;
break;
case 14: c=0x000F;
break;
case 15: c=0x0000;
break;
default : break;
}
P1OUT=c;
RutRet1(1);
}

//b=10;
//RutRet1(1);
}
}

/*
void RutRet1(unsigned int a)
{
volatile unsigned int c;
c=0;

while (c <a)
{
c++;
}

}
*/

6
F. Hugo Ramrez Leyva Microcontroladores Semforo

void RutRet1(unsigned int a)


{
volatile unsigned int c, i, d=10;
c=0;
d=a*10;
for (i=0;i<d;i++)
{
while (c <10000)
c++;
c=0;
}