PROYECTO: Velocista y coche teledirigido · PROYECTO: Velocista y coche teledirigido Departamento...

87
PROYECTO: Velocista y coche teledirigido Departamento de Electricidad y Electrónica Ciclo Formativo de Grado Superior: Desarrollo de Productos Electrónicos Alumno : Daniel García Bravo Profesores : Pedro Alonso Sanz Juan Dongil García Alfonso García Gallego Instituto : I.E.S. Joan Miró Localidad : San Sebastián de los Reyes Curso : 2008 / 2009

Transcript of PROYECTO: Velocista y coche teledirigido · PROYECTO: Velocista y coche teledirigido Departamento...

Page 1: PROYECTO: Velocista y coche teledirigido · PROYECTO: Velocista y coche teledirigido Departamento de Electricidad y Electrónica Ciclo Formativo de Grado Superior: Desarrollo de Productos

PROYECTO:

Velocista y coche teledirigido

Departamento de Electricidad y Electrónica

Ciclo Formativo de Grado Superior:

Desarrollo de Productos Electrónicos

Alumno: Daniel García Bravo

Profesores: Pedro Alonso Sanz

Juan Dongil García

Alfonso García Gallego

Instituto: I.E.S. Joan Miró

Localidad: San Sebastián de los Reyes

Curso: 2008 / 2009

Page 2: PROYECTO: Velocista y coche teledirigido · PROYECTO: Velocista y coche teledirigido Departamento de Electricidad y Electrónica Ciclo Formativo de Grado Superior: Desarrollo de Productos

Ciclo Superior de Desarrollo de Productos Electrónicos

Daniel García Bravo

I.E.S. Joan Miró

2

Índice de contenido:

1.- Introducción 5

2.- Diagrama en bloques del robot 7

3.- Esquema eléctrico del robot 8

4.- Análisis de los Bloques 9

4.1.- Placa de alimentación-adaptador de señales PC-UC 7 9

4.1.1.- Fuente de alimentación 9

4.1.1.1.- Esquema eléctrico de la fuente de alimentación 10

4.1.2.- Adaptador de señales PC-UC 10

4.1.2.1.- Esquema eléctrico del adaptador de señales PC-UC 11

4.2.- Placa de control 12

4.2.1.- Esquema eléctrico de la placa de control 13

4.3.- Placa de potencia 14

4.3.1.- Esquema eléctrico de la placa de potencia 17

4.4.- Placa de sensores 18

4.4.1.- Esquema eléctrico de la placa de sensores 19

4.5.- Mando 20

4.5.1.- Esquema eléctrico del mando 21

5.- Esquema eléctrico de simulación con Proteus 22

5.1.- Simulación del robot velocista 22

5.2.- Simulación del robot teledirigido 23

6.- Programas 24

6.1.- Programas de prueba 24

6.1.2.- Programas de prueba de los leds 24

6.1.2.1.- Diagrama de flujo 24

6.1.2.2.- Programa 25

6.1.3.- Programas de prueba de los sensores 26

6.1.3.1.- Programas de prueba de los sensores OP1 Y OP2 26

6.1.3.1.1.- Diagrama de flujo 26

6.1.3.1.2.- Programa 27

6.1.3.2.- Programas de prueba de los sensores Op3 y Op4 29

6.1.3.2.1.- Diagrama de flujo 29

6.1.3.2.2.- Programa 29

6.1.3.3.- Programas de prueba de los sensores Op5 y Op6 31

6.1.3.3.1.- Diagrama de flujo 31

6.1.3.3.2.- Programa 31

Page 3: PROYECTO: Velocista y coche teledirigido · PROYECTO: Velocista y coche teledirigido Departamento de Electricidad y Electrónica Ciclo Formativo de Grado Superior: Desarrollo de Productos

Ciclo Superior de Desarrollo de Productos Electrónicos

Daniel García Bravo

I.E.S. Joan Miró

3

6.1.3.4.- Programas de prueba de los sensores OP7 Y OP8 33

6.1.3.4.1.- Diagrama de flujo 33

6.1.3.4.2.- Programa 33

6.1.4.- Programas de pruebas de control de giro de los motores 35

6.1.4.1.- Programa de prueba del motor derecho 35

6.1.4.1.1.- Diagrama de flujo 36

6.1.4.1.2.- Programa 36

6.1.4.2.- Programa de prueba del motor izquierdo 37

6.1.4.2.1.- Diagrama de flujo 38

6.1.4.2.2.- Programa 38

6.1.5.- Programas de pruebas de control de velocidad de los motores 39

6.1.5.1.- Programa de control de velocidad del motor derecho 39

6.1.5.1.1.- Diagrama de flujo 40

6.1.5.1.2.- Programa 40

6.1.5.2.- Programa de control de velocidad del motor izquierdo 43

6.1.5.2.1.- Diagrama de flujo 43

6.1.5.2.2.- Programa 43

6.2.- Programas de funcionamiento del robot 46

6.2.1.- Programa del robot velocista 46

6.2.1.1.- Diagramas de flujo 46

6.2.1.2.- Programa 50

6.2.2.- Programa del coche teledirigido 61

6.2.2.1.- Diagrama de flujo 61

6.2.2.2.- Programa 61

7.- Fabricación de placas 62

7.1.- Fabricación de la fuente de alimentación-adaptador de señales PC-UC 63

7.1.1.- Esquema eléctrico 63

7.1.2.- Cara de componentes 64

7.1.3.- Cara de pistas bottom copper 65

7.2.- Fabricación de la placa de control 66

7.2.1.- Esquema eléctrico 66

7.2.2.- Componentes 67

7.2.3.- Cara de componentes y de pistas top copper 68

7.2.4.- Cara de pistas bottom copper 69

7.3.- Fabricación de la placa de potencia 70

7.3.1.- Esquema eléctrico 70

7.3.2.- Componentes 71

7.3.3.- Cara de componentes y de pistas top copper 72

7.3.4.- Cara de pistas bottom copper 73

7.4.- Fabricación de la placa de sensores 74

7.4.1.- Esquema eléctrico 74

7.4.2.- Medidas 75

Page 4: PROYECTO: Velocista y coche teledirigido · PROYECTO: Velocista y coche teledirigido Departamento de Electricidad y Electrónica Ciclo Formativo de Grado Superior: Desarrollo de Productos

Ciclo Superior de Desarrollo de Productos Electrónicos

Daniel García Bravo

I.E.S. Joan Miró

4

7.4.3.- Componentes 75

7.4.4.- Cara de componentes y de pistas top copper 75

7.4.5.- Cara de pistas bottom copper 76

7. 5.- Fabricación del mando a distancia 77

7.5.1.- Esquema eléctrico 77

7.5.2.- Medidas 77

7.5.3.- Componentes 78

7.5.4.- Cara de componentes y de pistas top copper 78

7.5.5.- Cara de pistas bottom copper 79

8.- Carrocería 80

9.- Lista de Componentes y coste económico 81

10.- Coste económico total 85

11.- Referencias 86

12.- Anexos técnicos 87

Page 5: PROYECTO: Velocista y coche teledirigido · PROYECTO: Velocista y coche teledirigido Departamento de Electricidad y Electrónica Ciclo Formativo de Grado Superior: Desarrollo de Productos

Ciclo Superior de Desarrollo de Productos Electrónicos

Daniel García Bravo

I.E.S. Joan Miró

5

1.- Introducción

El proyecto consiste en diseñar y fabricar un robot velocista, de tal forma que sea

capaz de seguir una línea negra lo más rápidamente sin salirse de ella, y además que

tenga la posibilidad de ser controlado con un mando a distancia, por medio de vía

radiofrecuencia.

El robot consta de una placa con la fuente de alimentación y el adaptador de señales

PC-UP, de la placa de control, la placa que controla los motores y la placa de sensores.

Todas las placas, a excepción de esta última, tienen las mismas medidas: 75 x 70.

Se busca que tanto la fuente de alimentación y el adaptador de señales PC-UP y la

placa de potencia, sean comunes para todos los proyectos, haciendo que, en caso de que

una placa se averíe, sea posible sustiturila por otra de otro robot, sin tener que hacer una

nueva. Las placas de control, donde se sitúa el PIC, y la placa de sensores, son

diferentes en cada proyecto.

El robot se controla por un PIC16F876A, en el cual se ubica el programa que hace que

el robot funcione como un velocista. Por medio del cambio de un jumper, el robot pasa

a funcionar como coche teledirigido.

El robot consta de dos motores que son controlados por la placa de potencia, que a su

vez son dependientes de la placa de control, dónde está situado el PIC. Mediante una

señal de PWM hacemos que a nuestro robot le sea posible ir más rápido o más lento,

según las circunstancias que deseemos. Esto lo hacemos según la velocidad que

imprimamos a los dos motores. Si la velocidad es igual en ambos motores, el robot irá

recto, si un motor gira más rápido que otro, hará que nuestro robot gire. También

conseguiremos determinar la dirección del coche, hacia delante o hacia atrás.

Para poder hacer que nuestro robot sea velocista le instalaremos 8 sensores CNY70,

para localizar la línea o evitarla, según deseemos con nuestro programa. También

corregiremos la posición, por medio de la variación de velocidad en los motores.

Page 6: PROYECTO: Velocista y coche teledirigido · PROYECTO: Velocista y coche teledirigido Departamento de Electricidad y Electrónica Ciclo Formativo de Grado Superior: Desarrollo de Productos

Ciclo Superior de Desarrollo de Productos Electrónicos

Daniel García Bravo

I.E.S. Joan Miró

6

Para hacer que nuestro robot sea teledirigido, tenemos que crear una comunicación

entre el PIC y el mando, con el que controlamos nuestro robot. Dado que lo hacemos

vía radiofrecuencia, le “instalamos” un receptor y un mando a distancia que será el

emisor. Esto lo conseguimos por medio de dos módulos: un emisor CEBEK C-0503 y

un receptor CEBEC C-0504. Ambos trabajan en modulación AM con una frecuencia

portadora de 433,92 MHz que poseen un ancho de banda de 4 KHz.

El lenguaje de programación para los programas del robot se realiza mediante el

lenguaje C.

El software, utilizado para el desarrollo y fabricación de nuestro robot, ha sido el

programa Proteus, que nos permite simular el software y el hardware al mismo tiempo.

A su vez nos es posible trabajar con C y desarrollar las placas de nuestro robot, con la

posibilidad de realizar también la carrocería.

Para cargar los programas desde el ordenador al PIC, se ha utilizado el grabador

PICdownloader

En todas las placas que se realizan, y a modo de facilitar la toma de medidas, se pone

un conector de masa, este nos ayuda en la toma de medidas, colocando la punta de masa

de nuestro, por ejemplo, polímetro; y la otra punta, para tomar medidas, y así poder

trabajar solo con una mano.

Page 7: PROYECTO: Velocista y coche teledirigido · PROYECTO: Velocista y coche teledirigido Departamento de Electricidad y Electrónica Ciclo Formativo de Grado Superior: Desarrollo de Productos

Ciclo Superior de Desarrollo de Productos Electrónicos

Daniel García Bravo

I.E.S. Joan Miró

7

2.- Diagrama en bloques del robot

Page 8: PROYECTO: Velocista y coche teledirigido · PROYECTO: Velocista y coche teledirigido Departamento de Electricidad y Electrónica Ciclo Formativo de Grado Superior: Desarrollo de Productos

Ciclo Superior de Desarrollo de Productos Electrónicos

Daniel García Bravo

I.E.S. Joan Miró

8

3.- Esquema eléctrico del robot

Page 9: PROYECTO: Velocista y coche teledirigido · PROYECTO: Velocista y coche teledirigido Departamento de Electricidad y Electrónica Ciclo Formativo de Grado Superior: Desarrollo de Productos

Ciclo Superior de Desarrollo de Productos Electrónicos

Daniel García Bravo

I.E.S. Joan Miró

9

4.- Análisis de los bloques

4.1.- Placa de alimentación-adaptador de señales PC-UC

En esta placa se sitúa la parte que distribuye la tensión necesaria para el

funcionamiento de todos los integrados, sensores y para los motores.

También esta en esta placa la parte que sirve para cargar programas a nuestro PIC, por

medio del integrado MAX 232.

4.1.1.- Fuente de alimentación

La fuente de alimentación es un circuito que se encarga de obtener una tensión de 5V

continua a partir de una tensión de entrada de aproximadamente 9V. Para realizar esto

nos serviremos del regulador de tensión LM350K. Este integrado es capaz de regular la

tensión de salida de 3 a 35 voltios. También obtenemos una tensión de 9 voltios

aproximadamente, para alimentar a los motores, pero estos no los obtenemos a partir del

LM350K.

Como se puede observar en el esquema eléctrico de la fuente, C1 y C3, son

condensadores de filtrado de la señal, que se encargan de eliminar la parte alterna de la

tensión, para hacerla lo más continua posible. Los condensadores C2 y C4, por su parte,

se encargan de filtrar las posibles señales que el circuito absorba, ya que las pistas de la

placa actúan como una antena y estos condensadores filtran esas señales, llevándolas a

masa.

El diodo D1 tiene la misión de proteger el circuito en caso de invertir la polaridad de

la batería. El diodo D2 sirve para proteger el LM350K, para hacer que las tensiones que

entran por la salida pasen por el diodo hasta la entrada del LM350K, evitando así que se

introduzcan por la salida del integrado. El diodo D4 se utiliza para proteger el LM350K,

en caso de que hayamos conectado la batería a la salida de 5 voltios, el polo positivo a

la masa y el polo negativo a la salida de 5 voltios. Y el D3, es un diodo led y nos indica

que nuestra tiene tensión a la salida, va acompañado con su resistencia correspondiente,

R1; para limitar la corriente que pase por el diodo y evitar que se averíe.

