Práctica No. 3 del Curso "Microcontroladores" Contador de Objetos

Anuncio
F. Hugo Ramírez Leyva
Microcontroladores
Semáforo
Práctica 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 práctica por cuestiones económicas se va usar en un sensor infrarrojo
QRD1114 cuyo diagrama esquemático 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 combinación con un
fototransistor infrarrojo para detectar las señales emitidas por el primero. Sirve para
1
F. Hugo Ramírez Leyva
Microcontroladores
Semáforo
detectar transiciones Negro-Blanco (robots sigue-líneas) 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 saturación. 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 señal infrarroja reflejada esta es
convertida a corriente por el foto transistor. La polarización de este último se hace con
el resistor R1. Cuando no se recibe nada de señal el voltaje en P1.1 esta en 3.3V, a
medida que empieza a recibir señal, el voltaje va disminuyendo de este valor haste 0V
(cuando se recibe una señal 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 led’s, 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 múltiplo 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 Ramírez Leyva
Microcontroladores
Semáforo
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 máxima a partir
de la cual se detecta un objeto (con un 1 o un 0 lógico)
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. Caracterización 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 Ramírez Leyva
Microcontroladores
Semáforo
Reporte
El reporte se va a entregar en 1 semanas después de concluida la práctica. No
se les olvide incluir, la introducción, el procedimiento, resultado, conclusiones y
bibliografía.
Referencias.
[1]
Fairchild. QRD1113/1114 Reflective Object Sensor. Fairchild
Semiconductor Corporation. 2000
4
F. Hugo Ramírez Leyva
Microcontroladores
Semáforo
//***************************************************************************
************
// 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;
P1DIR |= 0x7F;
P2DIR |= 0x00;
//i=100;
//b=i;
//b=200;
while(1)
{
volatile unsigned int b, c;
optimization
// Stop watchdog timer
// Set P1.0 to output direction
// Set P1.0 to output direction
// volatile to prevent
//b=P2IN & 0x007F;
for(b=0;b<=15;b++)
{
switch (b) {
case 0: c=0x007E;
break;
case 1: c=0x0030;
5
F. Hugo Ramírez Leyva
Microcontroladores
Semáforo
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 Ramírez Leyva
Microcontroladores
Semáforo
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;
}
}
7
Descargar