I.E.S. Joan Miró (S.S. de los Reyes) / Dpto. Electrónica
Ciclo Superior de Desarrollo de Productos Electrónicos
Proyecto RASTREADOR
Departamento de Electricidad-Electrónica
Ciclo Superior de Desarrollo de Productos Electrónicos
Alumno: Alvar Martín del HoyoInstituto: I.E.S. Joan MiróLocalidad: San Sebastián de los ReyesCurso: 2008/2009
1
I.E.S. Joan Miró (S.S. de los Reyes) / Dpto. Electrónica
Ciclo Superior de Desarrollo de Productos Electrónicos
INDICE
1.- Explicación breve del Proyecto…………………………………….................…………. 6
2.- Diagrama de bloques……………………………………………….................…………….8
2.1.- Regulador de 9v/5v y adaptador de señales PC-Uc……….................…………9
2.1.1.- Regulador 9v/5v…………………………………………….................…………9
2.1.2.- Adaptador de señales PC-uC…………………………….................……..…10
2.2.- Control……………………………………………………………................………...12
2.3.- Etapa de potencia………………………………………………………...............…15
2.4.- Sensores…………………………………………………………................…………18
3.- Esquema eléctrico de simulación con Proteus……………………................……….20
3.1.- Simulación del Robot rastreador……………………………...............………20
4.- Programación………………………………………………………………...............……..21
4.1.- Prueba motor derecho………………………………………………...............……21
4.1.1.-Diagrama de flujo………………………………………………...............……21
4.1.2.- Programa…………………………………………………...................…………22
4.2.- Prueba motor izquierdo……………………………………..............…………..24
4.2.1.- Diagrama de flujo…………………………………..............…………..24
4.2.2.- Programa……………………………………………..............………….25
4.3.- Prueba LCD……………………………………………………..............…………27
4.3.1.- Diagrama de flujo……………………………….....................………….27
4.3.2.- Programa………………………………………….................…………..28
4.4.- Prueba de sensores………………………………………………,................…..29
4.4.1.- Diagrama de flujo….………………………………………….............………29
2
I.E.S. Joan Miró (S.S. de los Reyes) / Dpto. Electrónica
Ciclo Superior de Desarrollo de Productos Electrónicos
4.4.2.- Programa………………………………………………..................…….30
4.5.- Prueba motores……………………………………………………,,,,,,,,,,……….33
4.5.1.- Diagrama en bloques…………………………………..............………..33
4.5.2.- Programa…………….……………………………………..........……….34
4.6.- Programa final…………………………………………………….............………36
4.6.1.- Función ZonaDerechaTemp()……………………….............………..36
4.6.1.1.- Diagrama de bloques………………………………….........…….36
4.6.1.2.- Programa……………………………………............…………37
4.6.2.- Función ZonaDerecha()………………………………….........………...39
4.6.2.1.- Diagrama de flujo………………………………………........…………39
4.6.2.2.- Programa…………………………………………………........………...40
4.6.3.- Función ZonaIzquierdaTemp()…………………………........…………42
4.6.3.1.- Diagrama de flujo………………………………………........…………42
4.6.3.2.- Programa……………………………………………........……………...43
4.6.4.- Función ZonaIzquierda()………………………………...........……………..45
4.6.4.1.- Diagrama de flujo…………………………………….......…………….45
4.6.4.2.- Programa……………………………………………….......……………46
4.6.5.- Programa principal…………………………………………….......………….48
4.6.5.1.- Diagrama de flujo……………………………………………..........…..48
4.6.5.1.- Programa………………………………………………………..........….50
5.- Esquema eléctrico completo…………………………………………….............……….53
6.- Diseño de Placas de Circuitos Impresos…………………………………............……54
6.1.- Alimentación del Circuito + Cargador del Programa………………........……54
3
I.E.S. Joan Miró (S.S. de los Reyes) / Dpto. Electrónica
Ciclo Superior de Desarrollo de Productos Electrónicos
6.1.1.- Esquema eléctrico……………………………………………..............……..54
6.1.2.- Cara de componentes y Top Copper………….....…………………..…….55
6.1.3.- Cara Bottom Copper…………………………………………….............…...55
6.2.- Placa de control…………………………………………………………….........…...56
6.2.1.- Esquema eléctrico…………………………………………….............……..56
6.2.2.- Cara de componentes……………………………………….........………...57
6.2.3.- Top Copper……………………………………………………….....………...57
6.2.4.- Bottom Copper………………………………………………............………58
6.3.- Placa de potencia…………………………………………………...............……….59
6.3.1.- Esquema eléctrico…………………………………………............………..59
6.3.2.- Cara de componentes…………………………………………........………….60
6.3.3.- Top Copper…………………………………………………............…………60
6.3.4.- Bottom Copper………………………………………………………...……..61
6.4.- Placa de sensores..............................................................................................62
6.4.1.- Esquema eléctrico………………………………………………….............62
6.4.2.- Cara de componentes………………………………………………...…….63
6.4.3.- Top Copper…………………………………………………………......…….63
6.4.4.- Bottom Copper…………………………………………………………..…..63
7.- Diseño mecánico…………………………………………………………...................…...64
7.1.- Carrocería Placa-Robot…………………………………………………….........…64
4
I.E.S. Joan Miró (S.S. de los Reyes) / Dpto. Electrónica
Ciclo Superior de Desarrollo de Productos Electrónicos
8.- Listado de materiales………………………………………………………………………65
8.1.- Fuente de alimentación y adaptador de señal Pc-uC………………………….65
8.2.- Placa de control………………………………………………………………………67
8.3.- Placa de potencia…………………………………………………………………….68
8.4.-Placa de sensores…………………………………………………………………….70
8.5.- Placas de circuito impreso…………………………………………………………71
8.6.- Carrocería……………………………………………………………………………...71
9.-Coste Económico…………………………………………………………………………….72
9.1.- Desarrollo del Proyecto……………………………………………………………..72
9.2.- Material…………………………………………………………………………….72
9.3.- Total………………………………………………………………………………..73
5
I.E.S. Joan Miró (S.S. de los Reyes) / Dpto. Electrónica
Ciclo Superior de Desarrollo de Productos Electrónicos
1.- Explicación breve del Proyecto.
El proyecto consiste en realizar un robot que sea capaz seguir una línea negra pintada sobre un fondo blanco.
Cuando llegue una bifurcación el robot deberá escoger el camino adecuado. Este viene dado por una línea negra situada a un lado o a otro de la línea del camino justo antes de la bifurcación, si está situada a la derecha de la línea el robot deberá elegir el camino de la derecha y si la línea de bifurcación está situada a la izquierda de la línea del camino este deberá escoger el camino de la izquierda.
El robot inicialmente solo tiene que estar leyendo los sensores sin mover los motores asta que se pone en la posición de inicio. Esto ocurrirá cuando los sensores 3 y 4 estén leyendo negro-blanco respectivamente. Cuando este posicionado correctamente, aparecerá en el LCD del robot y este esperará a que sea pulsado el botón de inicio para empezar a rastrear.
El robot es tipo triciclo. Posee dos ruedas con su correspondiente motor en la parte delantera del robot que irán marcando la dirección del robot. En la parte de atrás tiene una rueda loca para mantener el equilibrio.
El robot trabaja con técnicas digitales. Este está controlado con el microcontrolador PIC 16F876A.
Tiene una pantalla LCD en el que indica la dirección que está tomando en todo momento.
Para seguir la línea negra el robot está dotado de 5 sensores de infrarrojos CNY70, que detectan si está sobre una superficie blanca o negra. La combinación de las diferentes posibilidades que pueden detectar con los 5 sensores irán determinado la dirección a seguir por el robot.
6
I.E.S. Joan Miró (S.S. de los Reyes) / Dpto. Electrónica
Ciclo Superior de Desarrollo de Productos Electrónicos
Existe una comunicación entre el robot y un mando en radio frecuencia con los módulos de CEBECK C-0503 y C-0504. Que son un transmisor y receptor de datos en modulación AM que trabajan a una frecuencia portadora 433,92 MHz y tienen un Ancho de Banda de 4 KHz.
Este proyecto se ha realizado con un programa llamado Proteus, que te permite simular el hardware y el software a la vez, pudiendo ejecutarse paso a paso cada programa. La programación se ha realizado en C. También se ha desarrollado las placas del proyecto y la carrocería del dispositivo.
También se ha utilizado la herramienta de diseño MPLAB de Microchip para depurar el programa.
El software se puede grabar en el robot directamente sin necesidad de extraer el microcontrolador, para ello se ha utilizado el grabador PICdownloader.exe. El microcontrolador tiene que tener cargado previamente un programa de comunicaciones para comunicarnos con el Ordenador Personal.
7
Ciclo Superior de Desarrollo de Productos Electrónicos
I.E.S. Joan Miró (S.S. de los Reyes) / Dpto. Electrónica
2.- Diagrama de bloques
8
Ciclo Superior de Desarrollo de Productos Electrónicos
I.E.S. Joan Miró (S.S. de los Reyes) / Dpto. Electrónica
2.1.- Regulador de 9v/5v y adaptador de señales PC-uC
2.1.1.- Regulador 9v/5v
La Fuente de Alimentación es un circuito que se encargar de obtener una tensión de 5V (VDD) continua a partir de una superior de 9V, para ello se ha utilizado el regulador LM350 (Encapsulado TO3) que nos puede dar una corriente de salida máxima Imax de 3 A y una tensión que puede variar entre 3V y 35 V que en nuestro caso será de 5V.
Con el potenciómetro RV1 regulamos la tensión que queremos que nos de el LM350 a la salida (5V).
R38 sirve para estabilizar la corriente del potenciómetro y C15 para filtrar el ruido que se pueda producir al mover el potenciómetro.
C1, C3 y C4 son condensadores de filtro.
El diodo D1 tiene la misión de proteger el circuito en caso de poner la batería BAT1 al revés.
El diodo Led D3 nos indica que la fuente esta encendida.Los diodos D2 y D4 son de protección del regulador LM350 de sobretensiones e inversiones de tensión de salida.
También obtenemos una tensión de 8,4V (VP) para alimentar los motores.
RXPCTXPC
GN
D
VC
C
VCC
Regulador 9V/5V
12
BATERIA9V
1 2
ON-OFF
AK
D2
AK
D4 C3220uF
C4100nF
R1220
C2100nF
C12200uF
A K
D1
GN
D
GN
D
GN
D GN
D GN
D
GND
VP
VDD
GND
VP GN
D
Adaptador de señales PC-uC
T1IN 11
R1OUT 12
T2IN 10
R2OUT 9
T1OUT14
R1IN13
T2OUT7
R2IN8
C2+
4
C2-
5
C1+
1
C1-
3
VS+2
VS-6
U2
MAX232_JOANGND=GNDVCC=VCC
C6
1uF
C8
1uF
C5
1uF
C71uF
162738495
J11
C9100nF
RC
6
VD
D
GND
GND
GN
D
RC7(BL)
RC
7(BL
)
GN
D
RC6
VD
D
VDD
AK
D3
12345678910
J1A
12
JP1
1
MASA3
GN
D
12
3
RV15k
C1510uF
R38240
GND
VIN2 VOUT 3
ADJ
1
U1LM350K_JOAN
9
Ciclo Superior de Desarrollo de Productos Electrónicos
I.E.S. Joan Miró (S.S. de los Reyes) / Dpto. Electrónica
2.1.2.- Adaptador de señales PC-uC
El circuito MAX 232 es el encargado de transformar esos niveles de tensión. A este se le añade un conector para poder realizar la carga del programa fácilmente desde nuestro ordenador.
10
Ciclo Superior de Desarrollo de Productos Electrónicos
I.E.S. Joan Miró (S.S. de los Reyes) / Dpto. Electrónica
Este circuito intercambia niveles de TTL a RS-232 y viceversa. Este es necesario porque un 1 en TTL son 5v y un 1 en RS232 es -12v.Un 0 en TTL es 0v y un 0 en RS232 es 12v.
NIVELES LÓGICOS TTL
11
Ciclo Superior de Desarrollo de Productos Electrónicos
I.E.S. Joan Miró (S.S. de los Reyes) / Dpto. Electrónica
2.2.- Control
VSS
VD
D
RB7RB6RB5RB4
RB0
RB2RB1
RA5
RA0RA1RA2RA3
RA5
RA0
RA3RA2RA1
RA0/AN0 2
RA1/AN1 3
RA2/AN2/VREF- 4
RA4/T0CKI 6
RA5/AN4/SS 7
OSC1/CLKIN 9
OSC2/CLKOUT 10
RC1/T1OSI/CCP212
RC2/CCP113
RC3/SCK/SCL14
RB7/PGD28 RB6/PGC27 RB526 RB425 RB3/PGM24 RB223 RB122 RB0/INT21
RC7/RX/DT18 RC6/TX/CK17 RC5/SDO16 RC4/SDI/SDA15
RA3/AN3/VREF+ 5
RC0/T1OSO/T1CKI11
MCLR/Vpp/THV 1
U10
PIC16F876_JOAN
1234
J8
RC4/SDARC3/SCL
RC3/SCL
RC4/SDA
1234
J6
RC4/SDARC3/SCL
1234
J7
RC4/SDARC3/SCL
1234
J9
RC4/SDARC3/SCL
VDD VDD VDD VDD
Receptor de Datos CEBEK C-0504
Vcc
11
GN
D1
2
Ant
ena
3
GN
D2
7
GN
D3
11
TEST
13
Vs14
Vcc
15
RF1123
J10
RC6
RC
7(BF
)
RC
7(BL
)
1
ANTENA
VD
D
VD
D
RC
6
VD
D
RC
7(BL
)
VP
VP
C16
15pF
C13
15pF
X1
12
RESETR27100
R2610k
C14
100nF
VDD
RA4
RA4
VDD
12345678910
J3
123456789
10
J5
RB3
RC1RC2
RC5
RC5RC0RB3RC2RC1
D7
14
D6
13
D5
12
D4
11
D3
10
D2
9
D1
8
D0
7
E6
RW5
RS
4
VSS
1V
DD
2V
EE3
LCD1
VDD
21
3
INICIO
12345678910
J1
12
JP
GNDP
12
JP2GNDP
VDD
RCO
1
J14
Sistema de control
R144k7
R154k7
VD
D
RC
7(BF
)
El microcontrolador PIC15F876A es un CHIP de 28 patillas se encarga del control total del robot (control de motores, lectura de sensores,…). Este trabaja con una frecuencia de 4MHz y ejecuta una instrucción cada 1uS.
Con el jumper J10 elegimos si queremos que el microcontrolador realice la carga del programa desde el ordenador personal o recibir los datos de la tarjeta de radiofrecuencia. En la placa tenemos cuatro puertos I2C con los que podemos ampliar el circuito con cualquier periférico que también trabaje con I2C.
12
Ciclo Superior de Desarrollo de Productos Electrónicos
I.E.S. Joan Miró (S.S. de los Reyes) / Dpto. Electrónica
Características del PIC16F876: Tiene 35 Instrucciones Tiene una Memoria de Programa de 8192 palabras “FLASH” 368 byte de Memoria de Datos “RAM” 256 byte de EEPROM 22 Patillas de entradas/salidas. Sistema de Adquisición de datos (5 Entradas Analógicas) 2 módulos de CCP y PWM. (Comparación y captura de datos y generadores de señal por Modulación de Anchura de Pulsos). Un módulo de comunicación serie SPI (Serial Peripheral Interface) I2C (Inter-Integrated Circuit). Un transmisor-receptor asíncrono serie universal USART. 3 Timer (Temporizadores/Contadores). 2 Comparadores de señales analógicas.
Lcd 2x16
D7
14
D6
13
D5
12
D4
11
D3
10
D2
9
D1
8
D0
7
E6
RW5
RS
4
VSS
1V
DD
2V
EE3
LCD?LCD-16 X 2_JOAN
La pantalla de cristal líquido es un dispositivo microcontrolado de visualización gráfico para la representación de caracteres.Dispone de 2 filas de 16 caracteres cada una.
Las principales características son:• Consumo de 7,5 mW.• Representa caracteres ASCII.• Desplaza los caracteres a derecha e Izquierda.• Memoria de 40 caracteres por línea de pantalla, visualizando 16 caracteres por línea..• Se pueden programar 8 caracteres.• Se puede gobernar de 2 formas diferentes:
o Conexión con un bus de 4 bits.o Conexión con un bus de 8Bits.
13
Ciclo Superior de Desarrollo de Productos Electrónicos
I.E.S. Joan Miró (S.S. de los Reyes) / Dpto. Electrónica
Receptor de Radiofrecuencia.
La Tarjeta Receptora de Datos CEBEK C-0504 es un circuito encargado de recibir vía radiofrecuencia, los datos digitales procedentes del Mando. La señal digital tiene que tener una frecuencia entre 20 Hz < fo < 4 KHz. Y una portadora de 433,92 MHz. Este circuito demodula la señal de AM obteniendo los datos transmitidos.
Receptor de Datos CEBEK C-0504
Vcc
11
GN
D1
2
Ant
ena
3
GN
D2
7
GN
D3
11
TEST
13
Vs14
Vcc
15
RF1
1
ANTENA
VD
D
VD
D
RC
7(BF
)
14
Ciclo Superior de Desarrollo de Productos Electrónicos
I.E.S. Joan Miró (S.S. de los Reyes) / Dpto. Electrónica
2.3.- Etapa de potencia.
6
5
4
1
2
U3
+88.8
12
MIZAK
D5
AK
D6
AK
D7
AK
D8
C10
100nF
GN
DP
GN
DP
VP
+88.8
12
MDEAK
D12
AK
D9
AK
D10
AK
D11
C11
100nF
GN
DP
GN
DP
VP
IN15
IN27
ENA6
OUT1 2
OUT2 3
ENB11 OUT3 13
OUT4 14
IN310
IN412
SENSA1
SENSB15 GND
8
VS
4
VCC
9 U9
L298
VDD VP
GND
VPGNDP
6
5
4
1
2
U7
6
5
4
1
2
U8R13220
R11220
VD
DV
DD
R1010k
R1210k
GND
GND1
Q2Q3BD139_JOAN
Q1BD139_JOAN
Q4
GN
DP
GNDP
VDDR210kR3
220VDD
6
5
4
1
2
U4 VDDR410kR5
220VDD
6
5
4
1
2
U5 VDDR610kR7
220VDD
6
5
4
1
2
U6VDD
R810k
R9220
VDD
VP
VP
GND
GND
GND
GND
123456789
10
J3A
12
JP21
VDDGND
VU3VU7VU8VU9
VSENSBVSENSA
VU3
VU7
VU8
VU9
VSENSA
VSENSB
1
MASA
GN
D
VD
D
Funcionamiento:
VSENSA= 1 U7(Opto) IbQ1 ≅ Hay corriente VCEQ1 ≅ 0V (Saturación) IbQ4 (Q1) ≅ Hay corriente VCEQ4 ≅ 0V (Saturación) Motor Izquierdo funcionando.
VSENSA= 0 U7(Opto) IbQ1 ≅ No hay corriente VCEQ1 ≅ 9V (Corte) IbQ4 (Q1) ≅ No hay corriente VCEQ4 ≅ 9V (Corte) Motor Izquierdo Parado.
VSENSB= 1 U8(Opto) IbQ2 ≅ Hay corriente VCEQ2 ≅ 0V (Saturación) IbQ3 (Q1) ≅ Hay corriente VCEQ3 ≅ 0V (Saturación) Motor Derecho funcionando.
VSENSB= 0 U8(Opto) IbQ2 ≅ No hay corriente VCEQ2 ≅ 9V (Corte) IbQ3 (Q1) ≅ No hay corriente VCEQ3 ≅ 9V (Corte) Motor Derecho Parado.
15
Ciclo Superior de Desarrollo de Productos Electrónicos
I.E.S. Joan Miró (S.S. de los Reyes) / Dpto. Electrónica
En nuestra placa está el circuito integrado L298. Este integrado contiene dos puentes en H y por tanto con él seremos capaces de manejar hasta dos motores (patillas 2 y 3 13 y 14). El motor, gracias a este integrado, podrá ser alimentado a una tensión distinta de los 5V que emite el PIC (patilla 4), por lo que nos resuelve los problemas propuestos.
IN15
IN27
ENA6
OUT1 2
OUT2 3
ENB11 OUT3 13
OUT4 14
IN310
IN412
SENSA1
SENSB15 GND
8
VS
4
VCC
9 U1
L298
A través de las patillas 1(SENSA) y 15(SENSB) se cierra el circuito de los motores. Para que esto ocurra Q1, Q4 y Q2 y Q3 deben estar en saturación a través de los optoacopladores U7 y U8. En caso contrario estarían al corte y se quedaría en circuito abierto.Las patillas 6 y 11 son los enables del L298.Si están a nivel alto dan a la salida el mismo nivel lógico que se le meta por las entradas pero con la tensión de los motores que llega al L298 por la patilla 4.Si los enables están a nivel bajo se produce una alta impedancia a las entradas y por tanto se protege el circuito de la entrada de ruidos.
El L298 soporta hasta 2 Amperios de corriente, con lo que es más que suficiente para alimentar a nuestros 2 motores.
Ejemplo de funcionamiento de motor con el L298:
En t r a d a sEN A IN 1 IN2
Sa l i d a sOU T 1 OU T 2
Ef e c t o s sob r e un Mo t o r
0 x x 1 0 0 1 0 1 1 1 0 1 1 1
5v 5v 0v 0v 0v 9v 9v 0v 9v 9v
Pa r a d oPa r a d o
Gi r o con t r a r i o a las ag u j a s de l rel o jG i r o en sen t i d o de las ag u j a s de l rel o j
Parado
16
Ciclo Superior de Desarrollo de Productos Electrónicos
I.E.S. Joan Miró (S.S. de los Reyes) / Dpto. Electrónica
Servo
En este robot utilizamos el L298 para el control de dos motores (servos modificados para 360º).El servo es un pequeño pero potente dispositivo que dispone en su interior de un pequeño motor con un reductor de velocidad y multiplicador de fuerza, también dispone de un pequeño circuito que gobierna el sistema. El recorrido del eje de salida es de 180º en la mayoría de ellos, pero puede ser fácilmente modificado para tener un recorrido libre de 360º y actuar así como un motor.Se puede modificar para obtener más velocidad o más par, en mi caso lo he hecho para obtener más par ya que no necesito una gran velocidad. Su pequeño tamaño es muy cómodo a la hora de colocarlo en el chasis.
17
Ciclo Superior de Desarrollo de Productos Electrónicos
I.E.S. Joan Miró (S.S. de los Reyes) / Dpto. Electrónica
2.4.- Sensores
VCCGND
CN
Y70
A3
C1
K 4
E 2
OP1R25220
R2418k
GNDVDD
1110
U11:E
74HC14
CN
Y70
A3
C1
K 4
E 2
OP2R23220
R2218k
1312
U11:D
74HC14
CN
Y70
A3
C1
K 4
E 2
OP3R21220
R2018k
56
U11:C
74HC14
CN
Y70
A3
C1
K 4
E 2
OP4R19220
R1818k
34
U11:B
74HC14
CN
Y70
A3
C1
K 4
E 2
OP5R17220
R1618k
12
U11:A
74HC14
GND
GND
GND
GND
GND
VDD
VDD
VDD
VDD
VDD
12345678910
J5A
1
J15
GN
D
18
Ciclo Superior de Desarrollo de Productos Electrónicos
I.E.S. Joan Miró (S.S. de los Reyes) / Dpto. Electrónica
El CNY70 es un pequeño dispositivo con forma de cubo y cuatro patas que tiene en su interior un diodo emisor de infrarrojos y un fototransistor (recetor) apuntando ambos en la misma dirección.
El fototransistor conducirá mas, contra más luz reflejada del emisor capte por su base. La salida de este dispositivo es analógica y viene determinada por la cantidad de luz reflejada, así pues para tener una salida digital se podría poner un disparador Trigger Smith y así obtener la salida digital.
Acondicionador de señal. Principalmente trabaja con el 74HC14 (Trigger Smith):
-Cuando el CNY70 "ve" blanco (refleja toda la luz), el 74HC14 lo transforma a 0V (cero lógico). - Cuando el CNY70 "ve" negro (se absorbe toda la luz), el 74HC14 lo transforma a 5 V (uno lógico).
CN
Y70
A3
C1
K 4
E 2
220
18k
12
74HC14
GNDVDD
Cuando el 74hc14 (Trigger Smith) recibe tensiones inferiores a 3,3V lo transforma a 5V (uno lógico). Y cuando recibe tensiones superiores a 3,3V lo trasforma a 0V (cero lógico).La resistencia de 220Ω sirve para regular la intensidad de luz que emite el diodo emisor y la de 18kΩ cuanto mas grande sea, el fototransistor detectará la línea mejor a mayor distancia. Será más sensible.
19
Ciclo Superior de Desarrollo de Productos Electrónicos
I.E.S. Joan Miró (S.S. de los Reyes) / Dpto. Electrónica
3.- Esquema eléctrico de simulación con Proteus.3.1.- Simulación del Robot rastreador.
VSS
VD
D
RB7RB6RB5RB4
RB0
RB2RB1
RA0
RA5
RA3RA2RA1
6
5
4
1
2
U3
+88.8
12
MIZQAK
D5
AK
D6
AK
D7
AK
D8
C10
100nF
VP
+88.8
12
MDER
MOTOR-DC_JOAN
AK
D12
AK
D9
AK
D10
AK
D11
C11
100nF
VP
IN15
IN27
ENA6
OUT1 2
OUT2 3
ENB11 OUT3 13
OUT4 14
IN310
IN412
SENSA1
SENSB15 GND
8
VS
4
VCC
9 U9
L298
VDD VP
6
5
4
1
2
U7
6
5
4
1
2
U8R13
220
R11
220
VD
DV
DD
R10
10k
R12
10k
Q2Q3
Q1Q4
VDDR2
10kR3
220VDD
6
5
4
1
2
U4 VDDR4
10kR5
220VDD
6
5
4
1
2
U5 VDDR6
10kR7
220VDD
6
5
4
1
2
U6VDD
R8
10kR9220
VDD
VP
VP
RA0/AN0 2
RA1/AN1 3
RA2/AN2/VREF- 4
RA4/T0CKI 6
RA5/AN4/SS 7
OSC1/CLKIN 9
OSC2/CLKOUT 10
RC1/T1OSI/CCP212
RC2/CCP113
RC3/SCK/SCL14
RB7/PGD28 RB6/PGC27 RB526 RB425 RB3/PGM24 RB223 RB122 RB0/INT21
RC7/RX/DT18 RC6/TX/CK17 RC5/SDO16 RC4/SDI/SDA15
RA3/AN3/VREF+ 5
RC0/T1OSO/T1CKI11
MCLR/Vpp/THV 1
U10
PIC16F876_JOAN
RC6
C16
15pF
C13
15pF
X112
RESETR27
100
R2610k
C14
100nF
VDD
VU3
VU9
VSENSAVSENSB
VU7
D7
14
D6
13
D5
12
D4
11
D3
10
D2
9
D1
8
D0
7
E6
RW5
RS
4
VSS
1V
DD
2V
EE3
LCD1
VDD
21
3
INICIO
VU8
VU3
VU7
VU8
VU9
VSENSA
VSENSB
VDD
R16
18k
12
U11:A
74HC14
VDD
12
OP5
R18
18k
34
U11:B
74HC14
VDD
12
OP4
R2018k
56
U11:C
74HC14
VDD
12
OP3
R22
18k
1312
U11:D
74HC14
VDD
12
OP2
R24
18k
1110
U11:E
74HC14
VDD
12
OP1
RES
ET
C16
C13
RESET
C16
C13
12
BATPOT9V
VP
negro
blanco
20
Ciclo Superior de Desarrollo de Productos Electrónicos
I.E.S. Joan Miró (S.S. de los Reyes) / Dpto. Electrónica
4.- Programación4.1.- Prueba motor derecho
4.1.2.-Diagrama de flujo
Prueba Motor derecho
Directivas de Preprocesado LCD1.CIncluimos el driver LCD1.c que contiene las funciones de control del LCD.
ConfiguraciónDefinimos Puerto b y Puerto C como salida de datos.
Definimos Puerto A como entrada de datos.
Inicializamos el LCDlcd_init();
rc3= 0; rc0= 0;
Posicionamos el Cursor en la posición 1 línea 1 lcd_gotoxy(1,1)
Retardo.delay_ms(1000);
rc3= 0; rc0= 1;
Posicionamos el Cursor en la posición 1 línea 1 lcd_gotoxy(1,1)
Retardo.delay_ms(1000);
// Escribimos en el LCD "adelante". lcd_putc,"adelante"
// Escribimos en el LCD "parado". lcd_putc,"parado"
rc3= 1; rc0= 1;
Posicionamos el Cursor en la posición 1 línea 1 lcd_gotoxy(1,1)
Retardo.delay_ms(1000);
rc3= 1; rc0= 0;
Posicionamos el Cursor en la posición 1 línea 1 lcd_gotoxy(1,1)
Retardo.delay_ms(1000);
// Escribimos en el LCD "atras". lcd_putc,"atras"
// Escribimos en el LCD "parado". lcd_putc,"parado"
21
Ciclo Superior de Desarrollo de Productos Electrónicos
I.E.S. Joan Miró (S.S. de los Reyes) / Dpto. Electrónica
4.1.2.- Programa//*******************************Directivas de procesado**************************************
#include <16F876A.h>#fuses XT,NOWDT#use delay( clock = 4000000 ) // Reloj de 4 MHz
#BYTE TRISC = 0x87 // TRISC en 87h.#BYTE portC = 0x07 // PORTC en 07h.
#BYTE TRISB = 0x86 // TRISB en 86h.#BYTE portB = 0x06 // PORTB en 06h.
#BYTE TRISA = 0x85 // TRISA en 85h.#BYTE portA = 0x05 // PORTA en 05h.
#BIT RC3 = 0x07.3 //Derecho#BIT RC0 = 0x07.0 //Derecho#BIT RA4 = 0x05.4 //Izquierdo#BIT RC5 = 0x07.5 //Izquierdo#BIT RC1 = 0X07.1 //VSENSA#BIT RC2 = 0X07.2 //VSENSB#BIT TB3 = 0X86.3#include <LCD1.c>
//********************** Función principal o programa principal *********************************
void main()
TRISB = 0B00000000; // Defines Puerto B como SALIDA de datos. TRISA = 0B00101111; // Defines Puerto A como ENTRADA de datos. TRISC = 0B00000000; // Defines Puerto B como SALIDA de datos.
lcd_init(); // Inicializamos LCD
rc2= 1;
while(1) rc3= 0; rc0= 0;
22
Ciclo Superior de Desarrollo de Productos Electrónicos
I.E.S. Joan Miró (S.S. de los Reyes) / Dpto. Electrónica
lcd_gotoxy(1,1); //Situamos el cursor en la posicion1 linea1 printf(lcd_putc, "parado");
delay_ms(1000); // Retardo
rc3= 0; rc0= 1; lcd_gotoxy(1,1); //Situamos el cursor en la posicion1 linea1 printf(lcd_putc, "adelante"); delay_ms(1000); // Retardo
rc3= 1; rc0= 1;
lcd_gotoxy(1,1); //Situamos el cursor en la posicion1 linea1 printf(lcd_putc, "parado"); delay_ms(1000); // Retardo
rc3= 1; rc0= 0; lcd_gotoxy(1,1); //Situamos el cursor en la posicion1 linea1 printf(lcd_putc, "atras ");
delay_ms(1000); // Retardo
23
Ciclo Superior de Desarrollo de Productos Electrónicos
I.E.S. Joan Miró (S.S. de los Reyes) / Dpto. Electrónica
4.2.- Prueba motor izquierdo4.2.1.- Diagrama de flujo
Directivas de Preprocesado LCD1.CIncluimos el driver LCD1.c que contiene las funciones de control del LCD.
ConfiguraciónDefinimos Puerto b y Puerto C como salida de datos.
Definimos Puerto A como entrada de datos.
Inicializamos el LCDlcd_init();
ra4= 0; rc5= 0;
Posicionamos el Cursor en la posición 1 línea 1 lcd_gotoxy(1,1)
Retardo.delay_ms(1000);
ra4= 0; rc5= 1;
Posicionamos el Cursor en la posición 1 línea 1 lcd_gotoxy(1,1)
Retardo.delay_ms(1000);
Escribimos en el LCD "adelante". lcd_putc,"adelante"
Escribimos en el LCD "parado". lcd_putc,"parado"
ra4= 1; rc5= 1;
Posicionamos el Cursor en la posición 1 línea 1 lcd_gotoxy(1,1)
Retardo.delay_ms(1000);
ra4= 1; rc5= 0;
Posicionamos el Cursor en la posición 1 línea 1 lcd_gotoxy(1,1)
Retardo.delay_ms(1000);
Escribimos en el LCD "atras". lcd_putc,"parado"
Escribimos en el LCD "parado". lcd_putc,"parado"
Prueba Motor Izquierdo
24
Ciclo Superior de Desarrollo de Productos Electrónicos
I.E.S. Joan Miró (S.S. de los Reyes) / Dpto. Electrónica
4.2.2.- Programa
//***********************************Directivas de procesado**************************************
#include <16F876A.h>#fuses XT,NOWDT#use delay( clock = 4000000 ) // Reloj de 4 MHz
#BYTE TRISC = 0x87 // TRISC en 87h.#BYTE portC = 0x07 // PORTC en 07h.
#BYTE TRISB = 0x86 // TRISB en 86h.#BYTE portB = 0x06 // PORTB en 06h.
#BYTE TRISA = 0x85 // TRISA en 85h.#BYTE portA = 0x05 // PORTA en 05h.
#BIT RB3 = 0x06.3 //Derecho#BIT RC0 = 0x07.0 //Derecho#BIT RA4 = 0x05.4 //Izquierdo#BIT RC5 = 0x07.5 //Izquierdo#BIT RC1 = 0X07.1 //VSENSA#BIT RC2 = 0X07.2 //VSENSB#BIT TB3 = 0X86.3#include <LCD1.c>
//********************** Función principal o programa principal *********************************
void main()
TRISB = 0B00000000; // Defines Puerto B como SALIDA de datos. TRISA = 0B00101111; // Defines Puerto A como ENTRADA de datos. TRISC = 0B00000000; // Defines Puerto B como SALIDA de datos.
lcd_init(); // Inicializamos LCD
rc1= 1; //VSENSA = 1.
while(1)
25
Ciclo Superior de Desarrollo de Productos Electrónicos
I.E.S. Joan Miró (S.S. de los Reyes) / Dpto. Electrónica
ra4= 0; rc5= 0; lcd_gotoxy(1,1); //Situamos el cursor en la posicion1 linea1 printf(lcd_putc, "parado"); delay_ms(1000); //Retardo
ra4= 0; rc5= 1; lcd_gotoxy(1,1); //Situamos el cursor en la posicion1 linea1 printf(lcd_putc, "adelante"); delay_ms(1000); //Retardo
ra4= 1; rc5= 1; lcd_gotoxy(1,1); //Situamos el cursor en la posicion1 linea1 printf(lcd_putc, "parado"); delay_ms(1000); //Retardo
ra4= 1; rc5= 0; lcd_gotoxy(1,1); //Situamos el cursor en la posicion1 linea1 printf(lcd_putc, "atras "); delay_ms(1000); //Retardo
26
Ciclo Superior de Desarrollo de Productos Electrónicos
I.E.S. Joan Miró (S.S. de los Reyes) / Dpto. Electrónica
4.3.- Prueba LCD4.3.1.- Diagrama de flujo
27
Ciclo Superior de Desarrollo de Productos Electrónicos
I.E.S. Joan Miró (S.S. de los Reyes) / Dpto. Electrónica
4.3.2.- Programa
//***********************************Directivas de procesado**************************************
#include <16F876A.h>#fuses XT,NOWDT#use delay( clock = 4000000 ) // Reloj de 4 MHz
#include <LCD1.c> // Incluimos el driver LCD1.c que contiene las funciones de //control del LCD.
//********************** Función principal o programa principal *********************************
void main()
lcd_init(); //Inicializamos el LCD while (1) // Bucle infinito delay_ms(500); //Retardo lcd_gotoxy(1,1); //Situamos el cursor en la posicion1
//linea1 printf(lcd_putc, "Prueba LCD"); lcd_gotoxy(1,2); //Situamos el cursor en la posicion1
//linea2 printf(lcd_putc, "Rastreador Cosme"); delay_ms(500); //Retardo lcd_gotoxy(1,1); //Situamos el cursor en la posicion1
//linea1 delay_ms(500); //Retardo
while (1); // Bucle infinito de espera
28
Ciclo Superior de Desarrollo de Productos Electrónicos
I.E.S. Joan Miró (S.S. de los Reyes) / Dpto. Electrónica
4.4.- Prueba de sensores4.4.1.- Diagrama de flujo
29
Ciclo Superior de Desarrollo de Productos Electrónicos
I.E.S. Joan Miró (S.S. de los Reyes) / Dpto. Electrónica
4.4.2.- Programa
//***********************************Directivas de procesado**************************************
#include <16F876A.h>#fuses XT,NOWDT#use delay( clock = 4000000 ) // Reloj de 4 MHz
#BYTE TRISC = 0x87 // TRISC en 87h.#BYTE portC = 0x07 // PORTC en 07h.
#BYTE TRISB = 0x86 // TRISB en 86h.#BYTE portB = 0x06 // PORTB en 06h.
#BYTE TRISA = 0x85 // TRISA en 85h.#BYTE portA = 0x05 // PORTA en 05h.
#BIT RB3 = 0x06.3 //Derecho#BIT RC0 = 0x07.0 //Derecho#BIT RA0 = 0x05.0#BIT RA1 = 0x05.1#BIT RA2 = 0x05.2#BIT RA3 = 0x05.3 #BIT RA5 = 0x05.5 //Izquierdo#BIT RC5 = 0x07.5 //Izquierdo#BIT RC1 = 0X07.1 //VSENSA#BIT RC2 = 0X07.2 //VSENSB#BIT TB3 = 0X86.3
#include <LCD1.c> // Incluimos el driver LCD1.c que contiene las funciones de //control del LCD.
//*************************** Función principal o programa principal *****************************
void main()
TRISB = 0B00000000; // Defines Puerto B como SALIDA de datos.TRISA = 0B00101111; // Defines Puerto A como ENTRADA de datos.TRISC = 0B00000000; // Defines Puerto C como SALIDA de datos.
lcd_init();
30
Ciclo Superior de Desarrollo de Productos Electrónicos
I.E.S. Joan Miró (S.S. de los Reyes) / Dpto. Electrónica
while(1)
if(ra0==0) // Sensor1 = negro. lcd_gotoxy(1,1); // Situamos el Cursor del LCD en la posición 1 y linea 1 printf(lcd_putc,"0"); else lcd_gotoxy(1,1); // Situamos el Cursor del LCD en la posición 1 línea 1 printf(lcd_putc,"1");
if(ra1==0) // Sensor2 = negro. lcd_gotoxy(2,1); // Situamos el Cursor del LCD en la posición 2 línea 1
printf(lcd_putc,"0"); else lcd_gotoxy(2,1); // Situamos el Cursor del LCD en la posición 2 línea 1
printf(lcd_putc,"1");
if(ra2==0) // Sensor3 = negro. lcd_gotoxy(3,1); // Situamos el Cursor del LCD en la posición 3 línea 1 . printf(lcd_putc,"0"); else lcd_gotoxy(3,1); // Situamos el Cursor del LCD en la posición 3 línea 1 printf(lcd_putc,"1");
if(ra3==0) // Sensor4 = negro. lcd_gotoxy(4,1); // Situamos el Cursor del LCD en la posición 4 línea 1 . printf(lcd_putc,"0");
31
Ciclo Superior de Desarrollo de Productos Electrónicos
I.E.S. Joan Miró (S.S. de los Reyes) / Dpto. Electrónica
else lcd_gotoxy(4,1); // Situamos el Cursor del LCD en la posición 4 línea 1 printf(lcd_putc,"1");
if(ra5==0) // Sensor5 = negro. lcd_gotoxy(5,1); // Situamos el Cursor del LCD en la posición 5 línea 1 . printf(lcd_putc,"0");
else lcd_gotoxy(5,1); // Situamos el Cursor del LCD en la posición 5 línea 1 printf(lcd_putc,"1");
32
Ciclo Superior de Desarrollo de Productos Electrónicos
I.E.S. Joan Miró (S.S. de los Reyes) / Dpto. Electrónica
4.5.- Prueba motores4.5.1.- Diagrama en bloques
33
Ciclo Superior de Desarrollo de Productos Electrónicos
I.E.S. Joan Miró (S.S. de los Reyes) / Dpto. Electrónica
4.5.2.- Programa
//***********************************Directivas de procesado**************************************
#include <16F876A.h>#fuses XT,NOWDT#use delay( clock = 4000000 ) // Reloj de 4 MHz
#BYTE TRISC = 0x87 // TRISC en 87h.#BYTE portC = 0x07 // PORTC en 07h.
#BYTE TRISB = 0x86 // TRISB en 86h.#BYTE portB = 0x06 // PORTB en 06h.
#BYTE TRISA = 0x85 // TRISA en 85h.#BYTE portA = 0x05 // PORTA en 05h.
#BIT RC3 = 0x07.3 //Derecho#BIT RC0 = 0x07.0 //Derecho#BIT RA4 = 0x05.4 //Izquierdo#BIT RC5 = 0x07.5 //Izquierdo#BIT RC1 = 0X07.1 //VSENSA#BIT RC2 = 0X07.2 //VSENSB
#include <LCD1.c> // Incluimos el driver LCD1.c que contiene las funciones de //control del LCD.
//*************************** Función principal o programa principal *****************************
void main()
TRISB = 0B00000000; // Defines Puerto B como SALIDA de datos. TRISA = 0B00101111; // Defines Puerto A como ENTRADA de datos. TRISC = 0B00000000; // Defines Puerto C como SALIDA de datos. lcd_init();
rc1= 1; // SensA rc2= 1; // SensB
while(1) rc3= 0; rc0= 0;
34
Ciclo Superior de Desarrollo de Productos Electrónicos
I.E.S. Joan Miró (S.S. de los Reyes) / Dpto. Electrónica
ra4= 0; rc5= 0; lcd_gotoxy(1,1); // Situamos el Cursor del LCD en la posición 1 y
// linea 1 printf(lcd_putc, "parado");
delay_ms(1000);
rc3= 0; rc0= 1; ra4= 0; rc5= 1; lcd_gotoxy(1,1); // Situamos el Cursor del LCD en la posición 1 y
// linea 1
printf(lcd_putc, "adelante"); delay_ms(1000);
rb3= 1; rc0= 1; ra4= 1; rc5= 1; lcd_gotoxy(1,1); // Situamos el Cursor del LCD en la posición 1 y
// linea 1 printf(lcd_putc, "parado"); delay_ms(1000);
rc3= 1; rc0= 0; ra4= 1; rc5= 0; lcd_gotoxy(1,1); // Situamos el Cursor del LCD en la posición 1 y
// linea 1 printf(lcd_putc, "atras ");
delay_ms(1000);
35
Ciclo Superior de Desarrollo de Productos Electrónicos
I.E.S. Joan Miró (S.S. de los Reyes) / Dpto. Electrónica
4.6.- Programa final4.6.1.- Función ZonaDerechaTemp()
4.6.1.1.- Diagrama de bloques
36
Ciclo Superior de Desarrollo de Productos Electrónicos
I.E.S. Joan Miró (S.S. de los Reyes) / Dpto. Electrónica
4.6.1.2.- Programa
//***************************Función Zona Derecha Temporizada*********************************
void ZonaDerechaTemp (void)
n = 0; while(n <= fin) // Iniciamos el temporizador
if (SEN3 == 0 && SEN4 == 1) // Negro= 0 y Blanco= 1 rc3= 0; rc0= 1; ra4= 0;
rc5= 1; lcd_gotoxy(1,1); // Situamos el Cursor del LCD en la posición 1 y
// linea 1 printf(lcd_putc, "adelante "); if (SEN3 == 0 && SEN4 == 0) // Negro= 0 y Blanco= 1 rc3= 1; rc0= 0; ra4= 0; rc5= 1; lcd_gotoxy(1,1); // Situamos el Cursor del LCD en la posición 1 y
// linea 1 printf(lcd_putc, "derecha "); if (SEN3 == 1 && SEN4 == 1) // Negro= 0 y Blanco= 1 rc3= 0; rc0= 1; ra4= 1; rc5= 0; lcd_gotoxy(1,1); // Situamos el Cursor del LCD en la posición 1 y
// linea 1
37
Ciclo Superior de Desarrollo de Productos Electrónicos
I.E.S. Joan Miró (S.S. de los Reyes) / Dpto. Electrónica
printf(lcd_putc, "izquierda"); if (SEN3 == 1 && SEN4 == 0) // Negro= 0 y Blanco= 1 rc3= 1; rc0= 0; ra4= 0; rc5= 1; lcd_gotoxy(1,1); // Situamos el Cursor del LCD en la posición 1 y
// linea 1 printf(lcd_putc, "derecha "); n++; delay_ms(10);
38
Ciclo Superior de Desarrollo de Productos Electrónicos
I.E.S. Joan Miró (S.S. de los Reyes) / Dpto. Electrónica
4.6.2.- Función ZonaDerecha()4.6.2.1.- Diagrama de flujo
39
Ciclo Superior de Desarrollo de Productos Electrónicos
I.E.S. Joan Miró (S.S. de los Reyes) / Dpto. Electrónica
4.6.2.2.- Programa
//********************************Función Zona Derecha*******************************************
void ZonaDerecha (void)
if (SEN3 == 0 && SEN4 == 1) // Negro= 0 y Blanco= 1 rc3= 0; rc0= 1; ra4= 0; rc5= 1; lcd_gotoxy(1,1); // Situamos el Cursor del LCD en la posición 1 y
// linea 1 printf(lcd_putc, "adelante "); if (SEN3 == 0 && SEN4 == 0) // Negro= 0 y Blanco= 1 rc3= 1; rc0= 0; ra4= 0; rc5= 1; lcd_gotoxy(1,1); // Situamos el Cursor del LCD en la posición 1 y
// linea 1 printf(lcd_putc, "derecha "); if (SEN3 == 1 && SEN4 == 1) // Negro= 0 y Blanco= 1 rc3= 0; rc0= 1; ra4= 1; rc5= 0; lcd_gotoxy(1,1); // Situamos el Cursor del LCD en la posición 1 y
// linea 1 printf(lcd_putc, "izquierda");
40
Ciclo Superior de Desarrollo de Productos Electrónicos
I.E.S. Joan Miró (S.S. de los Reyes) / Dpto. Electrónica
if (SEN3 == 1 && SEN4 == 0) // Negro= 0 y Blanco= 1
rc3= 1; rc0= 0; ra4= 0; rc5= 1; lcd_gotoxy(1,1); // Situamos el Cursor del LCD en la posición 1 y
// linea 1 printf(lcd_putc, "derecha ");
41
Ciclo Superior de Desarrollo de Productos Electrónicos
I.E.S. Joan Miró (S.S. de los Reyes) / Dpto. Electrónica
4.6.3.- Función ZonaIzquierdaTemp() 4.6.3.1.- Diagrama de flujo
42
Ciclo Superior de Desarrollo de Productos Electrónicos
I.E.S. Joan Miró (S.S. de los Reyes) / Dpto. Electrónica
4.6.3.2.- Programa
//*************************Función Zona Izquierda Temporizada**********************************
void ZonaIzquierdaTemp (void) n = 0; while(n <= fin)
if (SEN2 == 1 && SEN3 == 0) // Negro= 0 y Blanco= 1 rc3= 0; rc0= 1; ra4= 0; rc5= 1; lcd_gotoxy(1,1); // Situamos el Cursor del LCD en la posición 1 y
// linea 1 printf(lcd_putc, "adelante "); if (SEN2 == 1 && SEN3 == 1) // Negro= 0 y Blanco= 1 rc3= 1; rc0= 0; ra4= 0; rc5= 1;
lcd_gotoxy(1,1); // Situamos el Cursor del LCD en la posición 1 y // linea 1
printf(lcd_putc, "derecha "); if (SEN2 == 0 && SEN3 == 0) // Negro= 0 y Blanco= 1 rc3= 0; rc0= 1; ra4= 1; rc5= 0;
43
Ciclo Superior de Desarrollo de Productos Electrónicos
I.E.S. Joan Miró (S.S. de los Reyes) / Dpto. Electrónica
lcd_gotoxy(1,1); // Situamos el Cursor del LCD en la posición 1 y // linea 1
printf(lcd_putc, "izquierda"); if (SEN2 == 0 && SEN3 == 1) // Negro= 0 y Blanco= 1 rc3= 1; rc0= 0; ra4= 0; rc5= 1; lcd_gotoxy(1,1); // Situamos el Cursor del LCD en la posición 1 y
// linea 1 printf(lcd_putc, "derecha "); n++; delay_ms(10);
44
Ciclo Superior de Desarrollo de Productos Electrónicos
I.E.S. Joan Miró (S.S. de los Reyes) / Dpto. Electrónica
4.6.4.- Función ZonaIzquierda() 4.6.4.1.- Diagrama de flujo
45
Ciclo Superior de Desarrollo de Productos Electrónicos
I.E.S. Joan Miró (S.S. de los Reyes) / Dpto. Electrónica
4.6.4.2.- Programa
//*******************************Función Zona Izquierda*******************************************
void ZonaIzquierda (void) if (SEN2 == 1 && SEN3 == 0) // Negro= 0 y Blanco= 1 rc3= 0; rc0= 1; ra4= 0; rc5= 1; lcd_gotoxy(1,1); // Situamos el Cursor del LCD en la posición 1 y
// linea 1 printf(lcd_putc, "adelante "); if (SEN2 == 1 && SEN3 == 1) // Negro= 0 y Blanco= 1 rc3= 1; rc0= 0; ra4= 0; rc5= 1; lcd_gotoxy(1,1); // Situamos el Cursor del LCD en la posición 1 y
// linea 1 printf(lcd_putc, "derecha ");
if (SEN2 == 0 && SEN3 == 0) // Negro= 0 y Blanco= 1 rc3= 0; rc0= 1; ra4= 1; rc5= 0; lcd_gotoxy(1,1); // Situamos el Cursor del LCD en la posición 1 y
// linea 1 printf(lcd_putc, "izquierda");
46
Ciclo Superior de Desarrollo de Productos Electrónicos
I.E.S. Joan Miró (S.S. de los Reyes) / Dpto. Electrónica
if (SEN2 == 0 && SEN3 == 1) // Negro= 0 y Blanco= 1 rc3= 1; rc0= 0; ra4= 0; rc5= 1; lcd_gotoxy(1,1); // Situamos el Cursor del LCD en la posición 1 y
// linea 1 printf(lcd_putc, "derecha ");
47
Ciclo Superior de Desarrollo de Productos Electrónicos
I.E.S. Joan Miró (S.S. de los Reyes) / Dpto. Electrónica
4.6.5.- Programa principal4.6.5.1.- Diagrama de flujo
48
Ciclo Superior de Desarrollo de Productos Electrónicos
I.E.S. Joan Miró (S.S. de los Reyes) / Dpto. Electrónica
49
Ciclo Superior de Desarrollo de Productos Electrónicos
I.E.S. Joan Miró (S.S. de los Reyes) / Dpto. Electrónica
4.6.5.1.- Programa
//***********************************Directivas de procesado**************************************
#include <16F876.h>#fuses XT,NOWDT#use delay( clock = 4000000 ) // Reloj de 4 MHz
#BYTE TRISC = 0x87 // TRISC en 87h.#BYTE portC = 0x07 // PORTC en 07h.
#BYTE TRISB = 0x86 // TRISB en 86h.#BYTE portB = 0x06 // PORTB en 06h.
#BYTE TRISA = 0x85 // TRISA en 85h.#BYTE portA = 0x05 // PORTA en 05h.
#BIT RC5 = 0x07.5 //Motor izquierdo#BIT RA0 = 0x05.0 //Motor izquierdo#BIT RA4 = 0x05.4#BIT RA5 = 0x05.5#BIT RB3 = 0x06.3 #BIT RC0 = 0x07.0 //Motor derecho#BIT RC3 = 0x07.3 //Motor derecho#BIT SEN1 = 0x05.0 //Sensor izquierdo#BIT SEN2 = 0x05.1#BIT SEN3 = 0x05.2#BIT SEN4 = 0x05.3 #BIT SEN5 = 0x05.5 //Sensor derecho#BIT VSENSA = 0X07.1 //VSENSA#BIT VSENSB = 0X07.2 //VSENSB
#include <LCD1.c> // Incluimos el driver LCD1.c que contiene las funciones //de control del LCD.
int16 n; // Declaración de la variable “n”int16 fin = 40; // Declaración de la variable “fin” //********************************* Declaración de funciones *************************************
void ZonaDerecha (Void); void ZonaDerechaTemp (Void);void ZonaIzquierda (Void);void ZonaIzquierdaTemp (Void);
50
Ciclo Superior de Desarrollo de Productos Electrónicos
I.E.S. Joan Miró (S.S. de los Reyes) / Dpto. Electrónica
//************************ Función principal o programa principal ********************************
void main()
TRISC= 0B00000000; // Defines Puerto C como SALIDA de datos. TRISA= 0B00101111; // Defines Puerto A como ENTRADA de datos. TRISB = 0B00000000; // Defines Puerto B como SALIDA de datos. VSENSA = 1; // Cerramos las masas de los motores VSENSB = 1; // Cerramos las masas de los motores lcd_init(); // Inicializamos el LCD do if (SEN3==0 && SEN4==1) lcd_gotoxy(1,1); printf(lcd_putc, "Posicionado "); lcd_gotoxy(1,2); printf(lcd_putc, "Pulsar Inicio"); else lcd_gotoxy(1,1); printf(lcd_putc, "No posicionado"); lcd_gotoxy(1,2); printf(lcd_putc, " "); while( SEN1!=0); printf(lcd_putc, "\f"); while(1) ZonaDerecha(); if (SEN5 == 0 && SEN3 == 0)
51
Ciclo Superior de Desarrollo de Productos Electrónicos
I.E.S. Joan Miró (S.S. de los Reyes) / Dpto. Electrónica
ZonaDerechaTemp(); if (SEN1 == 0 && SEN3 == 0) ZonaIzquierdaTemp(); do ZonaIzquierda(); if (SEN1 == 0 && SEN3 == 0) ZonaIzquierdaTemp(); while(SEN5 != 0 && SEN3 != 0);
52
Ciclo Superior de Desarrollo de Productos Electrónicos
I.E.S. Joan Miró (S.S. de los Reyes) / Dpto. Electrónica
5.- Esquema eléctrico completo
53
Ciclo Superior de Desarrollo de Productos Electrónicos
I.E.S. Joan Miró (S.S. de los Reyes) / Dpto. Electrónica
6.- Diseño de Placas de Circuitos Impresos.
6.1.- Alimentación del Circuito + Cargador del Programa.
6.1.1.- Esquema eléctrico.
RXPCTXPC
GN
D
VCC
VCC
Regulador 9V/5V
12
BATERIA9V
1 2
ON-OFF
INTERRUPTOR_JOAN
AK
D2
1N4007_JOAN
AK
D41N4007_JOAN
C3220uF
C4100nF
R1220
C2100nF
C12200uF
A K
D1
1N4007_JOAN
GN
D3
GN
D3
GN
D3
GN
D3
GN
D3
GND3VP3
VDD3
GND3
VP3
GN
D3
Adaptador de señales PC-uC
T1IN 11
R1OUT 12
T2IN 10
R2OUT 9
T1OUT14
R1IN13
T2OUT7
R2IN8
C2+
4
C2-
5
C1+
1
C1-
3
VS+2
VS-6
U2
MAX232_JOANGND=GNDVCC=VCC
C6
1uF
C8
1uF
C5
1uF
C71uF
162738495
J11
CONN-D9M
C9100nF
RC
61
VD
D3
GND3
GND3
GN
D3
RC71(BL)
RC
71(B
L)
GN
D3
RC61
VD
D3
VDD3
AK
D3LED-GREEN_JOAN
12345678910
J1A
12
JP1
1
MASA3BORNIER 1_JOAN
GN
D3
12
3
RV15k
C1510uF
R38240
GND3
VIN2 VOUT 3
ADJ
1
U1LM350K_JOAN
54
Ciclo Superior de Desarrollo de Productos Electrónicos
I.E.S. Joan Miró (S.S. de los Reyes) / Dpto. Electrónica
6.1.2.- Cara de componentes y Top Copper.
6.1.3.- Cara Bottom Copper.
6.2.- Placa de control.
55
Ciclo Superior de Desarrollo de Productos Electrónicos
I.E.S. Joan Miró (S.S. de los Reyes) / Dpto. Electrónica
6.2.1.- Esquema eléctrico.
VSS
VD
D
RB7RB6RB5RB4
RB0
RB2RB1
RA5
RA0RA1RA2RA3
RA5
RA0
RA3RA2RA1
RA0/AN0 2
RA1/AN1 3
RA2/AN2/VREF- 4
RA4/T0CKI 6
RA5/AN4/SS 7
OSC1/CLKIN 9
OSC2/CLKOUT 10
RC1/T1OSI/CCP212
RC2/CCP113
RC3/SCK/SCL14
RB7/PGD28 RB6/PGC27 RB526 RB425 RB3/PGM24 RB223 RB122 RB0/INT21
RC7/RX/DT18 RC6/TX/CK17 RC5/SDO16 RC4/SDI/SDA15
RA3/AN3/VREF+ 5
RC0/T1OSO/T1CKI11
MCLR/Vpp/THV 1
U10
PIC16F876_JOAN
1234
J8
CONN-SIL4
RC4/SDARC3/SCL
RC3/SCL
RC4/SDA
1234
J6
CONN-SIL4
RC4/SDARC3/SCL
1234
J7
CONN-SIL4
RC4/SDARC3/SCL
1234
J9
CONN-SIL4
RC4/SDARC3/SCL
VDD VDD VDD VDD
Receptor de Datos CEBEK C-0504
Vcc
11
GN
D1
2
Ant
ena
3
GN
D2
7
GN
D3
11
TEST
13
Vs14
Vcc
15
RF1CEBEK-C-0504_JOAN
123
J10CONN_SIL3_JOAN
RC6
RC
7(BF
)
RC
7(BL
)
1
ANTENABORNIER 1_JOAN
VD
D
VD
D
RC
6
VD
D
RC
7(BL
)
V1
V1
C16
15pF
C13
15pF
X1CRYSTAL_JOAN
12
RESET
PULSADOR_JOAN
R27100
R2610k
C14
100nF
VDD
RA4
RA4
VDD
12345678910
J3
CONN-SIL10_JOAN
123456789
10
J5
RB3
RC1RC2
RC5
RC5RC0RB3RC2RC1
D7
14
D6
13
D5
12
D4
11
D3
10
D2
9
D1
8
D0
7
E6
RW5
RS
4
VSS
1VD
D2
VEE
3
LCD1LCD-16 X 2_JOAN
VDD
21
3
INICIO
12345678910J1CONN-SIL10_JOAN
12
JPBORNIER 2_JOAN
GNDP
12
JP2GNDP
VDD
RCO
1
J14BORNIER 1_JOAN
Sistema de control
R14
4k7
R154k7
VD
D
RC
7(BF
)
56
Ciclo Superior de Desarrollo de Productos Electrónicos
I.E.S. Joan Miró (S.S. de los Reyes) / Dpto. Electrónica
6.2.2.- Cara de componentes.
6.2.3.- Top Copper.
57
Ciclo Superior de Desarrollo de Productos Electrónicos
I.E.S. Joan Miró (S.S. de los Reyes) / Dpto. Electrónica
6.2.4.- Bottom Copper.
58
Ciclo Superior de Desarrollo de Productos Electrónicos
I.E.S. Joan Miró (S.S. de los Reyes) / Dpto. Electrónica
6.3.- Placa de potencia
6.3.1.- Esquema eléctrico.
6
5
4
1
2
U3
OPTOCOUPLER-NPN
+88.8
12
MIZ
MOTOR-DC_JOAN
AK
D51N4007_JOAN A
K
D61N4007_JOAN
AK
D71N4007_JOANA
K
D81N4007_JOAN
C10
100nF
GN
DP1
GN
DP1
V1P
+88.8
12
MDE
MOTOR-DC_JOAN
AK
D121N4007_JOAN A
K
D91N4007_JOAN
AK
D101N4007_JOANA
K
D111N4007_JOAN
C11
100nF
GN
DP1
GN
DP1
V1P
IN15
IN27
ENA6
OUT1 2
OUT2 3
ENB11 OUT3 13
OUT4 14
IN310
IN412
SENSA1
SENSB15 GND
8
VS
4
VCC
9 U9
L298
VDD1 V1P
GND1
V1PGNDP1
6
5
4
1
2
U7
OPTOCOUPLER-NPN
6
5
4
1
2
U8
OPTOCOUPLER-NPN
R13220
R11220
VD
D1
VD
D1
R1010k
R1210k
GND1
GND1
Q2BD139_JOAN Q3
BD139_JOAN
Q1BD139_JOAN
Q4BD139_JOAN
GN
DP1
GNDP1
VDD1R2
10kR3220
VDD1
6
5
4
1
2
U4
OPTOCOUPLER-NPN
VDD1R410kR5
220VDD1
6
5
4
1
2
U5
OPTOCOUPLER-NPN
VDD1R610kR7
220VDD1
6
5
4
1
2
U6
OPTOCOUPLER-NPN
VDD1R810k
R9220
VDD1
V1P
VDD1
V1P
VD
D1
GND1
GND1
GND1
GND1
Control de potencia
123
JUMPER1
123
JUMPER2
123456789
10
J3A
12
JP21
VDD1GND1
VU3VU7VU8VU9
VSENSBVSENSA
VU3
VU7
VU8
VU9
VSENSA
VSENSB
1
MASA4BORNIER 1_JOAN
GN
D1
59
Ciclo Superior de Desarrollo de Productos Electrónicos
I.E.S. Joan Miró (S.S. de los Reyes) / Dpto. Electrónica
6.3.2.- Cara de componentes.
6.3.3.- Top Copper.
60
Ciclo Superior de Desarrollo de Productos Electrónicos
I.E.S. Joan Miró (S.S. de los Reyes) / Dpto. Electrónica
6.3.4.- Bottom Copper.
61
Ciclo Superior de Desarrollo de Productos Electrónicos
I.E.S. Joan Miró (S.S. de los Reyes) / Dpto. Electrónica
6.4.- Placa de sensores.
6.4.1.- Esquema eléctrico.
VCCGND
CN
Y70
A3
C1
K 4
E 2
OP1
CNY70_JOAN
R25220
R24
18k
GND2VDD2
1110
U11:E
74HC14
CN
Y70
A3
C1
K 4
E 2
OP2
CNY70_JOAN
R23220
R2218k
1312
U11:D
74HC14
CN
Y70
A3
C1
K 4
E 2
OP3
CNY70_JOAN
R21220
R2018k
56
U11:C
74HC14
CN
Y70
A3
C1
K 4
E 2
OP4
CNY70_JOAN
R19220
R1818k
34
U11:B
74HC14
CN
Y70
A3
C1
K
4
E
2
OP5
CNY70_JOAN
R17220
R1618k
12
U11:A
74HC14
GND2
GND2
GND2
GND2
GND2
VDD2
VDD2
VDD2
VDD2
VDD2
Sensores de Infrarrojosy acondicionador de señal
12345678910
J5A
CONN-SIL10_JOAN
1
J15BORNIER 1_JOAN
GN
D2
62
Ciclo Superior de Desarrollo de Productos Electrónicos
I.E.S. Joan Miró (S.S. de los Reyes) / Dpto. Electrónica
6.4.2.- Cara de componentes.
6.4.3.- Top Copper.
6.4.4.- Bottom Copper.
63
Ciclo Superior de Desarrollo de Productos Electrónicos
I.E.S. Joan Miró (S.S. de los Reyes) / Dpto. Electrónica
7.- Diseño mecánico.
7.1.- Carrocería Placa-Robot.
64
Ciclo Superior de Desarrollo de Productos Electrónicos
I.E.S. Joan Miró (S.S. de los Reyes) / Dpto. Electrónica
8.- Listado de materiales.
8.1.- Fuente de alimentación y adaptador de señal Pc-uC
Placa: listado fuente.DSNAutor : Revision : Creado : lunes, 03 de noviembre de 2008Ultima modificación :domingo, 15 de marzo de 2009Nº de componentes :25
2 ResistenciasCantidad Referencia Valor Coste Unitario Coste1 R1 220 0.05 0.051 R38 240 0.05 0.05
10 CondensadoresCantidad Referencia Valor Coste Unitario Coste1 C1 2200uF 0.05 0.053 C2, C4, C9 100nF 0.05 0.151 C3 220uF 0.05 0.054 C5-C8 1uF 0.05 0.201 C15 10uF 0.05 0.05
2 Circuitos integradosCantidad Referencia Valor Coste Unitario Coste1 U1 LM350K 2 21 U2 MAX232 3 3
4 DiodosCantidad Referencia Valor Coste Unitario Coste3 D1, D2, D4 1N4007 0.2 0.61 D3 LED-GREEN 0.2 0.2
7 Componentes diversosCantidad Referencia Valor Coste Unitario Coste1 BATERIA 9V 5 51 J1A CONN-SIL1 0.3 0.3
65
Ciclo Superior de Desarrollo de Productos Electrónicos
I.E.S. Joan Miró (S.S. de los Reyes) / Dpto. Electrónica
1 J11 CONECTOR PC 2 21 JP1 BORNIER 2 0.4 0.41 MASA BORNIER 1 0.3 0.31 ON-OFF INTERRUPTOR 1 11 RV1 5k 0.5 0.5
COSTE TOTAL 15.90 €domingo, 15 de marzo de 2009 14:00:08
66
Ciclo Superior de Desarrollo de Productos Electrónicos
I.E.S. Joan Miró (S.S. de los Reyes) / Dpto. Electrónica
8.2.- Placa de control
Placa: listado control.DSNAutor :Alvar Martín del HoyoRevision : Creado : lunes, 03 de noviembre de 2008Ultima modificación :domingo, 15 de marzo de 2009Nº de componentes :25
4 Resistencias
Cantidad Referencia Valor Coste Unitario Coste
2 R14, R15 4k7 0.05 0.101 R26 10k 0.05 0.051 R27 100 0.05 0.05
3 Condensadores
Cantidad Referencia Valor Coste Unitario Coste
2 C13, C16 15pF 0.05 0.101 C14 100nF 0.05 0.05
1 Circuitos integrados
Cantidad Referencia Valor Coste Unitario Coste
1 U10 PIC16F876A 8 8
17 Componentes diversos
Cantidad Referencia Valor Coste Unitario Coste
2 ANTENA, J14 BORNIER 0.3 0.61 INICIO CONMUTADOR 1 13 J1, J3, J5 CONN-SIL10 1 34 J6-J9 CONN-SIL4 0.5 21 J10 CONN_SIL3 0.4 0.42 JP, JP2 BORNIER 2 0.4 0.81 LCD1 LCD-16 X 2 10 101 RESET PULSADOR 1 11 RF1 CEBEK-C-0504 7 71 X1 CRYSTAL 1 1
COSTE TOTAL 35.15 €domingo, 15 de marzo de 2009 13:03:17
67
Ciclo Superior de Desarrollo de Productos Electrónicos
I.E.S. Joan Miró (S.S. de los Reyes) / Dpto. Electrónica
8.3.- Placa de potencia
Placa: listado potencia.DSNAutor : Alvar Martín del HoyoRevision : Creado : lunes, 03 de noviembre de 2008Ultima modificación :domingo, 15 de marzo de 2009Nº de componentes :38
12 ResistenciasCantidad Referencia Valor Coste Unitario Coste6 R2, R4, R6, R8, R10,
R1210k 0.05 0.30
6 R3, R5, R7, R9, R11, R13
220 0.05 0.30
2 CondensadoresCantidad Referencia Valor Coste Unitario Coste2 C10, C11 100nF 0.05 0.10
7 Circuitos integradosCantidad Referencia Valor Coste Unitario Coste6 U3-U8 OPTOACOPLADOR 0.5 31 U9 L298 6 6
4 TransistoresCantidad Referencia Valor Coste Unitario Coste4 Q1-Q4 BD139 1 4
8 DiodosCantidad Referencia Valor Coste Unitario Coste8 D5-D12 1N4007 0.20 1.40
5 Componentes diversosCantidad Referencia Valor Coste Unitario Coste1 J3A CONN-SIL10 1 11 JP21 BORNIER 2 0.40 0.40
68
Ciclo Superior de Desarrollo de Productos Electrónicos
I.E.S. Joan Miró (S.S. de los Reyes) / Dpto. Electrónica
1 MASA BORNIER 0.30 0.302 MDE, MIZ SERVOMOTOR 10 20
COSTE TOTAL 36.80 €domingo, 15 de marzo de 2009 13:31:24
69
Ciclo Superior de Desarrollo de Productos Electrónicos
I.E.S. Joan Miró (S.S. de los Reyes) / Dpto. Electrónica
8.4.-Placa de sensores
Placa: listado sensores.DSNAutor :Alvar Martín del HoyoRevisión : Creado : lunes, 03 de noviembre de 2008Ultima modificación :domingo, 15 de marzo de 2009Nº de componentes :18
10 ResistenciasCantidad Referencia Valor Coste Unitario Coste5 R16, R18, R20, R22, R24 18k 0.05 0.255 R17, R19, R21, R23, R25 220 0.05 0.25
1 Circuitos integradosCantidad Referencia Valor Coste Unitario Coste1 U11 74HC14 0.5 0.5
7 Componentes diversosCantidad Referencia Valor Coste Unitario Coste1 J5A CONN-SIL10 1 11 J15 BORNIER 1 0.3 0.35 OP1-OP5 CNY70 1 5
COSTE TOTAL 7.30 €domingo, 15 de marzo de 2009 13:50:18
70
Ciclo Superior de Desarrollo de Productos Electrónicos
I.E.S. Joan Miró (S.S. de los Reyes) / Dpto. Electrónica
8.5.- Placas de circuito impreso
Placa :Autor :Alvar Martín del HoyoRevisión : Creado : lunes, 03 de noviembre de 2008Ultima modificación :domingo, 15 de marzo de 2009Nº de componentes :18
Placas de circuito impreso
Cantidad Referencia Valor Coste Unitario Coste
1 Placa de Circuito Impreso
35 x 96 mm 3.50 3.50
3 Placa de Circuito Impreso
70 x 75 mm 4 12
COSTE TOTAL 15.50
8.6.- Carrocería
Placa :Carrocería.DSNAutor :Alvar Martín del HoyoRevisión : Creado : lunes, 03 de noviembre de 2008Ultima modificación :domingo, 15 de marzo de 2009Nº de componentes :18
47 Componentes diversosCantidad Referencia Valor Coste Unitario Coste1 Rueda loca 2 211 Arandelas M3 0.05 0.5510 Separadores 2.5 cm M3 0.30 3
4 Bridas 0.05 0.20
1 Placa de pvc 97,5 X 162,5 2 2
20 Tuercas y tornillos M3 0.05 1
COSTE TOTAL 8.75 €
71
Ciclo Superior de Desarrollo de Productos Electrónicos
I.E.S. Joan Miró (S.S. de los Reyes) / Dpto. Electrónica
9.-Coste Económico.
9.1.- Desarrollo del Proyecto.
Coste 15 € / Hora.
• 5 Horas de desarrollo Hardware. ....................................................75 € • 15 Horas de desarrollo Software. .................................................225 €• 8 Horas de montaje del Prototipo. ................................................120 €• 8 Horas de realización de la Memoria. .........................................120 € • 4 Horas de búsqueda de materiales. .......................................... 60 €• 10 Horas de Pruebas. ................................................................ 150 €
______ 750 €
9.2.- Material.
• Fuente de alimentación y adaptador de señal Pc-uC. ....................... 15,90 €• Placa de potencia. .............................................................................. 36.80 €• Placa de control………………………………..………………………….. 35.15 €• Placa de sensores……………………..………………………………….. 7.30 €• Placas de circuito
impreso..................................................................................................15.50 €• Carrocería. ........................................................................................... 8.75 € _______ 119,40€
9.3.- Total
Total. ......................................................................................................... 869.4 €
72