La resistencia R38, el potenciómetro RV1 y el condensador C15, son los que nos

permiten hacer una fuente regulable de tensión. La R38 nos fija una corriente para el

potenciómetro. Con el potenciómetro variamos la tensión de salida y con el

condensador hacemos que, al variar la tensión de referencia, no vaya dando saltos, sino

que varíe lentamente. Entre la salida del LM350K y la masa tiene que existir la tensión

de salida que hayamos regulado. Entre la patilla 3 y 1 del regulador de tensión hay una

diferencia de potencial de 5 voltios y una caída de tensión en RV1 es la diferencia entre

la salida regulada y la tensión entre la patilla 3 y 1

Pondremos dos conectores: J1A que es el conector encargado de llevar los 5 voltios, y

su masa, necesarios para el funcionamiento de los integrados, el PIC y los sensores,

también lleva las conexiones necesarias para comunicar el PC y el PIC y así poder

cargar los programas, RC71 y RC61. El conector JP1 es el encargado de llevar los 9

voltios a los motores y al L298 directamente y con una masa, directa de la batería.

Page 10: PROYECTO: Velocista y coche teledirigido · PROYECTO: Velocista y coche teledirigido Departamento de Electricidad y Electrónica Ciclo Formativo de Grado Superior: Desarrollo de Productos

Ciclo Superior de Desarrollo de Productos Electrónicos

Daniel García Bravo

I.E.S. Joan Miró

10

A la hora de fabricar la placa, hay que tener en cuenta que es necesario colocar un

disipador al LM350K. La solución adoptada es que el disipador sea el propio cobre de

la placa que utilizamos, lo cual significa ahorrar en espacio y en materiales sin

desperdiciar el cobre de la placa.

Antes de conectar cualquier otra placa, debemos comprobar que a la salida haya 5

voltios aproximadamente, si no tenemos dicha tensión, podemos regularla por medio del

potenciómetro.

4.1.1.1.- Esquema eléctrico de la fuente de alimentación

VP => salida de 9 voltios.

VDD3 => salida de 5 voltios.

4.1.2.- Adaptador de señales PC-UC

Este circuito nos servirá para cargar programas en el PIC a través del integrado

MAX232.

Este integrado intercambia niveles de TTL a RS-232 y de RS-232 a TTL. Un 0 lógico

es un 0 en RS-232 y un 1 lógico es un 1 en RS-232.

Un 0 lógico en TTL es igual a 0v, en RS-232 es una tensión comprendida entre +3v y

+12v. Un 1 lógico en TTL es igual a +5v y en RS-232 es una tensión comprendida entre

-3v y -12v

TTL RS-232

1 = +5v 1 = -3v hasta -15v

0 = 0v 0 = +3v hasta +15

Page 11: PROYECTO: Velocista y coche teledirigido · PROYECTO: Velocista y coche teledirigido Departamento de Electricidad y Electrónica Ciclo Formativo de Grado Superior: Desarrollo de Productos

Ciclo Superior de Desarrollo de Productos Electrónicos

Daniel García Bravo

I.E.S. Joan Miró

11

4.1.2.1.- Esquema eléctrico del adaptador de señales PC-UC

VP: 9 voltios

VDD3: 5 voltios

VCC: alimentación del integrado MAX232

RC61: comunicación PIC – PI

RC71: comunicación PC - PIC

Page 12: PROYECTO: Velocista y coche teledirigido · PROYECTO: Velocista y coche teledirigido Departamento de Electricidad y Electrónica Ciclo Formativo de Grado Superior: Desarrollo de Productos

Ciclo Superior de Desarrollo de Productos Electrónicos

Daniel García Bravo

I.E.S. Joan Miró

12

4.2.- Placa de control

En esta placa está situado el microcontrolador PIC16F876A, que es el encargado del

control del robot por medio de los programas que realicemos y que le carguemos.

En nuestra placa de control el componente principal es el PIC. Este nos sirve para

leer los datos que lleguen de los sensores por el conector J2 y, dependiendo de nuestro

programa, actuar sobre los motores en el sentido de giro y su control de velocidad.

Nuestro PIC trabaja a 1Mhz, esto se consigue mediante el cristal de cuarzo X1, que

genera la frecuencia de trabajo actuando conjuntamente con los condensadores C12 y

C13, variando la capacidad de estos últimos consigue modificar la frecuencia de trabajo

del PIC.

Las resistencias R18 y R19, el condensador C14 y el pulsador de RESET, hacen que

el PIC se resetee y empiece con el programa desde el principio.

El JUMPER3 nos sirve para cargar el programa en el PIC a través de un PC. Si se le

cambia de posición nos hace recibir los datos del receptor de radio frecuencia. En la

posición del jumper en RC7(BL) nos permite cargar programas y en la posición de

RC7(RF) hace que el PIC obedezca a las instrucciones que lleguen de la tarjeta de

radiofrecuencia.

El JUMPER4 nos ayuda a elegir el modo de funcionamiento, de acuerdo con la

elección: si queremos que nuestro robot se comporte como un velocista o como un

coche teledirigido. Este jumper posee un diodo led, RA; con su correspondiente

resistencia limitadora de corriente, R17; que nos indica el modo de funcionamiento de

nuestro robot. De tal modo que si el diodo se enciende en nuestro robot, es un coche

teledirigido y si el led está apagado quiere decir que nuestro robot funciona como un

velocista.

En esta placa hay dos diodos leds: D13 y D15, que sirven para indicar la dirección

del coche en modo „coche teledirigido‟, aunque dependiendo de lo que queremos hacer

podremos poner otras utilidades a los leds, como señalizar cuando lea líneas negras en

modo velocista. Estos dos diodos van acompañados por sus respectivas resistencias

limitadoras de corriente: R14 y R15.

También disponemos de un botón de inicio. Su función se basa en que, una vez

situado el robot en modo velocista correctamente sobre la pista, pulsemos dicho botón y

el robot empiece a funcionar. Pero también puede tener otras funciones, dependiendo

del programa cargado en el PIC.

Disponemos también de varios conectores BUS I2C: J4, J5, J6 y J7. Las patillas del

PIC: RC3 y RC4, son las que utiliza para controlarlo. A la salida de estas dos patillas

del PIC hay dos resistencias de 4.7K necesarias para el funcionamiento del BUS I2C.

El receptor de datos AM, CEBEK-C-0504, es un circuito híbrido necesario para

poder controlar el robot a través de un mando a distancia. Es el encargado de recibir, vía

radiofrecuencia, los datos que llegan del mando a distancia.

Page 13: PROYECTO: Velocista y coche teledirigido · PROYECTO: Velocista y coche teledirigido Departamento de Electricidad y Electrónica Ciclo Formativo de Grado Superior: Desarrollo de Productos

Ciclo Superior de Desarrollo de Productos Electrónicos

Daniel García Bravo

I.E.S. Joan Miró

13

El conector J1 es el que trae de la placa, de la fuente de alimentación, los 5 voltios,

la masa y las dos conexiones necesarias para poder comunicar el PIC con un PC.

El conector J2 es el encargado de comunicar los sensores con el PIC y también lleva

la alimentación de 5 voltios y su masa.

Y el conector J3 es el que comunica el PIC con la placa de potencia, que hace que el

PIC controle el giro y la velocidad de los motores, este conector lleva su masa y sus 5

voltios.

4.2.1.- Esquema eléctrico de la placa de control

VDD: 5 voltios

RA0: conexión sensor - PIC

RA1: conexión sensor - PIC

RA2: conexión sensor - PIC

RA3: conexión sensor - PIC

RA4: conexión sensor - PIC

RA5: conexión sensor - PIC

RB0: jumper modo de funcionamiento

RB1: inicio

RB2: conexión PIC - diodo led D15

RB3: conexión PIC - diodo led D13

RB4: conexión PIC - optoacoplador U3

RB5: conexión PIC - optoacoplador U4

RB6: conexión PIC - optoacoplador U5

RB7: conexión PIC - optoacoplador U6

RC0: conexión sensor - PIC

RC1: conexión PIC - optoacoplador U8

RC2: conexión PIC - optoacoplador U7

RC3: conexión BUS I2C

RC5: conexión sensor - PIC

RC4: conexión BUS I2C

RC61: comunicación PIC - PI

RC7 (BL): comunicación PC - PIC

RC7 (RF): comunicación PIC - Cebek

Antena: receptor de los datos emitidos

por el mando.

Page 14: PROYECTO: Velocista y coche teledirigido · PROYECTO: Velocista y coche teledirigido Departamento de Electricidad y Electrónica Ciclo Formativo de Grado Superior: Desarrollo de Productos

Ciclo Superior de Desarrollo de Productos Electrónicos

Daniel García Bravo

I.E.S. Joan Miró

14

4.3.- Placa de potencia

Esta placa se encarga de hacer posible el control de velocidad de los motores y de su

correspondiente sentido de giro.

Con el integrado L298 controlamos el sentido de giro y la velocidad de los motores.

Las patillas 5 y 7, IN1 e IN2, se ocupan del sentido de giro del motor izquierdo. Los

pines de entrada 10 y 12, IN3 e IN4, se encargan de controlar el giro del motor derecho.

Los terminales 1 y 15, SENSA y SENSB, son las masas de la patilla 9. Las patillas 6 y

11, ENA y ENB, son activaciones para las salidas 2, 3, 13 y 14, OUT1, OUT2, OUT3 y

OUT4; la patilla 9 VCC, es la alimentación del integrado; la patilla 4, VS, es la

alimentación de los motores, y la patilla 8, es la masa.

Los optoacopladores U3, U4, U5, U6, U7 y U8, sirven para separar la parte de

potencia de la parte de control. Lo que separa la potencia de las señales es un haz de luz

del diodo interno de los optoacopladores. Haciendo que en caso de avería en la parte de

potencia no afecte a las partes encargadas de las señales.

Por medio de los optoacopladores U3, U4, U5 e U6, controlamos el sentido de giro

de los motores, U3 y U4 para el motor izquierdo; U5 y U6 para el control del motor

derecho.

Para el control de velocidad utilizamos los transistores Q1, Q2, Q3 y Q4, y los

optoacopladores U7 y U8. Los transistores solo funcionan en corte y saturación. U7, Q1

y Q4 controlan el motor izquierdo y U8, Q2 y Q3 controlan el motor derecho.

Los motores son de corriente continua. Cada motor se protege por medio de cuatro

diodos. Cuando los motores se paren, dichos diodos alivian la fuerza

contraelectromotriz que puedan generar.

Los condensadores C10 y C11, que están situados en cada extremo de los motores,

sirven para filtrar posibles ruidos que los motores produzcan. Son filtros paso bajo para

rechazar el ruido. El filtro atenúa los ruidos generados por el motor a frecuencias

superiores a 50 Hz.

Para atacar a los transistores Q1, Q2, Q3 y Q4, dado que no sabemos con seguridad

cual es la tensión necesaria para hacer que estos trabajen en corte o saturación, con los

JUMPER1 y JUMPER2, llevaremos ó 5 ó 9 voltios. Tras realizar las pruebas de

funcionamiento, los jumpers tienen que estar a 5 voltios para que el par Darlington

funcione correctamente.

Los motores giran siempre y cuando se haya activado las entradas y salidas del

L298, y que exista una diferencia de potencial en los extremos de estos, suficiente para

que giren. En caso de que las tensiones en los extremos del motor sean iguales este no

gira.

Se recomienda poner los chasis de los motores a masa para filtrar los ruidos que

generan los motores en el espectro de radiofrecuencia, creando una Jaula de Faraday.

Así evitaremos que se produzcan ruidos en los cables o en las pistas próximas de

nuestros circuitos.

Page 15: PROYECTO: Velocista y coche teledirigido · PROYECTO: Velocista y coche teledirigido Departamento de Electricidad y Electrónica Ciclo Formativo de Grado Superior: Desarrollo de Productos

Ciclo Superior de Desarrollo de Productos Electrónicos

Daniel García Bravo

I.E.S. Joan Miró

15

Para controlar la velocidad de los motores lo hacemos con la PWM. La PWM

consiste en hacer que el ciclo de trabajo de una señal cuadrada sea mas o menos ancho,

podemos hacer que el ciclo de trabajo sea de un 90% para ir a mucha velocidad o de un

5% para ir lentos.

Para explicar el control de giro de los motores, nos ayudaremos del esquema

inferior. Estamos controlando el sentido de giro del motor izquierdo por medio de los

optoacopladores U3 y U4.

A GIRO1 le llevamos un 1 lógico por medio del PIC, así hacemos que el diodo del

optoacoplador no luzca, el fototransistor trabaja en corte. Como el fototransistor está en

corte, la tensión que proviene de R2 no pasa del colector al emisor para ir a masa, y por

lo tanto va hacia el terminal de entrada del L298, que se introduce un 1 lógico, lo que

supone que por la patilla OUT1 salgan 9 voltios.

Por GIRO2, introducimos un 0 lógico, el diodo emisor de infrarrojos luce y ataca la

base del fototransistor de U4, este empieza a trabajar en saturación y lleva la tensión

VDD, la que procede de R4, en vez de a la patilla 7 del L298, la lleva a masa por medio

del transistor interno del integrado U4. Hemos llevado un 0 lógico a la patilla 7 del

L298.

Ya tenemos un 1 en la patilla 5 y un 0 en la 7 del L298, esto hace que en la patilla de

salida 2 haya 9 voltios y en la patilla de salida 3 haya 0. Lo cual significa que, en los

extremos del motor, haya una diferencia de potencial y el motor gira a un lado.

El control de giro del motor derecho tiene la misma filosofía que el control de giro

del motor izquierdo, hacemos que los transistores de los integrados U5 y U6 trabajen en

corte y saturación para llevar un 0 ó 1 lógico a las patillas correspondientes del L298.

Demostración del giro del motor.

