velocista
-
Upload
jose-luis-diaz-torres -
Category
Documents
-
view
216 -
download
0
Transcript of velocista
-
8/14/2019 velocista
1/87
PROYECTO:
Velocista y coche teledirigido
Departamento de Electricidad y Electrnica
Ciclo Formativo de Grado Superior:
Desarrollo de Productos Electrnicos
Alumno: Daniel Garca Bravo
Profesores: Pedro Alonso Sanz
Juan Dongil Garca
Alfonso Garca Gallego
Instituto: I.E.S. Joan Mir
Localidad: San Sebastin de los Reyes
Curso: 2008 / 2009
-
8/14/2019 velocista
2/87
Ciclo Superior de Desarrollo de Productos Electrnicos
Daniel Garca Bravo
I.E.S. Joan Mir
2
ndice de contenido:
1.- Introduccin 5
2.- Diagrama en bloques del robot 7
3.- Esquema elctrico del robot 8
4.- Anlisis de los Bloques 9
4.1.- Placa de alimentacin-adaptador de seales PC-UC 7 9
4.1.1.- Fuente de alimentacin 9
4.1.1.1.- Esquema elctrico de la fuente de alimentacin 10
4.1.2.- Adaptador de seales PC-UC 10
4.1.2.1.- Esquema elctrico del adaptador de seales PC-UC 11
4.2.- Placa de control 124.2.1.- Esquema elctrico de la placa de control 13
4.3.- Placa de potencia 14
4.3.1.- Esquema elctrico de la placa de potencia 17
4.4.- Placa de sensores 18
4.4.1.- Esquema elctrico de la placa de sensores 19
4.5.- Mando 20
4.5.1.- Esquema elctrico del mando 21
5.- Esquema elctrico de simulacin conProteus 22
5.1.- Simulacin del robot velocista 22
5.2.- Simulacin 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 246.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 316.1.3.3.2.- Programa 31
-
8/14/2019 velocista
3/87
-
8/14/2019 velocista
4/87
Ciclo Superior de Desarrollo de Productos Electrnicos
Daniel Garca 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.- Fabricacin del mando a distancia 77
7.5.1.- Esquema elctrico 777.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.- Carrocera 80
9.- Lista de Componentes y coste econmico 81
10.- Coste econmico total 85
11.- Referencias 86
12.- Anexos tcnicos 87
-
8/14/2019 velocista
5/87
Ciclo Superior de Desarrollo de Productos Electrnicos
Daniel Garca Bravo
I.E.S. Joan Mir
5
1.-Introduccin
El proyecto consiste en disear y fabricar un robot velocista, de tal forma que sea
capaz de seguir una lnea negra lo ms rpidamente sin salirse de ella, y adems que
tenga la posibilidad de ser controlado con un mando a distancia, por medio de va
radiofrecuencia.
El robot consta de una placa con la fuente de alimentacin y el adaptador de seales
PC-UP, de la placa de control, la placa que controla los motores y la placa de sensores.
Todas las placas, a excepcin de esta ltima, tienen las mismas medidas: 75 x 70.
Se busca que tanto la fuente de alimentacin y el adaptador de seales PC-UP y la
placa de potencia, sean comunes para todos los proyectos, haciendo que, en caso de que
una placa se avere, sea posible sustiturila por otra de otro robot, sin tener que hacer una
nueva. Las placas de control, donde se sita 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, dnde est situado el PIC. Mediante una
seal de PWM hacemos que a nuestro robot le sea posible ir ms rpido o ms lento,segn las circunstancias que deseemos. Esto lo hacemos segn la velocidad que
imprimamos a los dos motores. Si la velocidad es igual en ambos motores, el robot ir
recto, si un motor gira ms rpido que otro, har que nuestro robot gire. Tambinconseguiremos determinar la direccin del coche, hacia delante o hacia atrs.
Para poder hacer que nuestro robot sea velocista le instalaremos 8 sensores CNY70,
para localizar la lnea o evitarla, segn deseemos con nuestro programa. Tambin
corregiremos la posicin, por medio de la variacin de velocidad en los motores.
-
8/14/2019 velocista
6/87
Ciclo Superior de Desarrollo de Productos Electrnicos
Daniel Garca Bravo
I.E.S. Joan Mir
6
Para hacer que nuestro robot sea teledirigido, tenemos que crear una comunicacin
entre el PIC y el mando, con el que controlamos nuestro robot. Dado que lo hacemos
va radiofrecuencia, le instalamos un receptor y un mando a distancia que ser elemisor. Esto lo conseguimos por medio de dos mdulos: un emisor CEBEK C-0503 y
un receptor CEBEC C-0504. Ambos trabajan en modulacin AM con una frecuencia
portadora de 433,92 MHz que poseen un ancho de banda de 4 KHz.
El lenguaje de programacin para los programas del robot se realiza mediante el
lenguaje C.
El software, utilizado para el desarrollo y fabricacin de nuestro robot, ha sido el
programaProteus,que nos permite simular elsoftwarey el hardwareal mismo tiempo.
A su vez nos es posible trabajar con C y desarrollar las placas de nuestro robot, con la
posibilidad de realizar tambin la carrocera.
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, polmetro; y la otra punta, para tomar medidas, y as poder
trabajar solo con una mano.
-
8/14/2019 velocista
7/87
Ciclo Superior de Desarrollo de Productos Electrnicos
Daniel Garca Bravo
I.E.S. Joan Mir
7
2.- Diagrama en bloques del robot
-
8/14/2019 velocista
8/87
Ciclo Superior de Desarrollo de Productos Electrnicos
Daniel Garca Bravo
I.E.S. Joan Mir
8
3.- Esquema elctrico del robot
-
8/14/2019 velocista
9/87
-
8/14/2019 velocista
10/87
-
8/14/2019 velocista
11/87
Ciclo Superior de Desarrollo de Productos Electrnicos
Daniel Garca Bravo
I.E.S. Joan Mir
11
4.1.2.1.- Esquema elctrico del adaptador de seales PC-UC
VP: 9 voltios
VDD3: 5 voltios
VCC: alimentacin del integrado MAX232
RC61: comunicacin PICPI
RC71: comunicacin PC - PIC
-
8/14/2019 velocista
12/87
Ciclo Superior de Desarrollo de Productos Electrnicos
Daniel Garca 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 paraleer 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.
ElJUMPER3nos sirve para cargar el programa en el PIC a travs de un PC. Si se le
cambia de posicin nos hace recibir los datos del receptor de radio frecuencia. En la
posicin del jumper en RC7(BL) nos permite cargar programas y en la posicin 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
eleccin: 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 ledest 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 direccin
del coche en modo coche teledirigido, aunque dependiendo de lo que queremos hacer
podremos poner otras utilidades a los leds, como sealizar cuando lea lneas negras en
modo velocista. Estos dos diodos van acompaados por sus respectivas resistenciaslimitadoras de corriente: R14 y R15.
Tambin disponemos de un botn de inicio. Su funcin se basa en que, una vezsituado el robot en modo velocista correctamente sobre la pista, pulsemos dicho botn y
el robot empiece a funcionar. Pero tambin puede tener otras funciones, dependiendo
del programa cargado en el PIC.
Disponemos tambin de varios conectoresBUS 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 hbrido necesario para
poder controlar el robot a travs de un mando a distancia. Es el encargado de recibir, va
radiofrecuencia, los datos que llegan del mando a distancia.
-
8/14/2019 velocista
13/87
Ciclo Superior de Desarrollo de Productos Electrnicos
Daniel Garca Bravo
I.E.S. Joan Mir
13
El conector J1 es el que trae de la placa, de la fuente de alimentacin, 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 tambin lleva
la alimentacin 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 elctrico de la placa de control
VDD: 5 voltios
RA0: conexin sensor - PICRA1: conexin sensor - PIC
RA2: conexin sensor - PIC
RA3: conexin sensor - PIC
RA4: conexin sensor - PIC
RA5: conexin sensor - PIC
RB0:jumper modo de funcionamiento
RB1: inicio
RB2: conexin PIC - diodoledD15
RB3: conexin PIC - diodoledD13
RB4: conexin PIC - optoacoplador U3RB5: conexin PIC - optoacoplador U4
RB6: conexin PIC - optoacoplador U5
RB7: conexin PIC - optoacoplador U6
RC0: conexin sensor - PIC
RC1: conexin PIC - optoacoplador U8
RC2: conexin PIC - optoacoplador U7
RC3: conexinBUS I2C
RC5: conexin sensor - PIC
RC4: conexinBUS I2C
RC61: comunicacin PIC - PI
RC7 (BL): comunicacin PC - PIC
RC7 (RF): comunicacin PIC - Cebek
Antena: receptor de los datos emitidos
por el mando.
-
8/14/2019 velocista
14/87
Ciclo Superior de Desarrollo de Productos Electrnicos
Daniel Garca 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 alimentacin del integrado; la patilla 4, VS, es la
alimentacin 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 seales es un haz de luz
del diodo interno de los optoacopladores. Haciendo que en caso de avera en la parte de
potencia no afecte a las partes encargadas de las seales.
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 saturacin. 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 estn 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 atena 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 tensin necesaria para hacer que estos trabajen en corte o saturacin, con los
JUMPER1 y JUMPER2, llevaremos 5 9 voltios. Tras realizar las pruebas defuncionamiento, 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 prximas denuestros circuitos.
-
8/14/2019 velocista
15/87
Ciclo Superior de Desarrollo de Productos Electrnicos
Daniel Garca 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 seal 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 esquemainferior. Estamos controlando el sentido de giro del motor izquierdo por medio de los
optoacopladores U3 y U4.
A GIRO1 le llevamos un 1 lgico 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 tensin 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 lgico, lo que
supone que por la patilla OUT1 salgan 9 voltios.
Por GIRO2, introducimos un 0 lgico, el diodo emisor de infrarrojos luce y ataca la
base del fototransistor de U4, este empieza a trabajar en saturacin y lleva la tensinVDD, 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 lgico 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 filosofa que el control de giro
del motor izquierdo, hacemos que los transistores de los integrados U5 y U6 trabajen en
corte y saturacin para llevar un 0 1 lgico a las patillas correspondientes del L298.
Demostracin del giro del motor.
http://localhost/var/www/apps/conversion/tmp/scratch_6/ISIS/Giromotor.DSNhttp://localhost/var/www/apps/conversion/tmp/scratch_6/ISIS/Giromotor.DSN -
8/14/2019 velocista
16/87
Ciclo Superior de Desarrollo de Productos Electrnicos
Daniel Garca 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
conexin que lleva la PWM generada por el PIC. Cuando por Velocidad hay un nivel
bajo de la seal de PWM; el diodo emisor del optoacoplador U8; lucir, atacando labase del fototransistor, este se satura y hace que la tensin de base de Q2 vaya a masa.
Q2 se pone en corte y Q4 tambin y la patilla 1 del L298, no se pone a masa. Por lo
tanto el motor no puede girar, al no existir circulacin de corriente. Si la patilla 1 y 15
del L298 no esta a masa, el motor no puede realizar ningn giro.
Si por el contrario por la entrada Velocidad llega un nivel alto de la seal de PWM;
el diodo de U8 no luce, el fototransistor interno de U8 trabaja en corte y por lo tanto la
tensin de base del transistor Q2 no va a masa por el optoacoplador, sino que ataca la
base de Q2, trabajando en saturacin, inmediatamente despus se ataca la base del
transistor Q4 haciendo que tambin trabaje en saturacin, 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.
Demostracin del control de velocidad de un motor.
Explicacin de la PWM en la pagina 109.
Entradas al Inversor L298NSalidas del Inversor
L298NMotor
Velocidad SENSA GIRO1 GIRO2 OUT1 OUT2
0 alta impedancia X X - - Parado
1 0v 0 0 1v 1v Parado
1 0v 0 1 1v 9vSentido
antihorario
1 0v 1 0 9v 1vSentido
horario
1 0v 1 1 1v 1v Parado
http://localhost/var/www/apps/conversion/tmp/scratch_6/ISIS/velomotor.DSNhttp://localhost/var/www/apps/conversion/tmp/scratch_6/ISIS/velomotor.DSNhttp://localhost/var/www/apps/conversion/tmp/scratch_6/ISIS/velomotor.DSNhttp://localhost/var/www/apps/conversion/tmp/scratch_6/ISIS/velomotor.DSN -
8/14/2019 velocista
17/87
Ciclo Superior de Desarrollo de Productos Electrnicos
Daniel Garca Bravo
I.E.S. Joan Mir
17
4.3.1.- Esquema elctrico 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
-
8/14/2019 velocista
18/87
Ciclo Superior de Desarrollo de Productos Electrnicos
Daniel Garca Bravo
I.E.S. Joan Mir
18
4.4.- Placa de sensores
En esta placa estn situados lo sensores del robot velocista. Los sensores utilizados
son los CNY70. Las seales 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 seales; si a la entrada tenemos un 0 lgico, a la salida tendremos un 1
lgico. Tambin 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 seal 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 ms o
menos los sensores de la superficie. El valor de las resistencias puede variar desde 10khasta 47k. En los esquemas elctricos 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 ms luz hacia la base del fototransistor este, a su
vez, conducir ms.
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 saturacin. 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 saturacin. 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 tensin a la salida. Esto nos es muy til para digitalizar las seales
que obtengamos de los sensores, para diferenciar la superficie oscura de una clara.
-
8/14/2019 velocista
19/87
Ciclo Superior de Desarrollo de Productos Electrnicos
Daniel Garca 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 tensin del colector a masa, e introduciendo un
0 lgico a la entrada del 74HC14, y a la salida tenemos un 1 lgico, 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 lgico.
Superficie Estado lgico antes de la
Trigger Smith
Estado lgico despus de la
Trigger Smith
Negra 1 0
Blanca 0 1
4.4.1.- Esquema elctrico de la placa de sensores
VDD: 5 voltios
OP1: conexin sensor - PIC
OP2: conexin sensor - PICOP3: conexin sensor - PIC
OP4: conexin sensor - PIC
OP5: conexin sensor - PIC
OP6: conexin sensor - PIC
OP7: conexin sensor - PICOP8: conexin sensor - PIC
-
8/14/2019 velocista
20/87
Ciclo Superior de Desarrollo de Productos Electrnicos
Daniel Garca 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 uncomplemento del proyecto.
El mando tiene la misin de transmitir un cdigo asociado a cada pulsador, para
poder controlar el robot.
El microcontrolador PIC16F876A lee los pulsadores y transmite los cdigos va
serie a la tarjeta transmisora de radiofrecuencia, a una velocidad de 1562,5 baudios por
segundo. Es una transmisin asncrona: 1 bit de comienzo, 8 bit de datos, 1 bit de
parada sin bitde paridad.
El microcontrolador PIC16F876A trabaja a una frecuencia de 4 MHz y ejecuta unainstruccin en 1uS.
La alimentacin procede de un regulador 7805 que suministra 5 voltios continuos a
todos los circuitos.
El transistor Q1E tiene la misin de deshabilitar la tarjeta de radiofrecuencia cuando
esta no transmite datos.
La tarjeta emisora CEBEK C-0503 es un circuito hbrido encargado de transmitir
va radiofrecuencia, los datos digitales procedentes del microprocesador. Se modula en
AM cuya frecuencia portadora es de 433,92 MHz. Estas seales salen por la patilla 11
del emisor de datos CEBEK C-0503.
El diodo ledD7E nos indica que el mando est encendido, tiene su correspondiente
resistencia limitadora de corriente.
El resto de los ledsse iluminan cuando activamos su pulsador correspondiente.
El diodo D6E tiene la misin de proteger el circuito en cado de invertir la batera.
Los condensadores C1 y C2 son filtros.
-
8/14/2019 velocista
21/87
-
8/14/2019 velocista
22/87
Ciclo Superior de Desarrollo de Productos Electrnicos
Daniel Garca Bravo
I.E.S. Joan Mir
22
5.- Esquema elctrico de simulacin con Proteus
5.1.- Simulacin del robot velocista
-
8/14/2019 velocista
23/87
Ciclo Superior de Desarrollo de Productos Electrnicos
Daniel Garca Bravo
I.E.S. Joan Mir
23
5.2.- Simulacin del robot teledirigido
-
8/14/2019 velocista
24/87
Ciclo Superior de Desarrollo de Productos Electrnicos
Daniel Garca Bravo
I.E.S. Joan Mir
24
6.- Programas
La programacin tiene una parte importante en nuestro robot, ya que, por muy bien
diseado que est, sin programas no haremos nada.
Los programas primero se simulan en elISISy 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 electrnicas.
6.1.2.- Programas de prueba de los leds
Este programa tiene como funcin probar el correcto funcionamiento de los dosdiodos ledsque hay en la placa de control.
Para encender los diodos ledsnecesitaremos sacar, por la patilla del PIC que est
conectado, al diodo ledun 0 lgico. Para apagar el diodo lednecesitaremos un 1 lgico.
6.1.2.1.- Diagrama de flujo
-
8/14/2019 velocista
25/87
Ciclo Superior de Desarrollo de Productos Electrnicos
Daniel Garca Bravo
I.E.S. Joan Mir
25
6.1.2.2.- Programa
// Pruebas de los leds
// ************************ Directivas de procesado ************************
// (Controlan la conversin del programa a cdigo mquina por parte del compilador)
#include // 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 configuracin del
// microcontrolador PIC
// Trabaja con un reloj tipo XT y no utiliza perro
// guardin 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.
// ****************** Funcin 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
-
8/14/2019 velocista
26/87
Ciclo Superior de Desarrollo de Productos Electrnicos
Daniel Garca Bravo
I.E.S. Joan Mir
26
6.1.3.- Programas de prueba de los sensores
Estos programas tienen la funcin de comprobar el correcto funcionamiento de
todos los sensores de nuestro robot. Tambin comprobaremos que la comunicacin
entre el PIC y los sensores son las correctas y que no hay fallos de comunicacin.
Comprobaremos los sensores de dos en dos y nos ayudaremos de los diodos ledque
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 lgico al PIC, despus del
integrado Trigger Smith. Cuando el sensor lea una superficie negra llegar un 1 lgico
al PIC.
Superficie Estado lgico 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 funcin de comprobar el correcto comportamiento de los
sensores OP1 y OP2.
6.1.3.1.1.- Diagrama de flujo
-
8/14/2019 velocista
27/87
Ciclo Superior de Desarrollo de Productos Electrnicos
Daniel Garca 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 conversin del programa a cdigo mquina por parte del compilador)
#include // 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 configuracin del
// microcontrolador PIC
// Trabaja con un reloj tipo XT y no utiliza perro
// guardin 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
// ****************** Funcin 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
-
8/14/2019 velocista
28/87
Ciclo Superior de Desarrollo de Productos Electrnicos
Daniel Garca Bravo
I.E.S. Joan Mir
28
while(1){ // Bucle infinito
if (rc0 == 1) // Si el sensor lee blanco ejecuta la
// siguiente instruccin
rb2 = 0; // Enciende el led D14
else { // Si el sensor lee negro, ejecuta la siguiente
// instruccin
rb2 = 1; // Apaga el led D14
} // Cierro el else
if (ra0 == 1) // Si el sensor lee blanco ejecuta la
// siguiente instruccin
rb3 = 0; // Enciende el led D13
else { // Si el sensor lee negro, ejecuta la siguiente
// instruccin
rb3 = 1; // Apaga el led D13
} // Cierro el else
} // Cierro el while
} // Cierro el programa
-
8/14/2019 velocista
29/87
Ciclo Superior de Desarrollo de Productos Electrnicos
Daniel Garca Bravo
I.E.S. Joan Mir
29
6.1.3.2- Programas de prueba de los sensores OP3 y OP4
Este programa tiene la funcin 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 conversin del programa a cdigo mquina por parte del compilador)
#include // 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 configuracin del
// microcontrolador PIC
// Trabaja con un reloj tipo XT y no utiliza perro
// guardin Wathdog
#use delay( clock = 1000000 ) // Define la frecuencia del reloj de 1 MHz
-
8/14/2019 velocista
30/87
Ciclo Superior de Desarrollo de Productos Electrnicos
Daniel Garca 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.
// ****************** Funcin 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 instruccin
rb2 = 0; // Enciende el led D14
else { // Si el sensor lee negro, ejecuta la siguiente
// instruccin
rb2 = 1; // Apaga el led D14
} // Cierro el else
if (ra2 == 1) // Si el sensor lee blanco ejecuta la// siguiente instruccin
rb3 = 0; // Enciende el led D13
else { // Si el sensor lee negro, ejecuta la siguiente
// instruccin
rb3 = 1; // Apaga el led D13
} // Cierro el else
} // Cierro el while
} // Cierro el programa
-
8/14/2019 velocista
31/87
-
8/14/2019 velocista
32/87
Ciclo Superior de Desarrollo de Productos Electrnicos
Daniel Garca 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.
// ****************** Funcin 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 instruccin
rb2 = 0; // Enciende el led D14
else { // Si el sensor no lee blanco, ejecuta la
// siguiente instruccin
rb2 = 1; // Apaga el led D14
} // Cierro el else
if (ra4 == 1) // Si el sensor lee blanco ejecuta la// siguiente instruccin
rb3 = 0; // Enciende el led D13
else { // Si el sensor no lee blanco, ejecuta la
// siguiente instruccin
rb3 = 1; // Apaga el led D13
} // Cierro el else
} // Cierro el while
} // Cierro el programa
-
8/14/2019 velocista
33/87
Ciclo Superior de Desarrollo de Productos Electrnicos
Daniel Garca Bravo
I.E.S. Joan Mir
33
6.1.3.4.- Programas de prueba de los sensores OP7 Y OP8
Este programa tiene la funcin 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 conversin del programa a cdigo mquina por parte del compilador)
#include // 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 configuracin del
// microcontrolador PIC
// Trabaja con un reloj tipo XT y no utiliza perro// guardin Wathdog
-
8/14/2019 velocista
34/87
Ciclo Superior de Desarrollo de Productos Electrnicos
Daniel Garca 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
// ****************** Funcin 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 instruccin
rb2 = 0; // Enciende el led D14
else { // Si el sensor lee negro, ejecuta la siguiente
// instruccin
rb2 = 1; // Apaga el led D14
} // Cierro el else
if (rc5 == 1) // Si el sensor lee blanco ejecuta la
// siguiente instruccin
rb3 = 0; // Enciende el led D13
-
8/14/2019 velocista
35/87
Ciclo Superior de Desarrollo de Productos Electrnicos
Daniel Garca Bravo
I.E.S. Joan Mir
35
else { // Si el sensor lee negro, ejecuta la siguiente
// instruccin
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 estn en perfecto estado y las
conexiones que controlan los motores tambin lo estn.
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 lgico de las patillas rb6 y rb7 y de cmo
conectemos el motor derecho a la placa de potencia.
RB6 RB7 Sentido de giro0 0 Motor parado
0 1 En movimiento
1 0 En movimiento
1 1 Motor parado
-
8/14/2019 velocista
36/87
Ciclo Superior de Desarrollo de Productos Electrnicos
Daniel Garca 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 conversin del programa a cdigo mquina por parte del compilador)
#include // 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 configuracin del
// microcontrolador PIC
// Trabaja con un reloj tipo XT y no utiliza perro
// guardin 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.
-
8/14/2019 velocista
37/87
Ciclo Superior de Desarrollo de Productos Electrnicos
Daniel Garca 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.
// ****************** Funcin 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 lgico de las patillas rb4 y rb5 y de cmo
conectemos el motor derecho a la placa de potencia.
RB4 RB5 Sentido de giro0 0 Motor parado
0 1 En movimiento
1 0 En movimiento
1 1 Motor parado
-
8/14/2019 velocista
38/87
-
8/14/2019 velocista
39/87
Ciclo Superior de Desarrollo de Productos Electrnicos
Daniel Garca 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.
// ****************** Funcin 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 motoresCon estos programas probaremos que el PIC genera la PWM. Tambin 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.
-
8/14/2019 velocista
40/87
Ciclo Superior de Desarrollo de Productos Electrnicos
Daniel Garca 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 conversin del programa a cdigo mquina por parte del compilador)
#include // 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 configuracin del
// microcontrolador PIC
// Trabaja con un reloj tipo XT y no utiliza perro
// guardin 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.
-
8/14/2019 velocista
41/87
Ciclo Superior de Desarrollo de Productos Electrnicos
Daniel Garca 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
// ************* Funcin 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
-
8/14/2019 velocista
42/87
Ciclo Superior de Desarrollo de Productos Electrnicos
Daniel Garca 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
-
8/14/2019 velocista
43/87
Ciclo Superior de Desarrollo de Productos Electrnicos
Daniel Garca 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 conversin del programa a cdigo mquina por parte del compilador)
#include // 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 configuracin del
// microcontrolador PIC
// Trabaja con un reloj tipo XT y no utiliza perro
// guardin Wathdog
-
8/14/2019 velocista
44/87
Ciclo Superior de Desarrollo de Productos Electrnicos
Daniel Garca 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
// ******************* Funcin 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
-
8/14/2019 velocista
45/87
Ciclo Superior de Desarrollo de Productos Electrnicos
Daniel Garca 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
-
8/14/2019 velocista
46/87
-
8/14/2019 velocista
47/87
-
8/14/2019 velocista
48/87
Ciclo Superior de Desarrollo de Productos Electrnicos
Daniel Garca Bravo
I.E.S. Joan Mir
48
-
8/14/2019 velocista
49/87
Ciclo Superior de Desarrollo de Productos Electrnicos
Daniel Garca Bravo
I.E.S. Joan Mir
49
-
8/14/2019 velocista
50/87
Ciclo Superior de Desarrollo de Productos Electrnicos
Daniel Garca Bravo
I.E.S. Joan Mir
50
6.2.1.2.- Programa
// Velocista
// ************************ Directivas de procesado ************************
// (Controlan la conversin del programa a cdigo mquina por parte del compilador)
#include // 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 configuracin del
// microcontrolador PIC
// Trabaja con un reloj tipo XT y no utiliza perro
// guardin 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.
-
8/14/2019 velocista
51/87
Ciclo Superior de Desarrollo de Productos Electrnicos
Daniel Garca 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
// ******************** Declaracin de funciones ***************************
void velocista(); // Subprograma del velocista
void Rec0 (); // Subprograma de rectificacin
void Rec1 (); // Subprograma de rectificacin
void Rec2 (); // Subprograma de rectificacinvoid Rec3 (); // Subprograma de rectificacin
void Rec4 (); // Subprograma de rectificacin
void Rec5 (); // Subprograma de rectificacinvoid Rec6 (); // Subprograma de rectificacin
void Rec7 (); // Subprograma de rectificacin
void Rec8 (); // Subprograma de rectificacin
void Rec9 (); // Subprograma de rectificacin
void Rec10 (); // Subprograma de rectificacin
void Rec11 (); // Subprograma de rectificacin
void Rec12 (); // Subprograma de rectificacin
void Rec13 (); // Subprograma de rectificacin
void Rec14 (); // Subprograma de rectificacin
-
8/14/2019 velocista
52/87
Ciclo Superior de Desarrollo de Productos Electrnicos
Daniel Garca Bravo
I.E.S. Joan Mir
52
// ******************* Funcin principal o programa principal *****************
void main()
{
// ************ Configuracin 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
-
8/14/2019 velocista
53/87
Ciclo Superior de Desarrollo de Productos Electrnicos
Daniel Garca Bravo
I.E.S. Joan Mir
53
// ******************* Subprograma del Velocista *************************
void velocista(void)
{
while (rb1 == 1 ){ // Mientras el botn 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 condicin es verdadera ejecuta el
// siguiente subprograma
if (ra3 == 0) // Si la condicin es verdadera ejecuta el
Rec1(); // siguiente subprograma
if (ra3 && ra4 == 0) // Si la condicin es verdadera ejecuta el
Rec2(); // siguiente subprograma
if (ra4 == 0) // Si la condicin es verdadera ejecuta el
Rec3(); // siguiente subprograma
if (ra4 && ra5== 0) // Si la condicin es verdadera ejecuta el
Rec4(); // siguiente subprograma
if (ra5 == 0) // Si la condicin es verdadera ejecuta el
Rec5(); // siguiente subprograma
-
8/14/2019 velocista
54/87
Ciclo Superior de Desarrollo de Productos Electrnicos
Daniel Garca Bravo
I.E.S. Joan Mir
54
if (ra5 && rc5 == 0) // Si la condicin es verdadera ejecuta el
Rec6(); // siguiente subprograma
if (rc5 == 0) // Si la condicin es verdadera ejecuta el
Rec7(); // siguiente subprograma
if (ra2 == 0) // Si la condicin es verdadera ejecuta el
Rec8(); // siguiente subprograma
if (ra2 && ra1 == 0) // Si la condicin es verdadera ejecuta el
Rec9(); // siguiente subprograma
if (ra1 == 0) // Si la condicin es verdadera ejecuta el
Rec10(); // siguiente subprograma
if (ra1 && ra0 == 0) // Si la condicin es verdadera ejecuta el
Rec11(); // siguiente subprograma
if (ra0 == 0) // Si la condicin es verdadera ejecuta el
Rec12(); // siguiente subprograma
if (ra0 && rc0 == 0) // Si la condicin es verdadera ejecuta el
Rec13(); // siguiente subprograma
if (rc0 == 0) // Si la condicin 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 RB4rb5 = 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
-
8/14/2019 velocista
55/87
Ciclo Superior de Desarrollo de Productos Electrnicos
Daniel Garca 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
-
8/14/2019 velocista
56/87
Ciclo Superior de Desarrollo de Productos Electrnicos
Daniel Garca Bravo
I.E.S. Joan Mir
56
// **************************** Rec3 ***********************************
void Rec3(void) // Subprograma de rectificado 3
{
rb4 = 1; // Activamos la patilla RB4rb5 = 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
-
8/14/2019 velocista
57/87
Ciclo Superior de Desarrollo de Productos Electrnicos
Daniel Garca 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
-
8/14/2019 velocista
58/87
Ciclo Superior de Desarrollo de Productos Electrnicos
Daniel Garca 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
-
8/14/2019 velocista
59/87
-
8/14/2019 velocista
60/87
Ciclo Superior de Desarrollo de Productos Electrnicos
Daniel Garca 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
-
8/14/2019 velocista
61/87
Ciclo Superior de Desarrollo de Productos Electrnicos
Daniel Garca 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 travs 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
-
8/14/2019 velocista
62/87
Ciclo Superior de Desarrollo de Productos Electrnicos
Daniel Garca Bravo
I.E.S. Joan Mir
62
7.- Fabricacin 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 70C, 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 tamao real. Todas las placas, menos la
placa de sensores, tienen el mismo tamao, 75x70. A continuacin se muestra el
esquema elctrico que se ha utilizado para la fabricacin y su placa correspondiente.
Las placas se han puesto por la cara de componentes, top coppery por la cara de
pistas,botton copper.
Se muestra el siguiente dibujo con las dimensiones de las placas de la fuente de
alimentacin-adaptador de seales PC-UC, placa de control y placa de potencia, con las
distancias de los agujeros de sujecin.
-
8/14/2019 velocista
63/87
Ciclo Superior de Desarrollo de Productos Electrnicos
Daniel Garca Bravo
I.E.S. Joan Mir
63
7. 1.- Fabricacin de la fuente de alimentacin-adaptador de seales PC-UC
7.1.1.- Esquema elctrico
-
8/14/2019 velocista
64/87
Ciclo Superior de Desarrollo de Productos Electrnicos
Daniel Garca Bravo
I.E.S. Joan Mir
64
7.1.2.- Cara de componentes
En esta placa no est colocada la disipacin de cobre del LM350K, para que se
pueda distinguir bien la distribucin de los componentes. Dicha disipacin debe ocupar
todo el ancho del LM350K.
-
8/14/2019 velocista
65/87
Ciclo Superior de Desarrollo de Productos Electrnicos
Daniel Garca Bravo
I.E.S. Joan Mir
65
7.1.3.- Cara de pistas bottom copper
-
8/14/2019 velocista
66/87
Ciclo Superior de Desarrollo de Productos Electrnicos
Daniel Garca Bravo
I.E.S. Joan Mir
66
7. 2.- Fabricacin de la placa de control
7.2.1.- Esquema elctrico
-
8/14/2019 velocista
67/87
Ciclo Superior de Desarrollo de Productos Electrnicos
Daniel Garca Bravo
I.E.S. Joan Mir
67
7.2.2.- Componentes
-
8/14/2019 velocista
68/87
Ciclo Superior de Desarrollo de Productos Electrnicos
Daniel Garca Bravo
I.E.S. Joan Mir
68
7.2.3.- Cara de componentes y de pistas top copper
-
8/14/2019 velocista
69/87
Ciclo Superior de Desarrollo de Productos Electrnicos
Daniel Garca Bravo
I.E.S. Joan Mir
69
7.2.4.- Cara de pistas bottom copper
-
8/14/2019 velocista
70/87
Ciclo Superior de Desarrollo de Productos Electrnicos
Daniel Garca Bravo
I.E.S. Joan Mir
70
7. 3.- Fabricacin de la placa de potencia
7.3.1.- Esquema elctrico
-
8/14/2019 velocista
71/87
Ciclo Superior de Desarrollo de Productos Electrnicos
Daniel Garca Bravo
I.E.S. Joan Mir
71
7.3.2.- Componentes
-
8/14/2019 velocista
72/87
Ciclo Superior de Desarrollo de Productos Electrnicos
Daniel Garca Bravo
I.E.S. Joan Mir
72
7.3.3.- Cara de componentes y de pistas top copper
-
8/14/2019 velocista
73/87
Ciclo Superior de Desarrollo de Productos Electrnicos
Daniel Garca Bravo
I.E.S. Joan Mir
73
7.3.4.- Cara de pistas bottom copper
-
8/14/2019 velocista
74/87
Ciclo Superior de Desarrollo de Productos Electrnicos
Daniel Garca Bravo
I.E.S. Joan Mir
74
7. 4.- Fabricacin de la placa de sensores
Esta placa siempre est en constante cambio, hasta que se da con la placa que mejor
nos convenga. Despus 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 tambin los taladros, que es por dondesujetamos la placa a la carrocera del robot.Lo que s que vara es el largo de la placa,
debido, en gran parte, a cmo se hayan distribuido los componentes por dicha placa.
El esquema elctrico 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 elctricos, el valor montado o no montado.
7.4.1.- Esquema elctrico
-
8/14/2019 velocista
75/87
Ciclo Superior de Desarrollo de Productos Electrnicos
Daniel Garca 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
-
8/14/2019 velocista
76/87
Ciclo Superior de Desarrollo de Productos Electrnicos
Daniel Garca Bravo
I.E.S. Joan Mir
76
7.4.5.- Cara de pistas bottom copper
-
8/14/2019 velocista
77/87
Ciclo Superior de Desarrollo de Productos Electrnicos
Daniel Garca Bravo
I.E.S. Joan Mir
77
7. 5.- Fabricacin del mando a distancia
7.5.1.- Esquema elctrico
7.5.2.- Medidas
-
8/14/2019 velocista
78/87
Ciclo Superior de Desarrollo de Productos Electrnicos
Daniel Garca Bravo
I.E.S. Joan Mir
78
7.5.3.- Componentes
7.5.4.- Cara de componentes y de pistas top copper
-
8/14/2019 velocista
79/87
Ciclo Superior de Desarrollo de Productos Electrnicos
Daniel Garca Bravo
I.E.S. Joan Mir
79
7.5.5.- Cara de pistas bottom copper
-
8/14/2019 velocista
80/87
Ciclo Superior de Desarrollo de Productos Electrnicos
Daniel Garca Bravo
I.E.S. Joan Mir
80
8.- Carrocera
-
8/14/2019 velocista
81/87
Ciclo Superior de Desarrollo de Productos Electrnicos
Daniel Garca Bravo
I.E.S. Joan Mir
81
9.- Lista de componentes y coste econmico
LISTA DE COMPONENTES DEL VELOCISTA
Titulo: Velocista
Autor: Daniel Garca BravoNumero de componentes: 169
Cantidad Referencia: Valor:Precio
Unitario
Precio
Total
38 Resistencias
18
R1, R3, R5, R7, R9, R11,
220 0,05 0,9R13-R15, R17, R22, R24, R26,
R28, R30, R32, R34, R36
16
R2, R4, R6, R8, R10, R12,
10k 0,05 0,8R16, 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,42 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: PrecioUnitario
PrecioTotal
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
-
8/14/2019 velocista
82/87
Ciclo Superior de Desarrollo de Productos Electrnicos
Daniel Garca 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,94 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 Plstico 0,1 0,4
10 T3 Tuercas de mtrica 3 0,02 0,21 SP Soporte de plstico 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 plstico 0,05 0,9
2 Motores Motores de C.C. 9 18
Total 95,1
-
8/14/2019 velocista
83/87
Ciclo Superior de Desarrollo de Productos Electrnicos
Daniel Garca Bravo
I.E.S. Joan Mir
83
LISTA DE COMPONENTES DEL MANDO
Titulo: Velocista
Autor: Daniel Garca 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
-
8/14/2019 velocista
84/87
Ciclo Superior de Desarrollo de Productos Electrnicos
Daniel Garca 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 plstico 110x50 1 1
Total 27,11
-
8/14/2019 velocista
85/87
Ciclo Superior de Desarrollo de Productos Electrnicos
Daniel Garca Bravo
I.E.S. Joan Mir
85
10.- Coste econmico total
Coste del Proyecto Rastreador
Tareas Horas Coste por hora () Total ()
Desarrollo Hardware 30 30 900
Desarrollo Software 25 30 750
Bsqueda 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
Documentacin 20 30 600
TOTAL 159 - 4892,21
-
8/14/2019 velocista
86/87
Ciclo Superior de Desarrollo de Productos Electrnicos
Daniel Garca Bravo
I.E.S. Joan Mir
86
11.- Referencias
Ttulo: Compilador C CCS y simulador PORTEUS para Microcontroladores PIC.
Autor: Eduardo Garca Breijo.
Editorial: Marcombo.
Ttulo: Tecnologa de circuitos impresos.
Autores: Claudio Fernndez Gonzlez, Jos Luis Lzaro Galilea, Ignacio Fernndez
Lorenzo, Jess Urea Urea, Felipe Espinosa Zapata.
Editorial: Departamento de electrnica, Universidad de Alcal
Ttulo: Electrnica general.
Autores: A. Carretero, J. Ferrero, J.A. Snchez-Infantes, P. Snchez-Infantes.
Editorial: Editex.
Ttulo: Lgica digital y microprogramable.
Autores: Fernando Remiro Domnguez, Antonio J.Gil Padilla, Luis M. Cuesta Garca.Editorial: Mc Graw Hill.
-
8/14/2019 velocista
87/87
Ciclo Superior de Desarrollo de Productos Electrnicos
12.- Anexos tcnicos
Caractersticas del microcontrolador PIC16F876A.
Caractersticas del LM350K.
Caractersticas elctricas del inversor de giro L298.
Caractersticas de los sensores infrarrojos CNY70.
Caractersticas del MAX232.
Caractersticas elctricas tarjeta emisora de datos CEBEK C-0503.
Caractersticas elctricas tarjeta receptora de datos CEBEK C-504.
Curso de Robtica y otras aplicaciones en el aula de tecnologa.
http://localhost/var/www/apps/conversion/tmp/scratch_6/Datas/PIC16F876A.pdfhttp://localhost/var/www/apps/conversion/tmp/scratch_6/Datas/PIC16F876A.pdfhttp://localhost/var/www/apps/conversion/tmp/scratch_6/Datas/L298N.pdfhttp://localhost/var/www/apps/conversion/tmp/scratch_6/Datas/L298N.pdfhttp://localhost/var/www/apps/conversion/tmp/scratch_6/Datas/MAX232.pdfhttp://localhost/var/www/apps/conversion/tmp/scratch_6/Datas/MAX232.pdfhttp://localhost/var/www/apps/conversion/tmp/scratch_6/Datas/CEBEK%20C-0504.pdfhttp://localhost/var/www/apps/conversion/tmp/scratch_6/Datas/Curso%20de%20Rob%C3%B3tica%20y%20otras%20aplicaciones%20en%20el%20Aula%20de%20Tecnolog%C3%ADa.pdfhttp://localhost/var/www/apps/conversion/tmp/scratch_6/Datas/Curso%20de%20Rob%C3%B3tica%20y%20otras%20aplicaciones%20en%20el%20Aula%20de%20Tecnolog%C3%ADa.pdfhttp://localhost/var/www/apps/conversion/tmp/scratch_6/Datas/CEBEK%20C-0504.pdfhttp://localhost/var/www/apps/conversion/tmp/scratch_6/Datas/MAX232.pdfhttp://localhost/var/www/apps/conversion/tmp/scratch_6/Datas/MAX232.pdfhttp://localhost/var/www/apps/conversion/tmp/scratch_6/Datas/L298N.pdfhttp://localhost/var/www/apps/conversion/tmp/scratch_6/Datas/L298N.pdfhttp://localhost/var/www/apps/conversion/tmp/scratch_6/Datas/PIC16F876A.pdfhttp://localhost/var/www/apps/conversion/tmp/scratch_6/Datas/PIC16F876A.pdf