Page 16: PROYECTO: Velocista y coche teledirigido · PROYECTO: Velocista y coche teledirigido Departamento de Electricidad y Electrónica Ciclo Formativo de Grado Superior: Desarrollo de Productos

Ciclo Superior de Desarrollo de Productos Electrónicos

Daniel García Bravo

I.E.S. Joan Miró

16

Para controlar la velocidad de los motores, actuaremos sobre las patillas 1 y 15 del

integrado L298.

En el esquema inferior se explica el control de velocidad. La entrada Velocidad es la

conexión que lleva la PWM generada por el PIC. Cuando por Velocidad hay un nivel

bajo de la señal de PWM; el diodo emisor del optoacoplador U8; lucirá, atacando la

base del fototransistor, este se satura y hace que la tensión de base de Q2 vaya a masa.

Q2 se pone en corte y Q4 también y la patilla 1 del L298, no se pone a masa. Por lo

tanto el motor no puede girar, al no existir circulación de corriente. Si la patilla 1 y 15

del L298 no esta a masa, el motor no puede realizar ningún giro.

Si por el contrario por la entrada Velocidad llega un nivel alto de la señal de PWM;

el diodo de U8 no luce, el fototransistor interno de U8 trabaja en corte y por lo tanto la

tensión de base del transistor Q2 no va a masa por el optoacoplador, sino que ataca la

base de Q2, trabajando en saturación, inmediatamente después se ataca la base del

transistor Q4 haciendo que también trabaje en saturación, por lo tanto la patilla 1 y 15

del L298 esta a masa, haciendo posible el giro del motor.

En la siguiente tabla se hace un resumen del control de giro y del control de

velocidad.

Demostración del control de velocidad de un motor.

Explicación de la PWM en la pagina 109.

Entradas al Inversor L298N Salidas del Inversor

L298N Motor

Velocidad SENSA GIRO1 GIRO2 OUT1 OUT2

0 alta impedancia X X - - Parado

1 0v 0 0 1v 1v Parado

1 0v 0 1 1v 9v Sentido

antihorario

1 0v 1 0 9v 1v Sentido

horario

1 0v 1 1 1v 1v Parado

Page 17: PROYECTO: Velocista y coche teledirigido · PROYECTO: Velocista y coche teledirigido Departamento de Electricidad y Electrónica Ciclo Formativo de Grado Superior: Desarrollo de Productos

Ciclo Superior de Desarrollo de Productos Electrónicos

Daniel García Bravo

I.E.S. Joan Miró

17

4.3.1.- Esquema eléctrico de la placa de potencia

VDD: 5 voltios

VP: 9 voltios

U3: patilla RB4 del PIC

U4: patilla RB5 del PIC

U5: patilla RB6 del PIC

U6: patilla RB7 del PIC

U8: patilla RC1 del PIC

U7: patilla RC2 del PIC

Page 18: PROYECTO: Velocista y coche teledirigido · PROYECTO: Velocista y coche teledirigido Departamento de Electricidad y Electrónica Ciclo Formativo de Grado Superior: Desarrollo de Productos

Ciclo Superior de Desarrollo de Productos Electrónicos

Daniel García Bravo

I.E.S. Joan Miró

18

4.4.- Placa de sensores

En esta placa están situados lo sensores del robot velocista. Los sensores utilizados

son los CNY70. Las señales que salen de los sensores, llegan a nuestro PIC, para poder

controlar el robot mediante el programa que nosotros previamente hayamos cargado en

el PIC.

Otros componentes que se encuentran en esta placa son los integrados 74HC14,

inversores de señales; si a la entrada tenemos un 0 lógico, a la salida tendremos un 1

lógico. También son conocidos como Trigger Smith, ya que a su vez es un circuito

comparador, ya que nos vale para asegurarnos de que una superficie gris clara pase a

blanca y una superficie gris oscura sea negra. Podemos decir que los utilizamos para

acondicionar la señal del sensor.

Las resistencias R23, R25, R27, R29, R31, R33, R35, R37; se encargan de dar

tolerancia al sensor. Variando el valor de estas resistencias se puede separar más o

menos los sensores de la superficie. El valor de las resistencias puede variar desde 10k

hasta 47k. En los esquemas eléctricos se ha puesto el valor de estas resistencias de 10k,

pero hay que ir probando que valor es el definitivo.

Los sensores CNY70 tienen en su interior un diodo emisor de infrarrojos y un

fototransistor. Cuando el diodo emita más luz hacia la base del fototransistor este, a su

vez, conducirá más.

El funcionamiento de este sensor es parecido al funcionamiento de los

optoacopladores. Se basa en atacar la base de un fototransistor por medio de un emisor

de luz, al hacer que el fototransistor trabaje en corte o saturación. El emisor emite un

haz de luz, si esta luz se refleja, rebota sobre una superficie, se ataca a la base del

fototransistor y hace que el transistor trabaje en saturación. A medida que la superficie

refleje mas la luz, se producirá una mayor corriente en la base del fototransistor, y así se

obtiene una mayor tensión a la salida. Esto nos es muy útil para digitalizar las señales

que obtengamos de los sensores, para diferenciar la superficie oscura de una clara.

Page 19: PROYECTO: Velocista y coche teledirigido · PROYECTO: Velocista y coche teledirigido Departamento de Electricidad y Electrónica Ciclo Formativo de Grado Superior: Desarrollo de Productos

Ciclo Superior de Desarrollo de Productos Electrónicos

Daniel García Bravo

I.E.S. Joan Miró

19

Cuando la superficie es blanca, el haz de luz se refleja y ataca a la base del

fototransistor, este se satura, llevando la tensión del colector a masa, e introduciendo un

0 lógico a la entrada del 74HC14, y a la salida tenemos un 1 lógico, que es lo que le

llega al PIC. Cuando la superficie es negra, la luz es absorbida por la superficie, y hace

que el transistor trabaje en corte. Esto nos hará tener 1 a la entrada del 74HC14, o sea,

que a la salida hay un 0 lógico.

Superficie Estado lógico antes de la

Trigger Smith

Estado lógico después de la

Trigger Smith

Negra 1 0

Blanca 0 1

4.4.1.- Esquema eléctrico de la placa de sensores

VDD: 5 voltios

OP1: conexión sensor - PIC

OP2: conexión sensor - PIC

OP3: conexión sensor - PIC

OP4: conexión sensor - PIC

OP5: conexión sensor - PIC

OP6: conexión sensor - PIC

OP7: conexión sensor - PIC

OP8: conexión sensor - PIC

Page 20: PROYECTO: Velocista y coche teledirigido · PROYECTO: Velocista y coche teledirigido Departamento de Electricidad y Electrónica Ciclo Formativo de Grado Superior: Desarrollo de Productos

Ciclo Superior de Desarrollo de Productos Electrónicos

Daniel García Bravo

I.E.S. Joan Miró

20

4.5.- Mando

El mando no forma parte del proyecto por falta de tiempo, aunque se deja abierta la

esta posibilidad para que en cualquier momento se pueda adjuntar.

El mando se fabrica aparte de las placas de nuestro robot, ya que este es un

complemento del proyecto.

El mando tiene la misión de transmitir un código asociado a cada pulsador, para

poder controlar el robot.

El microcontrolador PIC16F876A lee los pulsadores y transmite los códigos vía

serie a la tarjeta transmisora de radiofrecuencia, a una velocidad de 1562,5 baudios por

segundo. Es una transmisión asíncrona: 1 bit de comienzo, 8 bit de datos, 1 bit de

parada sin bit de paridad.

El microcontrolador PIC16F876A trabaja a una frecuencia de 4 MHz y ejecuta una

instrucción en 1uS.

La alimentación procede de un regulador 7805 que suministra 5 voltios continuos a

todos los circuitos.

El transistor Q1E tiene la misión de deshabilitar la tarjeta de radiofrecuencia cuando

esta no transmite datos.

La tarjeta emisora CEBEK C-0503 es un circuito híbrido encargado de transmitir

vía radiofrecuencia, los datos digitales procedentes del microprocesador. Se modula en

AM cuya frecuencia portadora es de 433,92 MHz. Estas señales salen por la patilla 11

del emisor de datos CEBEK C-0503.

El diodo led D7E nos indica que el mando está encendido, tiene su correspondiente

resistencia limitadora de corriente.

El resto de los leds se iluminan cuando activamos su pulsador correspondiente.

El diodo D6E tiene la misión de proteger el circuito en cado de invertir la batería.

Los condensadores C1 y C2 son filtros.

Page 21: PROYECTO: Velocista y coche teledirigido · PROYECTO: Velocista y coche teledirigido Departamento de Electricidad y Electrónica Ciclo Formativo de Grado Superior: Desarrollo de Productos

Ciclo Superior de Desarrollo de Productos Electrónicos

Daniel García Bravo

I.E.S. Joan Miró

21

4.5.1.- Esquema eléctrico del mando

CON1E: salida de los datos emitidos

VDD: 5 voltios

Page 22: PROYECTO: Velocista y coche teledirigido · PROYECTO: Velocista y coche teledirigido Departamento de Electricidad y Electrónica Ciclo Formativo de Grado Superior: Desarrollo de Productos

Ciclo Superior de Desarrollo de Productos Electrónicos

Daniel García Bravo

I.E.S. Joan Miró

22

5.- Esquema eléctrico de simulación con Proteus

5.1.- Simulación del robot velocista

Page 23: PROYECTO: Velocista y coche teledirigido · PROYECTO: Velocista y coche teledirigido Departamento de Electricidad y Electrónica Ciclo Formativo de Grado Superior: Desarrollo de Productos

Ciclo Superior de Desarrollo de Productos Electrónicos

Daniel García Bravo

I.E.S. Joan Miró

23

5.2.- Simulación del robot teledirigido

Page 24: PROYECTO: Velocista y coche teledirigido · PROYECTO: Velocista y coche teledirigido Departamento de Electricidad y Electrónica Ciclo Formativo de Grado Superior: Desarrollo de Productos

Ciclo Superior de Desarrollo de Productos Electrónicos

Daniel García Bravo

I.E.S. Joan Miró

24

6.- Programas

La programación tiene una parte importante en nuestro robot, ya que, por muy bien

diseñado que esté, sin programas no haremos nada.

Los programas primero se simulan en el ISIS y tienen el primer objetivo de ver que,

las diferentes partes del robot, funcionan adecuadamente. Una vez que se haya visto que

funciona correctamente, se podrá pasar a programar ya el funcionamiento del robot.

6.1.- Programas de prueba

Por medio de estos programas se puede averiguar si hay fallos en los componentes

que monta nuestro robot o en las conexiones electrónicas.

6.1.2.- Programas de prueba de los leds

Este programa tiene como función probar el correcto funcionamiento de los dos

diodos leds que hay en la placa de control.

Para encender los diodos leds necesitaremos sacar, por la patilla del PIC que esté

conectado, al diodo led un 0 lógico. Para apagar el diodo led necesitaremos un 1 lógico.

6.1.2.1.- Diagrama de flujo

Page 25: PROYECTO: Velocista y coche teledirigido · PROYECTO: Velocista y coche teledirigido Departamento de Electricidad y Electrónica Ciclo Formativo de Grado Superior: Desarrollo de Productos

Ciclo Superior de Desarrollo de Productos Electrónicos

Daniel García Bravo

I.E.S. Joan Miró

25

6.1.2.2.- Programa

// Pruebas de los leds

// ************************ Directivas de procesado ************************

// (Controlan la conversión del programa a código máquina por parte del compilador)

#include <16F876A.h> // Incluye el fichero 16F876A.h al programa tiene

// que estar en la misma carpeta del programa

// define funciones, patillas y registros.

#fuses XT,NOWDT // Define la palabra de configuración del

// microcontrolador PIC

// Trabaja con un reloj tipo XT y no utiliza perro

// guardián Wathdog

#use delay( clock = 1000000 ) // Define la frecuencia del reloj de 1 MHz

#BYTE TRISB = 0x86 // TRISB en 86h.

#BYTE portB = 0x06 // PORTB en 06h.

#BIT rb2 = 0x06.2 // RB2 en 0x06 patilla 2.

#BIT rb3 = 0x06.3 // RB3 en 0x06 patilla 3.

// ****************** Función principal o programa principal ******************

void main()

{

TRISB = 0B00000000; // Defines Puerto B como salida

// de datos.

while(1){ // Bucle infinito

rb2 = 0 ; // Enciendo el led D14

rb3 =0; // Enciendo el led D13

delay_ms(500); // Retardo de 500 ms

rb2 = 1 ; // Apago el led D14

rb3 =1; // Apago el led D13

delay_ms(500); // Retardo de 500 ms

} // Cierro el While

} // Cierro el programa

Page 26: PROYECTO: Velocista y coche teledirigido · PROYECTO: Velocista y coche teledirigido Departamento de Electricidad y Electrónica Ciclo Formativo de Grado Superior: Desarrollo de Productos

Ciclo Superior de Desarrollo de Productos Electrónicos

Daniel García Bravo

I.E.S. Joan Miró

26

6.1.3.- Programas de prueba de los sensores

Estos programas tienen la función de comprobar el correcto funcionamiento de

todos los sensores de nuestro robot. También comprobaremos que la comunicación

entre el PIC y los sensores son las correctas y que no hay fallos de comunicación.

Comprobaremos los sensores de dos en dos y nos ayudaremos de los diodos led que

hay en la placa de control, para controlar si los sensores y sus respectivas

comunicaciones son correctas.

Cuando el sensor lea una superficie blanca llegará un 0 lógico al PIC, después del

integrado Trigger Smith. Cuando el sensor lea una superficie negra llegará un 1 lógico

al PIC.

Superficie Estado lógico que llega al PIC

Negra 0

Blanca 1

6.1.3.1.- Programas de prueba de los sensores OP1 Y OP2

Este programa tiene la función de comprobar el correcto comportamiento de los

sensores OP1 y OP2.

6.1.3.1.1.- Diagrama de flujo

Page 27: PROYECTO: Velocista y coche teledirigido · PROYECTO: Velocista y coche teledirigido Departamento de Electricidad y Electrónica Ciclo Formativo de Grado Superior: Desarrollo de Productos

Ciclo Superior de Desarrollo de Productos Electrónicos

Daniel García Bravo

I.E.S. Joan Miró

27

6.1.3.1.2.- Programa

// Pruebas de los sensores OP1 y OP2

// ************************ Directivas de procesado ************************

// (Controlan la conversión del programa a código máquina por parte del compilador)

#include <16F876A.h> // Incluye el fichero 16F876A.h al programa tiene

// que estar en la misma carpeta del programa

// define funciones, patillas y registros.

#fuses XT,NOWDT // Define la palabra de configuración del

// microcontrolador PIC

// Trabaja con un reloj tipo XT y no utiliza perro

// guardián Wathdog

#use delay( clock = 1000000 ) // Define la frecuencia del reloj de 1 MHz

#BYTE TRISA = 0x85 // TRISA en 85h.

#BYTE portA = 0x05 // PORTB en 05h.

#BIT ra0 = 0x05.0 // RA0 en 0x05 patilla 0

#BYTE TRISB = 0x86 // TRISB en 86h.

#BYTE portB = 0x06 // PORTB en 06h.

#BIT rb2 = 0x06.2 // RB2 en 0x06 patilla 2.

#BIT rb3 = 0x06.3 // RB3 en 0x06 patilla 3.

#BYTE TRISC = 0x87 // TRISC en 87h.

#BYTE portC = 0x07 // PORTC en 07h.

#BIT rc0 = 0x07.0 // RC0 en 0x07 patilla 0

// ****************** Función principal o programa principal ******************

void main()

{

TRISA = 0B11111111; // Defines Puerto A como entrada de datos

TRISB = 0B00000000; // Defines Puerto B como salida

// de datos.

TRISC = 0B10110001; // Defines rc6, rc2 y rc1 como salidas y rc7,

// rc5 y rc0 como entradas; rc4 y rc3 no

// tocar

Page 28: PROYECTO: Velocista y coche teledirigido · PROYECTO: Velocista y coche teledirigido Departamento de Electricidad y Electrónica Ciclo Formativo de Grado Superior: Desarrollo de Productos

Ciclo Superior de Desarrollo de Productos Electrónicos

Daniel García Bravo

I.E.S. Joan Miró

28

while(1){ // Bucle infinito

if (rc0 == 1) // Si el sensor lee blanco ejecuta la

// siguiente instrucción

rb2 = 0; // Enciende el led D14

else { // Si el sensor lee negro, ejecuta la siguiente

// instrucción

rb2 = 1; // Apaga el led D14

} // Cierro el else

if (ra0 == 1) // Si el sensor lee blanco ejecuta la

// siguiente instrucción

rb3 = 0; // Enciende el led D13

else { // Si el sensor lee negro, ejecuta la siguiente

// instrucción

rb3 = 1; // Apaga el led D13

} // Cierro el else

} // Cierro el while

} // Cierro el programa

Page 29: PROYECTO: Velocista y coche teledirigido · PROYECTO: Velocista y coche teledirigido Departamento de Electricidad y Electrónica Ciclo Formativo de Grado Superior: Desarrollo de Productos

Ciclo Superior de Desarrollo de Productos Electrónicos

Daniel García Bravo

I.E.S. Joan Miró

29

6.1.3.2- Programas de prueba de los sensores OP3 y OP4

Este programa tiene la función de comprobar el correcto comportamiento de los

sensores OP3 y OP4.

6.1.3.2.1.- Diagrama de flujo

6.1.3.2.2.- Programa

// Pruebas de los sensores OP3 y OP4

// ************************ Directivas de procesado ************************

// (Controlan la conversión del programa a código máquina por parte del compilador)

#include <16F876A.h> // Incluye el fichero 16F876A.h al programa tiene

// que estar en la misma carpeta del programa

// define funciones, patillas y registros.

#fuses XT,NOWDT // Define la palabra de configuración del

// microcontrolador PIC

// Trabaja con un reloj tipo XT y no utiliza perro

// guardián Wathdog

#use delay( clock = 1000000 ) // Define la frecuencia del reloj de 1 MHz

Page 30: PROYECTO: Velocista y coche teledirigido · PROYECTO: Velocista y coche teledirigido Departamento de Electricidad y Electrónica Ciclo Formativo de Grado Superior: Desarrollo de Productos

Ciclo Superior de Desarrollo de Productos Electrónicos

Daniel García Bravo

I.E.S. Joan Miró

30

#BYTE TRISA = 0x85 // TRISA en 85h.

#BYTE portA = 0x05 // PORTB en 05h.

#BIT ra1 = 0x05.1 // RA1 en 0x05 patilla 1

#BIT ra2 = 0x05.2 // RA2 en 0x05 patilla 2

#BYTE TRISB = 0x86 // TRISB en 86h.

#BYTE portB = 0x06 // PORTB en 06h.

#BIT rb2 = 0x06.2 // RB2 en 0x06 patilla 2.

#BIT rb3 = 0x06.3 // RB3 en 0x06 patilla 3.

// ****************** Función principal o programa principal ******************

void main()

{

TRISA = 0B11111111; // Defines Puerto A como entrada de datos

TRISB = 0B00000000; // Defines Puerto B como salida de datos

while(1){ // Bucle infinito

if (ra1 == 1) // Si el sensor lee blanco ejecuta la

// siguiente instrucción

rb2 = 0; // Enciende el led D14

else { // Si el sensor lee negro, ejecuta la siguiente

// instrucción

rb2 = 1; // Apaga el led D14

} // Cierro el else

if (ra2 == 1) // Si el sensor lee blanco ejecuta la

// siguiente instrucción

rb3 = 0; // Enciende el led D13

else { // Si el sensor lee negro, ejecuta la siguiente

// instrucción

rb3 = 1; // Apaga el led D13

} // Cierro el else

} // Cierro el while

} // Cierro el programa

Page 31: PROYECTO: Velocista y coche teledirigido · PROYECTO: Velocista y coche teledirigido Departamento de Electricidad y Electrónica Ciclo Formativo de Grado Superior: Desarrollo de Productos

Ciclo Superior de Desarrollo de Productos Electrónicos

Daniel García Bravo

I.E.S. Joan Miró

31

6.1.3.3.- Programas de prueba de los sensores OP5 y OP6

Este programa tiene la función de comprobar el correcto comportamiento de los

sensores OP5 y OP6.

6.1.3.3.1.- Diagrama de flujo

6.1.3.3.2.- Programa

// Pruebas de los sensores OP5 y OP6

// ************************ Directivas de procesado ************************

// (Controlan la conversión del programa a código máquina por parte del compilador)

#include <16F876A.h> // Incluye el fichero 16F876A.h al programa tiene

// que estar en la misma carpeta del programa

// define funciones, patillas y registros.

#fuses XT,NOWDT // Define la palabra de configuración del

// microcontrolador PIC

// Trabaja con un reloj tipo XT y no utiliza perro

// guardián Wathdog

#use delay( clock = 1000000 ) // Define la frecuencia del reloj de 1 MHz

#BYTE TRISA = 0x85 // TRISA en 85h.

Page 32: PROYECTO: Velocista y coche teledirigido · PROYECTO: Velocista y coche teledirigido Departamento de Electricidad y Electrónica Ciclo Formativo de Grado Superior: Desarrollo de Productos

Ciclo Superior de Desarrollo de Productos Electrónicos

Daniel García Bravo

I.E.S. Joan Miró

32

#BYTE portA = 0x05 // PORTB en 05h.

#BIT ra3 = 0x05.3 // RA3 en 0x05 patilla 3

#BIT ra4 = 0x05.4 // RA4 en 0x05 patilla 4

#BYTE TRISB = 0x86 // TRISB en 86h.

#BYTE portB = 0x06 // PORTB en 06h.

#BIT rb2 = 0x06.2 // RB2 en 0x06 patilla 2.

#BIT rb3 = 0x06.3 // RB3 en 0x06 patilla 3.

// ****************** Función principal o programa principal ******************

void main()

{

TRISA = 0B11111111; // Defines Puerto A como entrada de datos

TRISB = 0B00000000; // Defines Puerto B como salida de datos

while(1){ // Bucle infinito

if (ra3 == 1) // Si el sensor lee blanco ejecuta la

// siguiente instrucción

rb2 = 0; // Enciende el led D14

else { // Si el sensor no lee blanco, ejecuta la

// siguiente instrucción

rb2 = 1; // Apaga el led D14

} // Cierro el else

if (ra4 == 1) // Si el sensor lee blanco ejecuta la

// siguiente instrucción

rb3 = 0; // Enciende el led D13

else { // Si el sensor no lee blanco, ejecuta la

// siguiente instrucción

rb3 = 1; // Apaga el led D13

} // Cierro el else

} // Cierro el while

} // Cierro el programa

Page 33: PROYECTO: Velocista y coche teledirigido · PROYECTO: Velocista y coche teledirigido Departamento de Electricidad y Electrónica Ciclo Formativo de Grado Superior: Desarrollo de Productos

Ciclo Superior de Desarrollo de Productos Electrónicos

Daniel García Bravo

I.E.S. Joan Miró

33

6.1.3.4.- Programas de prueba de los sensores OP7 Y OP8

Este programa tiene la función de comprobar el correcto comportamiento de los

sensores OP7 y OP8.

6.1.3.4.1.- Diagrama de flujo

6.1.3.4.2.- Programa

// Pruebas de los sensores OP7 y OP8

// ************************ Directivas de procesado ************************

// (Controlan la conversión del programa a código máquina por parte del compilador)

#include <16F876A.h> // Incluye el fichero 16F876A.h al programa tiene

// que estar en la misma carpeta del programa

// define funciones, patillas y registros.

#fuses XT,NOWDT // Define la palabra de configuración del

// microcontrolador PIC

// Trabaja con un reloj tipo XT y no utiliza perro

// guardián Wathdog

Page 34: PROYECTO: Velocista y coche teledirigido · PROYECTO: Velocista y coche teledirigido Departamento de Electricidad y Electrónica Ciclo Formativo de Grado Superior: Desarrollo de Productos

Ciclo Superior de Desarrollo de Productos Electrónicos

Daniel García Bravo

I.E.S. Joan Miró

34

#use delay( clock = 1000000 ) // Define la frecuencia del reloj de 1 MHz

#BYTE TRISA = 0x85 // TRISA en 85h.

#BYTE portA = 0x05 // PORTB en 05h.

#BIT ra5 = 0x05.5 // RA5 en 0x05 patilla 5

#BYTE TRISB = 0x86 // TRISB en 86h.

#BYTE portB = 0x06 // PORTB en 06h.

#BIT rb2 = 0x06.2 // RB2 en 0x06 patilla 2.

#BIT rb3 = 0x06.3 // RB3 en 0x06 patilla 3.

#BYTE TRISC = 0x87 // TRISC en 87h.

#BYTE portC = 0x07 // PORTC en 07h.

#BIT rc5 = 0x07.5 // RC5 en 0x07 patilla 5

// ****************** Función principal o programa principal ******************

void main()

{

TRISA = 0B11111111; // Defines Puerto A como entrada de datos

TRISB = 0B00000000; // Defines Puerto B como salida

// de datos.

TRISC = 0B10110001; // Defines rc6, rc2 y rc1 como salidas y rc7,

// rc5 y rc0 como entradas; rc4 y rc3 no

// tocar

while(1){ // Bucle infinito

if (ra5 == 1) // Si el sensor lee blanco ejecuta la

// siguiente instrucción

rb2 = 0; // Enciende el led D14

else { // Si el sensor lee negro, ejecuta la siguiente

// instrucción

rb2 = 1; // Apaga el led D14

} // Cierro el else

if (rc5 == 1) // Si el sensor lee blanco ejecuta la

// siguiente instrucción

rb3 = 0; // Enciende el led D13

Page 35: PROYECTO: Velocista y coche teledirigido · PROYECTO: Velocista y coche teledirigido Departamento de Electricidad y Electrónica Ciclo Formativo de Grado Superior: Desarrollo de Productos

Ciclo Superior de Desarrollo de Productos Electrónicos

Daniel García Bravo

I.E.S. Joan Miró

35

else { // Si el sensor lee negro, ejecuta la siguiente

// instrucción

rb3 = 1; // Apaga el led D13

} // Cierro el else

} // Cierro el while

} // Cierro el programa

6.1.4.- Programas de pruebas de control de giro de los motores

Con estos programas comprobaremos que los motores están en perfecto estado y las

conexiones que controlan los motores también lo están.

6.1.4.1- Programa de prueba del motor derecho

Con este programa controlaremos que el motor derecho gira en ambos sentidos,

controlando las patillas rb6 y rb7 del PIC.

El sentido de giro dependerá del estado lógico de las patillas rb6 y rb7 y de cómo

conectemos el motor derecho a la placa de potencia.

RB6 RB7 Sentido de giro

0 0 Motor parado

0 1 En movimiento

1 0 En movimiento

1 1 Motor parado

Page 36: PROYECTO: Velocista y coche teledirigido · PROYECTO: Velocista y coche teledirigido Departamento de Electricidad y Electrónica Ciclo Formativo de Grado Superior: Desarrollo de Productos

Ciclo Superior de Desarrollo de Productos Electrónicos

Daniel García Bravo

I.E.S. Joan Miró

36

6.1.4.1.1.- Diagrama de flujo

6.1.4.1.2.- Programa

// Pruebas de control de giro del motor derecho

// ************************ Directivas de procesado ************************

// (Controlan la conversión del programa a código máquina por parte del compilador)

#include <16F876A.h> // Incluye el fichero 16F876A.h al programa tiene

// que estar en la misma carpeta del programa

// define funciones, patillas y registros.

#fuses XT,NOWDT // Define la palabra de configuración del

// microcontrolador PIC

// Trabaja con un reloj tipo XT y no utiliza perro

// guardián Wathdog

#use delay( clock = 1000000 ) // Define la frecuencia del reloj de 1 MHz

#BYTE TRISB = 0x86 // TRISB en 86h.

#BYTE portB = 0x06 // PORTB en 06h.

Page 37: PROYECTO: Velocista y coche teledirigido · PROYECTO: Velocista y coche teledirigido Departamento de Electricidad y Electrónica Ciclo Formativo de Grado Superior: Desarrollo de Productos

Ciclo Superior de Desarrollo de Productos Electrónicos

Daniel García Bravo

I.E.S. Joan Miró

37

#BIT rb6 = 0x06.6 // RB1 en 0x06 patilla 1.

#BIT rb7 = 0x06.7 // RB2 en 0x06 patilla 2.

// ****************** Función principal o programa principal ****************

void main()

{

TRISB = 0B00000000; // Defines Puerto B como SALIDA de datos

portB = 0B00000000; // Reseteas el puerto B

while(1){ // Bucle infinito

rb6 = 0; // Las patillas RB6 y RB7 desactivadas,

rb7 = 0; // motor parado

delay_ms(500); // Retardo de 500 ms

rb6 = 1; // Activamos la patilla RB6, motor gira

delay_ms(500); // Retardo de 500 ms

rb6 = 0; // Las patillas RB6 y RB7 desactivadas,

rb7 = 0; // motor parado

delay_ms(500); // Retardo de 500 ms

rb7 = 1; // Activamos la patilla RB7, el motor gira

delay_ms(500); // Retardo de 500 ms

} // Cierro el While

} // Cierro el programa principal

6.1.4.2.- Programa de prueba del motor izquierdo

Con este programa controlaremos que el motor izquierdo gira en ambos sentidos,

controlando las patillas rb4 y rb5 del PIC.

El sentido de giro dependerá del estado lógico de las patillas rb4 y rb5 y de cómo

conectemos el motor derecho a la placa de potencia.

RB4 RB5 Sentido de giro

0 0 Motor parado

0 1 En movimiento

1 0 En movimiento

1 1 Motor parado

Page 38: PROYECTO: Velocista y coche teledirigido · PROYECTO: Velocista y coche teledirigido Departamento de Electricidad y Electrónica Ciclo Formativo de Grado Superior: Desarrollo de Productos

Ciclo Superior de Desarrollo de Productos Electrónicos

Daniel García Bravo

I.E.S. Joan Miró

38

6.1.4.2.1.- Diagrama de flujo

6.1.4.2.2.- Programa

// Pruebas de control de giro del motor izquierdo

// ************************ Directivas de procesado ************************

// (Controlan la conversión del programa a código máquina por parte del compilador)

#include <16F876A.h> // Incluye el fichero 16F876A.h al programa tiene

// que estar en la misma carpeta del programa

// define funciones, patillas y registros.

#fuses XT,NOWDT // Define la palabra de configuración del

// microcontrolador PIC

// Trabaja con un reloj tipo XT y no utiliza perro

// guardián Wathdog

#use delay( clock = 1000000 ) // Define la frecuencia del reloj de 1 MHz

Page 39: PROYECTO: Velocista y coche teledirigido · PROYECTO: Velocista y coche teledirigido Departamento de Electricidad y Electrónica Ciclo Formativo de Grado Superior: Desarrollo de Productos

Ciclo Superior de Desarrollo de Productos Electrónicos

Daniel García Bravo

I.E.S. Joan Miró

39

#BYTE TRISB = 0x86 // TRISB en 86h.

#BYTE portB = 0x06 // PORTB en 06h.

#BIT rb4 = 0x06.4 // RB4 en 0x06 patilla 4.

#BIT rb5 = 0x06.5 // RB5 en 0x06 patilla 5.

// ****************** Función principal o programa principal ****************

void main()

{

TRISB = 0B00000000; // Defines Puerto B como SALIDA de datos.

portB = 0B00000000; // Reseteas el puerto B

while(1){ // Bucle infinito

rb4 = 0; // Las patillas RB4 y RB5 desactivadas,

rb5 = 0; // motor parado

delay_ms(500); // Retardo de 500 ms

rb4 = 1; // Activamos la patilla RB4, motor gira

delay_ms(500); // Retardo de 500 ms

rb4 = 0; // Las patillas RB4 y RB5 desactivadas,

rb5 = 0; // motor parado

delay_ms(500); // Retardo de 500 ms

rb5 = 1; // Activamos la patilla RB5, el motor gira

delay_ms(500); // Retardo de 500 ms

} // Cierro el While

} // Cierro el programa principal

6.1.5.- Programas de pruebas de control de velocidad de los motores

Con estos programas probaremos que el PIC genera la PWM. También que esta

llega a nuestros motores y que estos modifican su velocidad de acuerdo con la PWM

que llegue del PIC.

6.1.5.1- Programa de control de velocidad del motor derecho

Probamos la velocidad del motor derecho.

Page 40: PROYECTO: Velocista y coche teledirigido · PROYECTO: Velocista y coche teledirigido Departamento de Electricidad y Electrónica Ciclo Formativo de Grado Superior: Desarrollo de Productos

Ciclo Superior de Desarrollo de Productos Electrónicos

Daniel García Bravo

I.E.S. Joan Miró

40

6.1.5.1.1.- Diagrama de flujo

6.1.5.1.2.- Programa

// Prueba de control de velocidad motor derecho

// ************************ Directivas de procesado ************************

// (Controlan la conversión del programa a código máquina por parte del compilador)

#include <16F876A.h> // Incluye el fichero 16F876A.h al programa tiene

// que estar en la misma carpeta del programa

// define funciones, patillas y registros.

#fuses XT,NOWDT // Define la palabra de configuración del

// microcontrolador PIC

// Trabaja con un reloj tipo XT y no utiliza perro

// guardián Wathdog

#use delay( clock = 1000000 ) // Define la frecuencia del reloj de 1 MHz

#BYTE TRISB = 0x86 // TRISB en 86h.

#BYTE portB = 0x06 // PORTB en 06h.

Page 41: PROYECTO: Velocista y coche teledirigido · PROYECTO: Velocista y coche teledirigido Departamento de Electricidad y Electrónica Ciclo Formativo de Grado Superior: Desarrollo de Productos

Ciclo Superior de Desarrollo de Productos Electrónicos

Daniel García Bravo

I.E.S. Joan Miró

41

#BIT rb6 = 0x06.6 // RB6 en 0x06 patilla 6.

#BIT rb7 = 0x06.7 // RB7 en 0x06 patilla 7.

int16 TH = 65535; // Variable para la PWM

// ************* Función principal o programa principal *****************

void main()

{

TRISB = 0B00000010; // Defines Puerto B como salidas de datos.

portB = 0B00001100; // Reseteas el puerto B, los dos LEDS a 1

setup_timer_2(T2_DIV_BY_16,249,1);

// setup_timer(Prescaler,PR2,Postscaler)

// Configuracion timer2. Si el Periodo = 16mS ----> T = 16000uS

// T = [PR2+1] x Tcm x Postscaler x Prescaler

// PR2 puede valer de 0 a 255.

// Tcm es el tiempo de Ciclo Maquina. Tcm = 4/Fosc = 4/1.000.000 hz = 4uS.

// Prescaler puede valer 1,4,16

// Postscaler puede valer 1.

// 16000uS = [PR2+1] x 4 x 16 x 1

// PR2 =[T/(Tcm x Preescaler x Postscaler)]-1

// PR2 =[16000uS/(4uS x 16 x 1)]-1 = 249 (en C 249)

setup_ccp2(CCP_PWM); // CCP2 en modo PWM (Salida por

// RC1)

while(1){ // Bucle infinito

rb7 = 0; // Desactivamos la patilla RB7

rb6 = 1; // Activamos la patilla RB6

// El motor empezara a moverse en un

// sentido

TH = 0; // No meto PWM, motor parado

delay_ms(2000); // Tiempo que el motor estará girando

TH = 64; // Cambiamos el valor de la PWM

delay_ms(2000); // Tiempo que el motor estará girando

TH = 500; // Cambiamos el valor de la PWM

delay_ms(2000); // Tiempo que el motor estará girando

TH = 1000; // Cambiamos el valor de la PWM

Page 42: PROYECTO: Velocista y coche teledirigido · PROYECTO: Velocista y coche teledirigido Departamento de Electricidad y Electrónica Ciclo Formativo de Grado Superior: Desarrollo de Productos

Ciclo Superior de Desarrollo de Productos Electrónicos

Daniel García Bravo

I.E.S. Joan Miró

42

delay_ms(2000); // Tiempo que el motor estará girando

rb7 = 0; // Desactivamos la patilla RB7

rb6 = 1; // Activamos la patilla RB6

// El motor empezara a moverse en

// sentido contrario

TH = 0; // No meto PWM, motor parado

delay_ms(2000); // Tiempo que el motor estará girando

TH = 64; // Cambiamos el valor de la PWM

delay_ms(2000); // Tiempo que el motor estará girando

TH = 500; // Cambiamos el valor de la PWM

delay_ms(2000); // Tiempo que el motor estará girando

TH = 1000; // Cambiamos el valor de la PWM

delay_ms(2000); // Tiempo que el motor estará girando

} // Cierro el While

} // Cierro el programa principal

Page 43: PROYECTO: Velocista y coche teledirigido · PROYECTO: Velocista y coche teledirigido Departamento de Electricidad y Electrónica Ciclo Formativo de Grado Superior: Desarrollo de Productos

Ciclo Superior de Desarrollo de Productos Electrónicos

Daniel García Bravo

I.E.S. Joan Miró

43

6.1.5.2.- Programa de control de velocidad del motor izquierdo

Probamos la velocidad del motor izquierdo.

6.1.5.2.1.- Diagrama de flujo

6.1.5.2.2.- Programa

// Prueba de control de velocidad izquierdo

// ************************ Directivas de procesado ************************

// (Controlan la conversión del programa a código máquina por parte del compilador)

#include <16F876A.h> // Incluye el fichero 16F876A.h al programa tiene

// que estar en la misma carpeta del programa

// define funciones, patillas y registros.

#fuses XT,NOWDT // Define la palabra de configuración del

// microcontrolador PIC

// Trabaja con un reloj tipo XT y no utiliza perro

// guardián Wathdog

Page 44: PROYECTO: Velocista y coche teledirigido · PROYECTO: Velocista y coche teledirigido Departamento de Electricidad y Electrónica Ciclo Formativo de Grado Superior: Desarrollo de Productos

Ciclo Superior de Desarrollo de Productos Electrónicos

Daniel García Bravo

I.E.S. Joan Miró

44

#use delay( clock = 1000000 ) // Define la frecuencia del reloj de 1 MHz

#BYTE TRISB = 0x86 // TRISB en 86h.

#BYTE portB = 0x06 // PORTB en 06h.

#BIT rb4 = 0x06.4 // RB4 en 0x06 patilla 4.

#BIT rb5 = 0x06.5 // RB5 en 0x06 patilla 5.

int16 TH = 65535; // Variable para la PWM

// ******************* Función principal o programa principal *****************

void main()

{

TRISB = 0B00000010; // Defines Puerto B como salidas de datos.

portB = 0B00001100; // Reseteas el puerto B, los dos LEDS a 1

setup_timer_2(T2_DIV_BY_16,249,1);

// setup_timer(Prescaler,PR2,Postscaler)

// Configuracion timer2. Si el Periodo = 16mS ----> T = 16000uS

// T = [PR2+1] x Tcm x Postscaler x Prescaler

// PR2 puede valer de 0 a 255.

// Tcm es el tiempo de Ciclo Maquina. Tcm = 4/Fosc = 4/1.000.000 hz = 4uS.

// Prescaler puede valer 1,4,16

// Postscaler puede valer 1.

// 16000uS = [PR2+1] x 4 x 16 x 1

// PR2 =[T/(Tcm x Preescaler x Postscaler)]-1

// PR2 =[16000uS/(4uS x 16 x 1)]-1 = 249 (en C 249)

setup_ccp1(CCP_PWM); // CCP1 en modo PWM (Salida por RC2)

while(1){ // Bucle infinito

rb4 = 0; // Desactivamos la patilla RB4

rb5 = 1; // Activamos la patilla RB5

// El motor empezara a moverse en un

// sentido

TH = 0; // No meto PWM, motor parado

delay_ms(2000); // Tiempo que el motor estará girando

TH = 64; // Cambiamos el valor de la PWM

delay_ms(2000); // Tiempo que el motor estará girando

Page 45: PROYECTO: Velocista y coche teledirigido · PROYECTO: Velocista y coche teledirigido Departamento de Electricidad y Electrónica Ciclo Formativo de Grado Superior: Desarrollo de Productos

Ciclo Superior de Desarrollo de Productos Electrónicos

Daniel García Bravo

I.E.S. Joan Miró

45

TH = 500; // Cambiamos el valor de la PWM

delay_ms(2000); // Tiempo que el motor estará girando

TH = 1000; // Cambiamos el valor de la PWM

delay_ms(2000); // Tiempo que el motor estará girando

rb5 = 0; // Desactivamos la patilla RB5

rb4 = 1; // Activamos la patilla RB4

// El motor empezara a moverse en

// sentido contrario

TH = 0; // No meto PWM, motor parado

delay_ms(2000); // Tiempo que el motor estará girando

TH = 64; // Cambiamos el valor de la PWM

delay_ms(2000); // Tiempo que el motor estará girando

TH = 500; // Cambiamos el valor de la PWM

delay_ms(2000); // Tiempo que el motor estará girando

TH = 1000; // Cambiamos el valor de la PWM

delay_ms(2000); // Tiempo que el motor estará girando

} // Cierro el While

} // Cierro el programa principal

Page 46: PROYECTO: Velocista y coche teledirigido · PROYECTO: Velocista y coche teledirigido Departamento de Electricidad y Electrónica Ciclo Formativo de Grado Superior: Desarrollo de Productos

Ciclo Superior de Desarrollo de Productos Electrónicos

Daniel García Bravo

I.E.S. Joan Miró

46

6.2.- Programas de funcionamiento del robot

6.2.1.- Programa del robot velocista

Con este programa controlamos el robot en modo velocista.

Dado que por falta de tiempo no se puede adjuntar el programa del coche

teledirigido, este es el programa con el cual nuestro robot funciona.

6.2.1.1.- Diagramas de flujo

Page 47: PROYECTO: Velocista y coche teledirigido · PROYECTO: Velocista y coche teledirigido Departamento de Electricidad y Electrónica Ciclo Formativo de Grado Superior: Desarrollo de Productos

Ciclo Superior de Desarrollo de Productos Electrónicos

Daniel García Bravo

I.E.S. Joan Miró

47

Page 48: PROYECTO: Velocista y coche teledirigido · PROYECTO: Velocista y coche teledirigido Departamento de Electricidad y Electrónica Ciclo Formativo de Grado Superior: Desarrollo de Productos

Ciclo Superior de Desarrollo de Productos Electrónicos

Daniel García Bravo

I.E.S. Joan Miró

48

Page 49: PROYECTO: Velocista y coche teledirigido · PROYECTO: Velocista y coche teledirigido Departamento de Electricidad y Electrónica Ciclo Formativo de Grado Superior: Desarrollo de Productos

Ciclo Superior de Desarrollo de Productos Electrónicos

Daniel García Bravo

I.E.S. Joan Miró

49

Page 50: PROYECTO: Velocista y coche teledirigido · PROYECTO: Velocista y coche teledirigido Departamento de Electricidad y Electrónica Ciclo Formativo de Grado Superior: Desarrollo de Productos

Ciclo Superior de Desarrollo de Productos Electrónicos

Daniel García Bravo

I.E.S. Joan Miró

50

6.2.1.2.- Programa

// Velocista

// ************************ Directivas de procesado ************************

// (Controlan la conversión del programa a código máquina por parte del compilador)

#include <16F876A.h> // Incluye el fichero 16F876A.h al programa tiene

// que estar en la misma carpeta del programa

// define funciones, patillas y registros.

#fuses XT,NOWDT // Define la palabra de configuración del

// microcontrolador PIC

// Trabaja con un reloj tipo XT y no utiliza perro

// guardián Wathdog

#use delay( clock = 1000000 ) // Define la frecuencia del reloj de 1 MHz

#BYTE TRISA = 0x85 // TRISA en 85h.

#BYTE portA = 0x05 // PORTB en 05h.

#BIT ra0 = 0x05.0 // RA0 en 0x05 patilla 0.

#BIT ra1 = 0x05.1 // RA1 en 0x06 patilla 1.

#BIT ra2 = 0x05.2 // RA2 en 0x06 patilla 2.

#BIT ra3 = 0x05.3 // RA3 en 0x06 patilla 3.

#BIT ra4 = 0x05.4 // RA4 en 0x06 patilla 4.

Page 51: PROYECTO: Velocista y coche teledirigido · PROYECTO: Velocista y coche teledirigido Departamento de Electricidad y Electrónica Ciclo Formativo de Grado Superior: Desarrollo de Productos

Ciclo Superior de Desarrollo de Productos Electrónicos

Daniel García Bravo

I.E.S. Joan Miró

51

#BIT ra5 = 0x05.5 // RA5 en 0x06 patilla 5.

#BIT ra6 = 0x05.6 // RA6 en 0x06 patilla 6.

#BYTE TRISB = 0x86 // TRISB en 86h.

#BYTE portB = 0x06 // PORTB en 06h.

#BIT rb0 = 0x06.0 // RB0 en 0x06 patilla 0.

#BIT rb1 = 0x06.1 // RB1 en 0x06 patilla 1.

#BIT rb2 = 0x06.2 // RB2 en 0x06 patilla 2.

#BIT rb3 = 0x06.3 // RB3 en 0x06 patilla 3.

#BIT rb4 = 0x06.4 // RB4 en 0x06 patilla 4.

#BIT rb5 = 0x06.5 // RB5 en 0x06 patilla 5.

#BIT rb6 = 0x06.6 // RB6 en 0x06 patilla 6.

#BIT rb7 = 0x06.7 // RB7 en 0x06 patilla 7.

#BYTE TRISC = 0x87 // TRISC en 87h.

#BYTE portC = 0x07 // PORTC en 07h.

#BIT rc0 = 0x07.0 // RC0 en 0x06 patilla 0.

#BIT rc1 = 0x07.1 // RC1 en 0x06 patilla 1.

#BIT rc2 = 0x07.2 // RC2 en 0x06 patilla 2.

#BIT rc3 = 0x07.3 // RC3 en 0x06 patilla 3.

#BIT rc4 = 0x07.4 // RC4 en 0x06 patilla 4.

#BIT rc5 = 0x07.5 // RC5 en 0x06 patilla 5.

#BIT rc6 = 0x07.6 // RC6 en 0x06 patilla 6.

#BIT rc7 = 0x07.7 // RC7 en 0x06 patilla 7.

int16 TH = 65535; // Variable para la PWM

// ******************** Declaración de funciones ***************************

void velocista(); // Subprograma del velocista

void Rec0 (); // Subprograma de rectificación

void Rec1 (); // Subprograma de rectificación

void Rec2 (); // Subprograma de rectificación

void Rec3 (); // Subprograma de rectificación

void Rec4 (); // Subprograma de rectificación

void Rec5 (); // Subprograma de rectificación

void Rec6 (); // Subprograma de rectificación

void Rec7 (); // Subprograma de rectificación

void Rec8 (); // Subprograma de rectificación

void Rec9 (); // Subprograma de rectificación

void Rec10 (); // Subprograma de rectificación

void Rec11 (); // Subprograma de rectificación

void Rec12 (); // Subprograma de rectificación

void Rec13 (); // Subprograma de rectificación

void Rec14 (); // Subprograma de rectificación

Page 52: PROYECTO: Velocista y coche teledirigido · PROYECTO: Velocista y coche teledirigido Departamento de Electricidad y Electrónica Ciclo Formativo de Grado Superior: Desarrollo de Productos

Ciclo Superior de Desarrollo de Productos Electrónicos

Daniel García Bravo

I.E.S. Joan Miró

52

// ******************* Función principal o programa principal *****************

void main()

{

// ************ Configuración de todas las entradas y salidas y resetearlas *********

TRISA = 0B11111111; // Defines Puerto A como entrada de datos.

TRISB = 0B00000011; // Defines rb0 y rb1 como entradas y el resto

// del Puerto B como salidas

TRISC = 0B10110001; // Defines rc6, rc2 y rc1 como salidas y rc7,

// rc5 y rc0 como entradas; rc4 y rc3 no tocar

rb4 = 0;

rb5 = 0;

rb6 = 0;

rb7 = 0;

rc3 = 0;

rc6 = 0; // Reseteo todas estas salidas

setup_timer_2(T2_DIV_BY_16,249,1);

// setup_timer(Prescaler,PR2,Postscaler)

// Configuracion timer2. Si el Periodo = 16mS ----> T = 16000uS

// T = [PR2+1] x Tcm x Postscaler x Prescaler

// PR2 puede valer de 0 a 255.

// Tcm es el tiempo de Ciclo Maquina. Tcm = 4/Fosc = 4/1.000.000 hz = 4uS.

// Prescaler puede valer 1,4,16

// Postscaler puede valer 1.

// 16000uS = [PR2+1] x 4 x 16 x 1

// PR2 =[T/(Tcm x Preescaler x Postscaler)]-1

// PR2 =[16000uS/(4uS x 16 x 1)]-1 = 249 (en C 249)

setup_ccp1(CCP_PWM); // CCP1 en modo PWM (Salida por RC2)

setup_ccp2(CCP_PWM); // CCP2 en modo PWM (Salida por RC1)

TH = 0; // Pongo la PWM a 0

set_pwm1_duty(TH); // por la patilla RC2

TH = 0; // Pongo la PWM a 0

set_pwm2_duty(TH); // por la patilla RC1

velocista(); // Ejecutamos el subprograma de velocista

Page 53: PROYECTO: Velocista y coche teledirigido · PROYECTO: Velocista y coche teledirigido Departamento de Electricidad y Electrónica Ciclo Formativo de Grado Superior: Desarrollo de Productos

Ciclo Superior de Desarrollo de Productos Electrónicos

Daniel García Bravo

I.E.S. Joan Miró

53

// ******************* Subprograma del Velocista *************************

void velocista(void)

{

while (rb1 == 1 ){ // Mientras el botón de inicio no se pulse

// ejecuta lo siguiente

if (rc0 == 1 && ra0 == 1 && ra1 == 1 && ra2 == 1 && ra3 == 1 &&

ra4 == 1 && ra5 == 1 && rc5 == 1){

// Si todos los sensores leen blanco, ejecuta lo siguiente:

rb2 = 1; // Apago led D14

rb3 = 0; // Enciendo led D13

} // Cierro el if

else { // Si el if no es cierto, ejecuta lo siguiente

rb2 = 0; // Enciendo led D14

rb3 = 0; // Enciendo led D13

} // Cierro el else

} // Cierro el While

while (1){ // Bucle infinito del velocista

rb2 = 1;

rb3 = 1; // Apago leds

if (rc0 == 1 && ra0 == 1 && ra1 == 1 && ra2 == 1 && ra3 == 1 &&

ra4 == 1 && ra5 == 1 && rc5 == 1)

Rec0(); // Si la condición es verdadera ejecuta el

// siguiente subprograma

if (ra3 == 0) // Si la condición es verdadera ejecuta el

Rec1(); // siguiente subprograma

if (ra3 && ra4 == 0) // Si la condición es verdadera ejecuta el

Rec2(); // siguiente subprograma

if (ra4 == 0) // Si la condición es verdadera ejecuta el

Rec3(); // siguiente subprograma

if (ra4 && ra5== 0) // Si la condición es verdadera ejecuta el

Rec4(); // siguiente subprograma

if (ra5 == 0) // Si la condición es verdadera ejecuta el

Rec5(); // siguiente subprograma

Page 54: PROYECTO: Velocista y coche teledirigido · PROYECTO: Velocista y coche teledirigido Departamento de Electricidad y Electrónica Ciclo Formativo de Grado Superior: Desarrollo de Productos

Ciclo Superior de Desarrollo de Productos Electrónicos

Daniel García Bravo

I.E.S. Joan Miró

54

if (ra5 && rc5 == 0) // Si la condición es verdadera ejecuta el

Rec6(); // siguiente subprograma

if (rc5 == 0) // Si la condición es verdadera ejecuta el

Rec7(); // siguiente subprograma

if (ra2 == 0) // Si la condición es verdadera ejecuta el

Rec8(); // siguiente subprograma

if (ra2 && ra1 == 0) // Si la condición es verdadera ejecuta el

Rec9(); // siguiente subprograma

if (ra1 == 0) // Si la condición es verdadera ejecuta el

Rec10(); // siguiente subprograma

if (ra1 && ra0 == 0) // Si la condición es verdadera ejecuta el

Rec11(); // siguiente subprograma

if (ra0 == 0) // Si la condición es verdadera ejecuta el

Rec12(); // siguiente subprograma

if (ra0 && rc0 == 0) // Si la condición es verdadera ejecuta el

Rec13(); // siguiente subprograma

if (rc0 == 0) // Si la condición es verdadera ejecuta el

Rec14(); // siguiente subprograma

} // Cierro el while(1)

} // Cierro el programa velocista

// ********************************* Rec0 *****************************

void Rec0(void) // Subprograma de rectificado 0

{

rb4 = 1; // Activamos la patilla RB4

rb5 = 0; // Activo el motor izquierdo

rb6 = 1; // Activamos la patilla RB6

rb7 = 0; // Activo motor derecho

TH = 1000;

set_pwm1_duty(TH); // Valor de la PWM para el motor izquierdo

TH = 1000;

set_pwm2_duty(TH); // Valor de la PWM para el motor derecho

Page 55: PROYECTO: Velocista y coche teledirigido · PROYECTO: Velocista y coche teledirigido Departamento de Electricidad y Electrónica Ciclo Formativo de Grado Superior: Desarrollo de Productos

Ciclo Superior de Desarrollo de Productos Electrónicos

Daniel García Bravo

I.E.S. Joan Miró

55

delay_ms(20); // Refresco de la PWM

} // Cierro el subprogama

// ********************************* Rec1 *****************************

void Rec1(void) // Subprograma de rectificado 1

{

rb4 = 1; // Activamos la patilla RB4

rb5 = 0; // Activo el motor izquierdo

rb6 = 1; // Activamos la patilla RB6

rb7 = 0; // Activo motor derecho

TH = 1000;

set_pwm1_duty(TH); // Valor de la PWM para el motor izquierdo

TH = 500;

set_pwm2_duty(TH); // Valor de la PWM para el motor derecho

delay_ms(20); // Refresco de la PWM

} // Cierro el subprogama

// *************************** Rec2 *******************************

void Rec2(void) // Subprograma de rectificado 2

{

rb4 = 1; // Activamos la patilla RB4

rb5 = 0; // Activo el motor izquierdo

rb6 = 1; // Activamos la patilla RB6

rb7 = 0; // Activo motor derecho

TH = 1000;

set_pwm1_duty(TH); // Valor de la PWM para el motor izquierdo

TH = 400;

set_pwm2_duty(TH); // Valor de la PWM para el motor derecho

delay_ms(20); // Refresco de la PWM

} // Cierro el subprogama

Page 56: PROYECTO: Velocista y coche teledirigido · PROYECTO: Velocista y coche teledirigido Departamento de Electricidad y Electrónica Ciclo Formativo de Grado Superior: Desarrollo de Productos

Ciclo Superior de Desarrollo de Productos Electrónicos

Daniel García Bravo

I.E.S. Joan Miró

56

// **************************** Rec3 ***********************************

void Rec3(void) // Subprograma de rectificado 3

{

rb4 = 1; // Activamos la patilla RB4

rb5 = 0; // Activo el motor izquierdo

rb6 = 1; // Activamos la patilla RB6

rb7 = 0; // Activo motor derecho

TH = 1000;

set_pwm1_duty(TH); // Valor de la PWM para el motor izquierdo

TH = 300;

set_pwm2_duty(TH); // Valor de la PWM para el motor derecho

delay_ms(20); // Refresco de la PWM

} // Cierro el subprogama

// **************************** Rec4 **********************************

void Rec4(void) // Subprograma de rectificado 4

{

rb4 = 1; // Activamos la patilla RB4

rb5 = 0; // Activo el motor izquierdo

rb6 = 1; // Activamos la patilla RB6

rb7 = 0; // Activo motor derecho

TH = 1000;

set_pwm1_duty(TH); // Valor de la PWM para el motor izquierdo

TH = 200;

set_pwm2_duty(TH); // Valor de la PWM para el motor derecho

delay_ms(20); // Refresco de la PWM

} // Cierro el subprogama

// **************************** Rec5 ********************************

void Rec5(void) // Subprograma de rectificado 5

{

rb4 = 1; // Activamos la patilla RB4

rb5 = 0; // Activo el motor izquierdo

Page 57: PROYECTO: Velocista y coche teledirigido · PROYECTO: Velocista y coche teledirigido Departamento de Electricidad y Electrónica Ciclo Formativo de Grado Superior: Desarrollo de Productos

Ciclo Superior de Desarrollo de Productos Electrónicos

Daniel García Bravo

I.E.S. Joan Miró

57

rb6 = 1; // Activamos la patilla RB6

rb7 = 0; // Activo motor derecho

TH = 1000;

set_pwm1_duty(TH); // Valor de la PWM para el motor izquierdo

TH = 150;

set_pwm2_duty(TH); // Valor de la PWM para el motor derecho

delay_ms(20); // Refresco de la PWM

} // Cierro el subprogama

// ******************************* Rec6 ********************************

void Rec6(void) // Subprograma de rectificado 6

{

rb4 = 1; // Activamos la patilla RB4

rb5 = 0; // Activo el motor izquierdo

rb6 = 1; // Activamos la patilla RB6

rb7 = 0; // Activo motor derecho

TH = 1000;

set_pwm1_duty(TH); // Valor de la PWM para el motor izquierdo

TH = 100;

set_pwm2_duty(TH); // Valor de la PWM para el motor derecho

delay_ms(20); // Refresco de la PWM

} // Cierro el subprogama

// **************************** Rec7 ***********************************

void Rec7(void) // Subprograma de rectificado 7

{

rb4 = 1; // Activamos la patilla RB4

rb5 = 0; // Activo el motor izquierdo

rb6 = 1; // Activamos la patilla RB6

rb7 = 0; // Activo motor derecho

TH = 1000;

set_pwm1_duty(TH); // Valor de la PWM para el motor izquierdo

Page 58: PROYECTO: Velocista y coche teledirigido · PROYECTO: Velocista y coche teledirigido Departamento de Electricidad y Electrónica Ciclo Formativo de Grado Superior: Desarrollo de Productos

Ciclo Superior de Desarrollo de Productos Electrónicos

Daniel García Bravo

I.E.S. Joan Miró

58

TH = 50;

set_pwm2_duty(TH); // Valor de la PWM para el motor derecho

delay_ms(20); // Refresco de la PWM

} // Cierro el subprogama

// *************************** Rec8 ************************************

void Rec8(void) // Subprograma de rectificado 8

{

rb4 = 1; // Activamos la patilla RB4

rb5 = 0; // Activo el motor izquierdo

rb6 = 1; // Activamos la patilla RB6

rb7 = 0; // Activo motor derecho

TH = 500;

set_pwm1_duty(TH); // Valor de la PWM para el motor izquierdo

TH = 1000;

set_pwm2_duty(TH); // Valor de la PWM para el motor derecho

delay_ms(20); // Refresco de la PWM

} // Cierro el subprogama

// ****************************** Rec9 **********************************

void Rec9(void) // Subprograma de rectificado 9

{

rb4 = 1; // Activamos la patilla RB4

rb5 = 0; // Activo el motor izquierdo

rb6 = 1; // Activamos la patilla RB6

rb7 = 0; // Activo motor derecho

TH = 400;

set_pwm1_duty(TH); // Valor de la PWM para el motor izquierdo

TH = 1000;

set_pwm2_duty(TH); // Valor de la PWM para el motor derecho

delay_ms(20); // Refresco de la PWM

} // Cierro el subprogama

Page 59: PROYECTO: Velocista y coche teledirigido · PROYECTO: Velocista y coche teledirigido Departamento de Electricidad y Electrónica Ciclo Formativo de Grado Superior: Desarrollo de Productos

Ciclo Superior de Desarrollo de Productos Electrónicos

Daniel García Bravo

I.E.S. Joan Miró

59

// **************************** Rec10 **********************************

void Rec10(void) // Subprograma de rectificado 10

{

rb4 = 1; // Activamos la patilla RB4

rb5 = 0; // Activo el motor izquierdo

rb6 = 1; // Activamos la patilla RB6

rb7 = 0; // Activo motor derecho

TH = 300;

set_pwm1_duty(TH); // Valor de la PWM para el motor izquierdo

TH = 1000;

set_pwm2_duty(TH); // Valor de la PWM para el motor derecho

delay_ms(20); // Refresco de la PWM

} // Cierro el subprogama

// ***************************** Rec11 **********************************

void Rec11(void) // Subprograma de rectificado 11

{

rb4 = 1; // Activamos la patilla RB4

rb5 = 0; // Activo el motor izquierdo

rb6 = 1; // Activamos la patilla RB6

rb7 = 0; // Activo motor derecho

TH = 200;

set_pwm1_duty(TH); // Valor de la PWM para el motor izquierdo

TH = 1000;

set_pwm2_duty(TH); // Valor de la PWM para el motor derecho

delay_ms(20); // Refresco de la PWM

} // Cierro el subprogama

// ************************** Rec12 *********************************

void Rec12(void) // Subprograma de rectificado 12

{

rb4 = 1; // Activamos la patilla RB4

rb5 = 0; // Activo el motor izquierdo

Page 60: PROYECTO: Velocista y coche teledirigido · PROYECTO: Velocista y coche teledirigido Departamento de Electricidad y Electrónica Ciclo Formativo de Grado Superior: Desarrollo de Productos

Ciclo Superior de Desarrollo de Productos Electrónicos

Daniel García Bravo

I.E.S. Joan Miró

60

rb6 = 1; // Activamos la patilla RB6

rb7 = 0; // Activo motor derecho

TH = 150;

set_pwm1_duty(TH); // Valor de la PWM para el motor izquierdo

TH = 1000;

set_pwm2_duty(TH); // Valor de la PWM para el motor derecho

delay_ms(20); // Refresco de la PWM

} // Cierro el subprogama

// ******************************* Rec13 *******************************

void Rec13(void) // Subprograma de rectificado 13

{

rb4 = 1; // Activamos la patilla RB4

rb5 = 0; // Activo el motor izquierdo

rb6 = 1; // Activamos la patilla RB6

rb7 = 0; // Activo motor derecho

TH = 100;

set_pwm1_duty(TH); // Valor de la PWM para el motor izquierdo

TH = 1000;

set_pwm2_duty(TH); // Valor de la PWM para el motor derecho

delay_ms(20); // Refresco de la PWM

} // Cierro el subprogama

// ******************************** Rec14 *****************************

void Rec14(void) // Subprograma de rectificado 14

{

rb4 = 1; // Activamos la patilla RB4

rb5 = 0; // Activo el motor izquierdo

rb6 = 1; // Activamos la patilla RB6

rb7 = 0; // Activo motor derecho

TH = 50;

set_pwm1_duty(TH); // Valor de la PWM para el motor izquierdo

Page 61: PROYECTO: Velocista y coche teledirigido · PROYECTO: Velocista y coche teledirigido Departamento de Electricidad y Electrónica Ciclo Formativo de Grado Superior: Desarrollo de Productos

Ciclo Superior de Desarrollo de Productos Electrónicos

Daniel García Bravo

I.E.S. Joan Miró

61

TH = 1000;

set_pwm2_duty(TH); // Valor de la PWM para el motor derecho

delay_ms(20); // Refresco de la PWM

} // Cierro el subprogama

6.2.2.- Programa del coche teledirigido

Con este programa se lograra controlar el robot a través de un mando. Dado que no

ha dado tiempo, el proyecto se deja abierto para futuras modificaciones.

6.2.2.1.- Diagrama de flujo

6.2.2.2.- Programa

Page 62: PROYECTO: Velocista y coche teledirigido · PROYECTO: Velocista y coche teledirigido Departamento de Electricidad y Electrónica Ciclo Formativo de Grado Superior: Desarrollo de Productos

Ciclo Superior de Desarrollo de Productos Electrónicos

Daniel García Bravo

I.E.S. Joan Miró

62

7.- Fabricación de placas

Para fabricar las placas se ha empleado el mismo sistema:

1º Cortar la placa a medida.

2º Hacer los agujeros de la placa.

3º Positivarla.

4º Dejarla en el horno a 70ºC, durante 15 minutos.

5º Centrar los fotolitos en la placa e insolarla durante, aproximadamente, unos 230

segundos.

6º Revelarla en sosa.

7º Grabado de la placa.

Las placas que se muestran aquí no son el tamaño real. Todas las placas, menos la

placa de sensores, tienen el mismo tamaño, 75x70. A continuación se muestra el

esquema eléctrico que se ha utilizado para la fabricación y su placa correspondiente.

Las placas se han puesto por la cara de componentes, top copper y por la cara de

pistas, botton copper.

Se muestra el siguiente dibujo con las dimensiones de las placas de la fuente de

alimentación-adaptador de señales PC-UC, placa de control y placa de potencia, con las

distancias de los agujeros de sujeción.

Page 63: PROYECTO: Velocista y coche teledirigido · PROYECTO: Velocista y coche teledirigido Departamento de Electricidad y Electrónica Ciclo Formativo de Grado Superior: Desarrollo de Productos

Ciclo Superior de Desarrollo de Productos Electrónicos

Daniel García Bravo

I.E.S. Joan Miró

63

7. 1.- Fabricación de la fuente de alimentación-adaptador de señales PC-UC

7.1.1.- Esquema eléctrico

Page 64: PROYECTO: Velocista y coche teledirigido · PROYECTO: Velocista y coche teledirigido Departamento de Electricidad y Electrónica Ciclo Formativo de Grado Superior: Desarrollo de Productos

Ciclo Superior de Desarrollo de Productos Electrónicos

Daniel García Bravo

I.E.S. Joan Miró

64

7.1.2.- Cara de componentes

En esta placa no está colocada la disipación de cobre del LM350K, para que se

pueda distinguir bien la distribución de los componentes. Dicha disipación debe ocupar

todo el ancho del LM350K.

Page 65: PROYECTO: Velocista y coche teledirigido · PROYECTO: Velocista y coche teledirigido Departamento de Electricidad y Electrónica Ciclo Formativo de Grado Superior: Desarrollo de Productos

Ciclo Superior de Desarrollo de Productos Electrónicos

Daniel García Bravo

I.E.S. Joan Miró

65

7.1.3.- Cara de pistas bottom copper

Page 66: PROYECTO: Velocista y coche teledirigido · PROYECTO: Velocista y coche teledirigido Departamento de Electricidad y Electrónica Ciclo Formativo de Grado Superior: Desarrollo de Productos

Ciclo Superior de Desarrollo de Productos Electrónicos

Daniel García Bravo

I.E.S. Joan Miró

66

7. 2.- Fabricación de la placa de control

7.2.1.- Esquema eléctrico

Page 67: PROYECTO: Velocista y coche teledirigido · PROYECTO: Velocista y coche teledirigido Departamento de Electricidad y Electrónica Ciclo Formativo de Grado Superior: Desarrollo de Productos

Ciclo Superior de Desarrollo de Productos Electrónicos

Daniel García Bravo

I.E.S. Joan Miró

67

7.2.2.- Componentes

Page 68: PROYECTO: Velocista y coche teledirigido · PROYECTO: Velocista y coche teledirigido Departamento de Electricidad y Electrónica Ciclo Formativo de Grado Superior: Desarrollo de Productos

Ciclo Superior de Desarrollo de Productos Electrónicos

Daniel García Bravo

I.E.S. Joan Miró

68

7.2.3.- Cara de componentes y de pistas top copper

Page 69: PROYECTO: Velocista y coche teledirigido · PROYECTO: Velocista y coche teledirigido Departamento de Electricidad y Electrónica Ciclo Formativo de Grado Superior: Desarrollo de Productos

Ciclo Superior de Desarrollo de Productos Electrónicos

Daniel García Bravo

I.E.S. Joan Miró

69

7.2.4.- Cara de pistas bottom copper

Page 70: PROYECTO: Velocista y coche teledirigido · PROYECTO: Velocista y coche teledirigido Departamento de Electricidad y Electrónica Ciclo Formativo de Grado Superior: Desarrollo de Productos

Ciclo Superior de Desarrollo de Productos Electrónicos

Daniel García Bravo

I.E.S. Joan Miró

70

7. 3.- Fabricación de la placa de potencia

7.3.1.- Esquema eléctrico

Page 71: PROYECTO: Velocista y coche teledirigido · PROYECTO: Velocista y coche teledirigido Departamento de Electricidad y Electrónica Ciclo Formativo de Grado Superior: Desarrollo de Productos

Ciclo Superior de Desarrollo de Productos Electrónicos

Daniel García Bravo

I.E.S. Joan Miró

71

7.3.2.- Componentes

Page 72: PROYECTO: Velocista y coche teledirigido · PROYECTO: Velocista y coche teledirigido Departamento de Electricidad y Electrónica Ciclo Formativo de Grado Superior: Desarrollo de Productos

Ciclo Superior de Desarrollo de Productos Electrónicos

Daniel García Bravo

I.E.S. Joan Miró

72

7.3.3.- Cara de componentes y de pistas top copper

Page 73: PROYECTO: Velocista y coche teledirigido · PROYECTO: Velocista y coche teledirigido Departamento de Electricidad y Electrónica Ciclo Formativo de Grado Superior: Desarrollo de Productos

Ciclo Superior de Desarrollo de Productos Electrónicos

Daniel García Bravo

I.E.S. Joan Miró

73

7.3.4.- Cara de pistas bottom copper

Page 74: PROYECTO: Velocista y coche teledirigido · PROYECTO: Velocista y coche teledirigido Departamento de Electricidad y Electrónica Ciclo Formativo de Grado Superior: Desarrollo de Productos

Ciclo Superior de Desarrollo de Productos Electrónicos

Daniel García Bravo

I.E.S. Joan Miró

74

7. 4.- Fabricación de la placa de sensores

Esta placa siempre está en constante cambio, hasta que se da con la placa que mejor

nos convenga. Después de muchos prototipos, aquí se expone la que mejor hemos visto

que funciona. El ancho de las placas se intenta que tenga la misma medida, 48mm, para

que nuestro robot no sobrepase de las medidas, y también los taladros, que es por donde

sujetamos la placa a la carrocería del robot. Lo que sí que varía es el largo de la placa,

debido, en gran parte, a cómo se hayan distribuido los componentes por dicha placa.

El esquema eléctrico es para todas las placas el mismo, y como anteriormente se ha

comentado, el valor de las resistencias puede variar, siendo, el que aparece en los

esquemas eléctricos, el valor montado o no montado.

7.4.1.- Esquema eléctrico

Page 75: PROYECTO: Velocista y coche teledirigido · PROYECTO: Velocista y coche teledirigido Departamento de Electricidad y Electrónica Ciclo Formativo de Grado Superior: Desarrollo de Productos

Ciclo Superior de Desarrollo de Productos Electrónicos

Daniel García Bravo

I.E.S. Joan Miró

75

7.4.2.- Medidas

7.4.3.- Componentes

7.4.4.- Cara de componentes y de pistas top copper

Page 76: PROYECTO: Velocista y coche teledirigido · PROYECTO: Velocista y coche teledirigido Departamento de Electricidad y Electrónica Ciclo Formativo de Grado Superior: Desarrollo de Productos

Ciclo Superior de Desarrollo de Productos Electrónicos

Daniel García Bravo

I.E.S. Joan Miró

76

7.4.5.- Cara de pistas bottom copper

Page 77: PROYECTO: Velocista y coche teledirigido · PROYECTO: Velocista y coche teledirigido Departamento de Electricidad y Electrónica Ciclo Formativo de Grado Superior: Desarrollo de Productos

Ciclo Superior de Desarrollo de Productos Electrónicos

Daniel García Bravo

I.E.S. Joan Miró

77

7. 5.- Fabricación del mando a distancia

7.5.1.- Esquema eléctrico

7.5.2.- Medidas

Page 78: PROYECTO: Velocista y coche teledirigido · PROYECTO: Velocista y coche teledirigido Departamento de Electricidad y Electrónica Ciclo Formativo de Grado Superior: Desarrollo de Productos

Ciclo Superior de Desarrollo de Productos Electrónicos

Daniel García Bravo

I.E.S. Joan Miró

78

7.5.3.- Componentes

7.5.4.- Cara de componentes y de pistas top copper

Page 79: PROYECTO: Velocista y coche teledirigido · PROYECTO: Velocista y coche teledirigido Departamento de Electricidad y Electrónica Ciclo Formativo de Grado Superior: Desarrollo de Productos

Ciclo Superior de Desarrollo de Productos Electrónicos

Daniel García Bravo

I.E.S. Joan Miró

79

7.5.5.- Cara de pistas bottom copper

Page 80: PROYECTO: Velocista y coche teledirigido · PROYECTO: Velocista y coche teledirigido Departamento de Electricidad y Electrónica Ciclo Formativo de Grado Superior: Desarrollo de Productos

Ciclo Superior de Desarrollo de Productos Electrónicos

Daniel García Bravo

I.E.S. Joan Miró

80

8.- Carrocería

Page 81: PROYECTO: Velocista y coche teledirigido · PROYECTO: Velocista y coche teledirigido Departamento de Electricidad y Electrónica Ciclo Formativo de Grado Superior: Desarrollo de Productos

Ciclo Superior de Desarrollo de Productos Electrónicos

Daniel García Bravo

I.E.S. Joan Miró

81

9.- Lista de componentes y coste económico

LISTA DE COMPONENTES DEL VELOCISTA

Titulo: Velocista

Autor: Daniel García Bravo

Numero de componentes: 169

Cantidad Referencia: Valor: Precio

Unitario

Precio

Total

38 Resistencias

18

R1, R3, R5, R7, R9, R11,

220 0,05 0,9 R13-R15, R17, R22, R24, R26,

R28, R30, R32, R34, R36

16

R2, R4, R6, R8, R10, R12,

10k 0,05 0,8 R16, R18, R23, R25, R27, R29,

R31, R33, R35, R37

1 R19 100 0,05 0,05

2 R20, R21 4.7k 0,05 0,1

1 R38 240 0,05 0,05

15 Condensadores

1 C1 2200uF 0,5 0,5

6 C2, C4, C9-C11, C14 100nF 0,05 0,3

1 C3 220uF 0,2 0,2

4 C5-C8 1uF 0,1 0,4

2 C12, C13 15pF 0,05 0,1

1 C15 10uF 0,05 0,05

12 Circuitos integrados

1 U1 LM350K 4 4

1 U2 MAX232 1,5 1,5

6 U3-U8 Optoacopladores 0,35 2,1

1 U9 L298 3,5 3,5

2 U11, U12 74HC14 0,5 1

1 U13 PIC16F876 4,5 4,5

Cantidad Referencia: Valor: Precio

Unitario

Precio

Total

4 Transistores

4 Q1-Q4 BD139 0,35 1,4

15 Diodos

11 D1, D2, D4-D12 1N4007 0,2 2,2

2 D3, LED RASTREADOR Led Verde 0,15 0,3

2 D13, D15 Led Amarillo 0,15 0,3

Otros Componentes

1 ANTENA Bornier1 0,01 0,01

Page 82: PROYECTO: Velocista y coche teledirigido · PROYECTO: Velocista y coche teledirigido Departamento de Electricidad y Electrónica Ciclo Formativo de Grado Superior: Desarrollo de Productos

Ciclo Superior de Desarrollo de Productos Electrónicos

Daniel García Bravo

I.E.S. Joan Miró

82

1 BATERIA Bornier2 0,3 0,3

2 INICIO, RESET Pulsador 0,4 0,8

6 J1, J1A, J2, J2A, J3, J3A Conn-H10 0,5 3

4 J4-J7 Conn-Sil4 0,1 0,4

1 J11 Conn-D9m 2,5 2,5

3 JP, JP1, JP21 Bornier de 2 0,3 0,9

4 JUMPER1-JUMPER4 Conn-Sil3 0,15 0,6

4 MASA1-MASA4 Bornier de 1 0,01 0,04

2 MDE, MIZ Bornier de 2 0,3 0,6

1 ON-OFF Interruptor 0,4 0,4

8 OP1-OP8 CNY70 0,35 2,8

1 RF1 Cebek-C-0504 7 7

1 RV1 5k 1 1

1 X1 Cristal 3 3

4 Br Bridas de Plástico 0,1 0,4

10 T3 Tuercas de métrica 3 0,02 0,2

1 SP Soporte de plástico 1 1

3 Placas Placas de C.I. de 70x75 6 18

1 Placas Placa de C.I. de 148x48 2 2

2 Ruedas Ruedas de espuma 2,5 5

4 Fajas Fajas 0,5 2

18 Separadores Separadores de plástico 0,05 0,9

2 Motores Motores de C.C. 9 18

Total 95,1

Page 83: PROYECTO: Velocista y coche teledirigido · PROYECTO: Velocista y coche teledirigido Departamento de Electricidad y Electrónica Ciclo Formativo de Grado Superior: Desarrollo de Productos

Ciclo Superior de Desarrollo de Productos Electrónicos

Daniel García Bravo

I.E.S. Joan Miró

83

LISTA DE COMPONENTES DEL MANDO

Titulo: Velocista

Autor: Daniel García Bravo

Numero de componentes: 46

Cantidad Referencia: Valor: Precio

Unitario

Precio

Total

7 Resistencias

6 R1E-R6E 220 0,05 0,3

1 R7E 2.2k 0,05 0,05

4 Condensadores

2 C1E, C2E 220uF 0,2 0,4

2 C3E, C4E 15pF 0,05 0,1

2 Circuitos integrados

1 U1E PIC16F876 4,5 4,5

1 U2E 7805 1 1

1 Transistor

1 Q1E BD136 0,35 0,35

7 Diodos

2 D1E, D5E Led Amarillo 0,15 0,3

2 D2E, D3E Led Verde 0,15 0,3

2 D4E, D7E Led Rojo 0,15 0,3

1 D6E 1N4007 0,2 0,2

Page 84: PROYECTO: Velocista y coche teledirigido · PROYECTO: Velocista y coche teledirigido Departamento de Electricidad y Electrónica Ciclo Formativo de Grado Superior: Desarrollo de Productos

Ciclo Superior de Desarrollo de Productos Electrónicos

Daniel García Bravo

I.E.S. Joan Miró

84

Cantidad Referencia: Valor: Precio

Unitario

Precio

Total

Otros Componentes

1 ANTENA Bornier1 0,01 0,01

1 BATERIA 9 VOLTIOS Bateria 1 1

1 RF1 Cebek-C-0503 7 7

5 SW1E-SW5E Pulsadores 0,2 1

1 SW6E Interruptor 1 1

1 X1 Cristal 3 3

1 Placas Placa de C.I. de 110x50 2 2

4 Separadores Separadores metalicos 0,5 2

4 Tuercas Tuercas M3 0,1 0,4

4 Tornillos Tornillos M3 x 10 mm 0,1 0,4

1 Porta baterias Porta baterias 0,5 0,5

1 SP Soporte de plástico 110x50 1 1

Total 27,11

Page 85: PROYECTO: Velocista y coche teledirigido · PROYECTO: Velocista y coche teledirigido Departamento de Electricidad y Electrónica Ciclo Formativo de Grado Superior: Desarrollo de Productos

Ciclo Superior de Desarrollo de Productos Electrónicos

Daniel García Bravo

I.E.S. Joan Miró

85

10.- Coste económico total

Coste del Proyecto Rastreador

Tareas Horas Coste por hora (€) Total (€)

Desarrollo Hardware 30 30 900

Desarrollo Software 25 30 750

Búsqueda de materiales 4 30 120

Montaje del prototipo 30 30 900

Pruebas del prototipo. 50 30 1500

Componentes del velocista - - 95,1

Componentes del mando - - 27,11

Documentación 20 30 600

TOTAL 159 - 4892,21

Page 86: PROYECTO: Velocista y coche teledirigido · PROYECTO: Velocista y coche teledirigido Departamento de Electricidad y Electrónica Ciclo Formativo de Grado Superior: Desarrollo de Productos

Ciclo Superior de Desarrollo de Productos Electrónicos

Daniel García Bravo

I.E.S. Joan Miró

86

11.- Referencias

Título: Compilador C CCS y simulador PORTEUS para Microcontroladores PIC.

Autor: Eduardo García Breijo.

Editorial: Marcombo.

Título: Tecnología de circuitos impresos.

Autores: Claudio Fernández González, José Luis Lázaro Galilea, Ignacio Fernández

Lorenzo, Jesús Ureña Ureña, Felipe Espinosa Zapata.

Editorial: Departamento de electrónica, Universidad de Alcalá

Título: Electrónica general.

Autores: A. Carretero, J. Ferrero, J.A. Sánchez-Infantes, P. Sánchez-Infantes.

Editorial: Editex.

Título: Lógica digital y microprogramable.

Autores: Fernando Remiro Domínguez, Antonio J.Gil Padilla, Luis M. Cuesta García.

Editorial: Mc Graw Hill.

Page 87: PROYECTO: Velocista y coche teledirigido · PROYECTO: Velocista y coche teledirigido Departamento de Electricidad y Electrónica Ciclo Formativo de Grado Superior: Desarrollo de Productos

Ciclo Superior de Desarrollo de Productos Electrónicos

Daniel García Bravo

I.E.S. Joan Miró

87

12.- Anexos técnicos

Características del microcontrolador PIC16F876A.

Características del LM350K.

Características eléctricas del inversor de giro L298.

Características de los sensores infrarrojos CNY70.

Características del MAX232.

Características eléctricas tarjeta emisora de datos CEBEK C-0503.

Características eléctricas tarjeta receptora de datos CEBEK C-504.

Curso de Robótica y otras aplicaciones en el aula de tecnología.