Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Autor:
Javier Abascal Carrasco
Tutor:
Jose Ramón Cerquides Bueno
Fecha:
Miércoles, 24 de abril de 2013
Proyecto fin de carrera de Ingeniería de Telecomunicaciones
0. Índice
0. Índice .................................................................................................................................... 2
1. Introducción ......................................................................................................................... 3
2. Antecedentes y motivaciones ........................................................................................... 5
3. Parte 1: Sensor y acondicionamiento de la señal. ........................................................ 7
3.1. Sensor .......................................................................................................................... 7
3.2. Acondicionamiento de la señal............................................................................... 13
3.3. Amplificador de instrumentación INA125.............................................................. 16
3.4. Diseño del pcb .......................................................................................................... 18
4. Parte 2: Procesamiento y envío de la señal. ................................................................ 22
4.1. Kits Arduino ............................................................................................................... 22
4.1.1. Arduino Duemilanove + Xbee Shield............................................................. 22
4.1.2. Arduino Fio ........................................................................................................ 24
4.1.3. Módulos Xbee ................................................................................................... 25
4.2. Configuración de los módulos Xbee ...................................................................... 26
4.3. Entorno de desarrollo Arduino ................................................................................ 28
4.4. Programación de los microcontroladores ............................................................. 29
5. Parte 3: Sistema completo. ............................................................................................. 31
5.1. Posicionamiento de los elementos ........................................................................ 31
5.2. Baterías ...................................................................................................................... 35
5.3. Camuflaje ................................................................................................................... 36
6. Funcionamiento y Aplicaciones mágicas. ..................................................................... 38
7. Futuras líneas de trabajo................................................................................................. 39
8. Conclusiones ..................................................................................................................... 40
9. Referencias. ...................................................................................................................... 41
9.1. Bibliografía ......................................................................................................................... 41
10. Apéndice. .......................................................................................................................... 43
10.1. Efectos explicados ..................................................................................................... 43
10.2. Códigos de programación ......................................................................................... 46
2
Proyecto fin de carrera de Ingeniería de Telecomunicaciones
1. Introducción
1
ITU, siglas de International Telecommunication Union.
3
Proyecto fin de carrera de Ingeniería de Telecomunicaciones
4
Proyecto fin de carrera de Ingeniería de Telecomunicaciones
2. Antecedentes y motivaciones
Para poder entender rápidamente sin tener que estudiar a fondo la teoría
de la magia, nos gustaría explicar brevemente la diferencia que existe entre
técnica y trucaje. La parte técnica, consiste en un conjunto de movimientos,
gestos y hechos que ocultan o camuflan acciones normales con acciones
tramposas para ayudar a realizar un efecto mágico. El trucaje o ardid sin
embargo, es el conjunto de elementos y herramientas construidas y diseñadas
para poder realizar tales efectos (Nelms, 1969). Un sistema de
telecomunicaciones nunca nos ayudará a acrecentar nuestra técnica, sin
embargo, si nos ayudará a construir un gran trucaje.
2
Juan Mayoral ha sido uno de los magos modernos en revolucionar el mundo de la magia utilizando
elementos electrónicos. Es conocido mundialmente por sus novedosas invenciones y posee el primer
premio FISM de 1991 en Suiza en la categoría de magia general.
5
Proyecto fin de carrera de Ingeniería de Telecomunicaciones
6
Proyecto fin de carrera de Ingeniería de Telecomunicaciones
7
Proyecto fin de carrera de Ingeniería de Telecomunicaciones
Las células de cargas o load cells. Son capaces de obtener una gran
sensibilidad, aunque su funcionamiento es complejo a causa de ser un
elemento activo y tener la necesidad de alimentación. Este transductor
convierte la fuerza ejercida en una señal eléctrica mediante el uso de cuatro
galgas extensiométricas colocadas en configuración tipo Puente de
Wheatstone. La salida eléctrica de este tipo de transductores son de muy bajo
rango y es necesario una etapa de amplificación posterior para su lectura
(Senel Technologies S.A, 2013).
8
Proyecto fin de carrera de Ingeniería de Telecomunicaciones
Para ayudar a entender y afrontar qué nos encontramos en una load cell
estándar, véase el siguiente cálculo (Anastasios Karidis, 2011):
Especificaciones:
El error de precisión por temperatura lo podemos descartar por ser menor y fijo.
Por lo tanto el mínimo cambio de salida en el sensor que vamos a detectar es
0.004 𝑚𝑚𝑚𝑚 . Sin tener que analizar nada observemos que el mínimo cambio
distinguible es mayor que un gramo, debido a que el error es mayor que la
propia precisión por gramo. Con este sensor genérico encontraremos
9
Proyecto fin de carrera de Ingeniería de Telecomunicaciones
Figura 4. Load cell de un kilogramo. Obsérvese el tamaño reducido, y los cuatro orificios para fijar
el sensor y la bandeja.
3
Conversor analógico digital. De aquí en adelante nos referiremos a el por sus siglas.
10
Proyecto fin de carrera de Ingeniería de Telecomunicaciones
Product Description
The 1Kg 2.2 lbs load cell is great for used in hopper scales, platform scales, platform balance, belt scales and other electronic
weighing devices.
Esta vez la lectura de un gramo supera en un 500 % la precisión del error que
disponemos, lo que no asegura un margen más amplio de error. Cabe remarcar
este margen de seguridad, ya que el comportamiento del sensor es bastante
diferente de la teoría que pone en los manuales. Gracias a que garantizamos
un gran rango de seguridad, hemos logrado conseguir que todo funcione según
lo previsto y ser capaz de distinguir las cartas sin fallos.
11
Proyecto fin de carrera de Ingeniería de Telecomunicaciones
Por último, añadimos una bandeja al sensor para poder situar el tapete
encima, y tener una superficie “de juego” para el correcto empleo de las cartas
y objetos. El material empleado será el metacrilato con el fin de no sobrecargar
el sensor y no reducir nuestro rango de funcionamiento.
12
Proyecto fin de carrera de Ingeniería de Telecomunicaciones
Esta situación sería el caso ideal ya que hay que prestar atención a la
resolución disponible en el CAD. El CAD dispone de 10 𝑏𝑏𝑏𝑏𝑏𝑏𝑏𝑏, lo que supone
1024 𝑝𝑝𝑝𝑝𝑝𝑝𝑝𝑝𝑝𝑝. Si dividimos 1 𝑘𝑘𝑘𝑘 en 1024 𝑝𝑝𝑝𝑝𝑝𝑝𝑝𝑝𝑝𝑝, obtenemos que cada escalón en
el CAD supondrá:
1000 𝑔𝑔
210 𝑏𝑏𝑏𝑏𝑏𝑏𝑏𝑏
= 0.9765625 𝑔𝑔/𝑏𝑏𝑏𝑏𝑏𝑏.
Si lo expresamos en Voltios:
5𝑉𝑉
210 𝑏𝑏𝑏𝑏𝑏𝑏𝑏𝑏
= 4.8828𝑚𝑚𝑚𝑚/𝑏𝑏𝑏𝑏𝑏𝑏.
Esto no es un buen dato, ya que la misma limitación del rango del CAD nos
deja muy poco rango para discernir entre varias cartas. Estamos restringiendo
la sensibilidad del sensor, imponiendo un rango de lectura del CAD demasiado
grande. Para ilustrar lo referido, hacemos esta pequeña tabla;
13
Proyecto fin de carrera de Ingeniería de Telecomunicaciones
0.01𝑚𝑚𝑚𝑚
5.1𝑔𝑔 ·
3 (5.1 𝑔𝑔) 𝑔𝑔 25.5 𝑚𝑚𝑚𝑚 5.2224 = 5
= 0.051𝑚𝑚𝑚𝑚
0.01𝑚𝑚𝑚𝑚
6.8𝑔𝑔 ·
4 (6.8 𝑔𝑔) 𝑔𝑔 34 𝑚𝑚𝑚𝑚 6.9632 = 7
= 0.068𝑚𝑚𝑚𝑚
0.01𝑚𝑚𝑚𝑚
8.5𝑔𝑔 ·
5 (8.5 𝑔𝑔) 𝑔𝑔 42.5 𝑚𝑚𝑚𝑚 8.704 = 9
= 0.085𝑚𝑚𝑚𝑚
0.01𝑚𝑚𝑚𝑚
10.2𝑔𝑔 ·
6 (10.2 𝑔𝑔) 𝑔𝑔 51 𝑚𝑚𝑚𝑚 10.4448 = 10
= 0.102𝑚𝑚𝑚𝑚
… … … …
Tabla 2.Cálculo de la lectura del CAD en función de las cartas situadas sobre el sensor. Amplificación de 500
unidades.
1.7𝑔𝑔
60𝑐𝑐𝑐𝑐𝑐𝑐𝑐𝑐𝑐𝑐𝑐𝑐 · = 102𝑔𝑔 ≈ 10% 𝑑𝑑𝑑𝑑𝑑𝑑 𝑝𝑝𝑝𝑝𝑝𝑝𝑝𝑝 𝑚𝑚á𝑥𝑥𝑥𝑥𝑥𝑥𝑥𝑥 𝑠𝑠𝑠𝑠𝑠𝑠𝑠𝑠𝑠𝑠𝑠𝑠𝑠𝑠𝑠𝑠𝑠𝑠 𝑝𝑝𝑝𝑝𝑝𝑝 𝑒𝑒𝑒𝑒 𝑠𝑠𝑠𝑠𝑠𝑠𝑠𝑠𝑠𝑠𝑠𝑠 (1𝑘𝑘𝑘𝑘)
𝑐𝑐𝑐𝑐𝑐𝑐𝑐𝑐𝑐𝑐
4
Debido a la sensibilidad y calidad del sensor los últimos bits del CAD variarán arbitrariamente.
5
Con el objetivo de poder utilizar diferentes barajas que posean distinto peso.
6
Este resultado sería hipotético ya que estaría limitado por la alimentación y el amplificador.
7
A partir de cuatro bits, superaríamos la mitad de la distancia y no podríamos discernir correctamente;
24 = 16 > 9.
14
Proyecto fin de carrera de Ingeniería de Telecomunicaciones
Salida del
Número de Salida del sensor tras la
sensor antes Lectura del CAD
cartas sobre amplificación
de la (4.8828 𝑚𝑚𝑚𝑚/𝑏𝑏𝑏𝑏𝑏𝑏)
el sensor (𝒎𝒎𝒎𝒎𝒎𝒎𝒎𝒎𝒎𝒎𝒎𝒎𝒎𝒎𝒎𝒎𝒎𝒎𝒎𝒎𝒎𝒎𝒎𝒎𝒎𝒎 𝒑𝒑𝒑𝒑𝒑𝒑 𝟓𝟓𝟓𝟓𝟓𝟓𝟓𝟓)
amplificación
0.01𝑚𝑚𝑚𝑚
1.7𝑔𝑔 ·
1 (1.7𝑔𝑔) 𝑔𝑔 85 𝑚𝑚𝑚𝑚 17.408 = 17
= 0.017𝑚𝑚𝑚𝑚
0.01𝑚𝑚𝑚𝑚
3.4𝑔𝑔 ·
2 (3.4𝑔𝑔) 𝑔𝑔 170 𝑚𝑚𝑚𝑚 34.816 = 35
= 0.034𝑚𝑚𝑚𝑚
0.01𝑚𝑚𝑚𝑚
5.1𝑔𝑔 ·
3 (5.1𝑔𝑔) 𝑔𝑔 255 𝑚𝑚𝑚𝑚 52.224 = 52
= 0.051𝑚𝑚𝑚𝑚
0.01𝑚𝑚𝑚𝑚
6.8𝑔𝑔 ·
4 (6.8𝑔𝑔) 𝑔𝑔 340 𝑚𝑚𝑚𝑚 69.632 = 70
= 0.068𝑚𝑚𝑚𝑚
0.01𝑚𝑚𝑚𝑚
8.5𝑔𝑔 ·
5 (8.5𝑔𝑔) 𝑔𝑔 425 𝑚𝑚𝑚𝑚 87.04 = 88
= 0.085𝑚𝑚𝑚𝑚
0.01𝑚𝑚𝑚𝑚
10.2𝑔𝑔 ·
6 (10.2𝑔𝑔) 𝑔𝑔 510 𝑚𝑚𝑚𝑚 104.448 = 104
= 0.102𝑚𝑚𝑚𝑚
… … … …
Tabla 3. .Cálculo de la lectura del CAD en función de las cartas situadas sobre el sensor. Amplificación de 5000
unidades.
8
Factores como la presión, viento o gravedad podrían causar cambios de gramos en el sensor.
15
Proyecto fin de carrera de Ingeniería de Telecomunicaciones
-Wide supply range, nos permite alimentar a Single Supply de 2.7 hasta
36 𝑉𝑉 o Dual Supply de ±1.35 𝑉𝑉 hasta ±18 𝑉𝑉. A causa de la utilización del Offset
trimming nos será obligatorio alimentar el circuito con una fuente dual.
Llegado a este punto del trabajo somos capaces de generar una señal
analógica variable entre 0 y 5 Voltios según qué cantidad de naipes sean
16
Proyecto fin de carrera de Ingeniería de Telecomunicaciones
9
Para más información consultar el datasheet del dispositivo
17
Proyecto fin de carrera de Ingeniería de Telecomunicaciones
Figura 8. Esquemático del circuito diseñado para acondicionar la señal del sensor de carga. Realizado con el
programa EAGLE.
10
En este caso, las siglas provienen de Computer aided design.
18
Proyecto fin de carrera de Ingeniería de Telecomunicaciones
11
Se colocaron cuatro espacios en el diseño para dar la posibilidad de ajustar la resistencia a un valor
muy concreto.
12
En los diferentes datasheets se puede consultar la posición y utilidad de los condensadores añadidos.
19
Proyecto fin de carrera de Ingeniería de Telecomunicaciones
activación para alimentar los displays a 5 𝑉𝑉 sin quemarlos (salida de los pines
digitales de propósito general del kit Arduino).
Figura 10. Layout del circuito acondicionador del sensor. Realizado con el programa EAGLE.
Figura 11. Layout del circuito para facilitar las entradas a los displays 7-segmentos.
Realizado con el programa EAGLE.
20
Proyecto fin de carrera de Ingeniería de Telecomunicaciones
Figura 13. Circuito para faclitar las entradas a los displays 7-segmentos.
13
Agradezco a Luis Javier Reina Tosina la ayuda prestada para realizar en el laboratorio la placa de este
circuito (profesor titular de la Universidad y del departamento de Teoría de la señal y Comunicaciones).
21
Proyecto fin de carrera de Ingeniería de Telecomunicaciones
14
Xbee será explicado en el siguiente punto
15
Ninguno de los precios contiene el IVA
22
Proyecto fin de carrera de Ingeniería de Telecomunicaciones
Microcontrolador ATmega368
Voltaje de funcionamiento 5V
Voltaje de entrada (recomendado) 7-12V
Voltaje de entrada (límite) 6-20V
Pines E/S digitales 14 (6 proporcionan salida PWM)
Pines de entrada analógica 6
Intensidad por pin 40 mA
Intensidad en pin 3.3V 50 mA
32 KB de las cuales 2 KB las usa el
Memoria Flash
gestor de arranque (bootloader)
SRAM 2 KB
EEPROM 1 KB
Velocidad de reloj 16 MHz
Tabla 4. Características del Arduino Duemilanove.
23
Proyecto fin de carrera de Ingeniería de Telecomunicaciones
cero del sensor, enviar el resultado al Arduino Fio mediante Xbee y detectar el
número de naipes que han sido cortados 16 (Arduino, 2005-2013).
Figura 15. En la imagen izquierda se encuentra el Xbee Shield. A la derecha, la superposición de Xbee Shield y el
Arduino Duemilanove
Microcontrolador ATmega328P
Voltaje de trabajo 3.3V
Voltaje de Entrada 3.35 -12 V
Voltaje de Entrada en Carga 3.7 - 7 V
14 (6 proporcionan
Pines E/S Digital
salida PWM)
Pines de Entrada Analógica 8
Corriente DC por pin E/S 40 mA
32 KB de los cuales 2 KB las usa el
Memoria Flash
gestor de arranque (bootloader)
SRAM 2 KB
EEPROM 1 KB
Frecuencia de Reloj 8 MHz
16
Cortar en este ámbito se refiere a la acción de levantar un grupo de cartas de la baraja, colocarlas al
lado y colocar las restantes encima de las anteriores.
24
Proyecto fin de carrera de Ingeniería de Telecomunicaciones
Figura 16. En la imagen izquierda tenemos el esquema general del Arduino FIO. A la derecha, instalado con el
módulo Xbee
25
Proyecto fin de carrera de Ingeniería de Telecomunicaciones
26
Proyecto fin de carrera de Ingeniería de Telecomunicaciones
En primer lugar los dos módulos Xbee tienen que situarse en la misma
red definida por el valor de ID, asimismo deben estar en el idéntico canal
precisado por el valor de CH. Finalmente la dirección destino será dada por DH
y DL y especificará qué módulo en esa red y canal recibirá los datos
transmitidos. Por supuesto existen posibilidades de enviar mensajes broadcast
a todos los módulos dentro de un canal y red determinado fijando valores
especiales en los registros DH y DL. En la bibliografía están disponibles todos
los casos posibles así como las órdenes de entrada, salida, restaurar valores
de fábrica y guardado para los Xbee.
27
Proyecto fin de carrera de Ingeniería de Telecomunicaciones
28
Proyecto fin de carrera de Ingeniería de Telecomunicaciones
Lectura Analógica
29
Proyecto fin de carrera de Ingeniería de Telecomunicaciones
30
Proyecto fin de carrera de Ingeniería de Telecomunicaciones
Figura 20. Sistema completo en el interior del tablero. De izquierda a derecha: Interruptores On/Off, circuito de
acondicionamiento de la señal, sensor, displays 7-segmentos, Arduino Duemilanove+ Xbee Shield, circuito
regulador de tensión y baterías.
17
La altura máxima permitida con estas medidas es de 2.6cm. El arduino Duemilanove + Xbee Shield
dispone de esa medida.
31
Proyecto fin de carrera de Ingeniería de Telecomunicaciones
Figura 21. Vista lateral del tablero. Obsérvese las dos perforaciones realizadas para acceder a los interruptores.
Figura 22. Vista lateral del tablero. Perforación realizada para la colocación de los displays 7-segmentos.
18
Como ya se comentó, el uso del metacrilato fue crucial para poder poseer una superficie resistente y a
la vez ligera.
32
Proyecto fin de carrera de Ingeniería de Telecomunicaciones
Figura 23.Sistema cubierto con la tapa del tablero, en el medio se encuentra el sensor con la primera plancha de
metacrilato.
33
Proyecto fin de carrera de Ingeniería de Telecomunicaciones
Figura 25. Sistema cubierto con la tapa del tablero, en el medio el sensor ya queda cubierto por la segunda tapa
de metacrilato, ajustada por milímetros a los bordes de la tapadera.
34
Proyecto fin de carrera de Ingeniería de Telecomunicaciones
5.2. Baterías
35
Proyecto fin de carrera de Ingeniería de Telecomunicaciones
Figura 27. A la izquierda se muestran las pilas de 9V para alimentar el circuito acondicionador del sensor, a la
derecha la batería del Arduino.
5.3. Camuflaje
19
Existen pocos datos técnicos del consumo del dispositivo. Alrededor de 100 mAh.
36
Proyecto fin de carrera de Ingeniería de Telecomunicaciones
Figura 28. Situación final del tablero. Obsérvese como son imperceptibles los orificios laterales.
37
Proyecto fin de carrera de Ingeniería de Telecomunicaciones
38
Proyecto fin de carrera de Ingeniería de Telecomunicaciones
20
Cortar en este ámbito se refiere a la acción de levantar un grupo de cartas de la baraja, colocarlas al
lado y colocar las restantes encima de las anteriores.
39
Proyecto fin de carrera de Ingeniería de Telecomunicaciones
8. Conclusiones
40
Proyecto fin de carrera de Ingeniería de Telecomunicaciones
9. Referencias.
9.1. Bibliografía
Aliexpress, S. o. (2012). Aliexpress. Recuperado el November de 2012, de
http://www.aliexpress.com/store/product/Aluminium-Alloy-Weighing-Load-Cell-1Kg-for-
Electronic-Scale/319674_561592896.html
Harmening, D. (ISSN 1406-0957). THE HISTORY OF WESTERN MAGIC. the Folk Belief and Media
Group of ELM (-ISSN 1406-0957-).
Isabel Román Martinez y Rafael Estepa Alonso. (2007/2008). Trajano. Recuperado el February
de 2013, de http://trajano.us.es/~isabel/publicaciones/ARSS/0708/01_07_08.pdf
Luis Carrión, D. O. (2009). ANALISIS DEL FUNCIONAMIENTO DEL SENSOR DE FUERZA RESISTIVO
(FSR) CON LabVIEW. Cuenca: Programa de Pasantías Académicas.
41
Proyecto fin de carrera de Ingeniería de Telecomunicaciones
Texas Instruments. (Revised 2012, August). Texas Instruments. Retrieved December 2012, from
http://www.ti.com/lit/ds/symlink/ua7805.pdf
42
Proyecto fin de carrera de Ingeniería de Telecomunicaciones
10. Apéndice.
1º) Una vez seleccionada una carta por el espectador, pedirle que
levante un número cualesquiera de cartas.
2º) Realizar la medición del número de cartas sin cortar. Ese valor será
X.
43
Proyecto fin de carrera de Ingeniería de Telecomunicaciones
-Vacío.
-Plata.
-Cobre.
-Oro.
-Plata y cobre.
-Plata y oro.
-Cobre y oro.
44
Proyecto fin de carrera de Ingeniería de Telecomunicaciones
Con todos estos efectos, hemos intentado que el lector comprenda las
posibilidades que ofrece el proyecto. En definitiva, esta parte del proyecto entra
más profundamente en el mundo del ilusionismo y por ello consideramos que
no es adecuado desarrollarlo extensamente. En las futuras líneas de trabajo
queda pendiente realizar una recopilación de todas las técnicas, efectos y usos
posibles.
45
Proyecto fin de carrera de Ingeniería de Telecomunicaciones
46
Proyecto fin de carrera de Ingeniería de Telecomunicaciones
switch (cifra1)
{
case 0:
display(1,0,0,0,0,0,0);
break;
case 1:
display(1,1,1,0,1,1,0);
break;
case 2:
47
Proyecto fin de carrera de Ingeniería de Telecomunicaciones
display(0,1,0,0,0,0,1);
break;
case 3:
display(0,1,0,0,1,0,0);
break;
case 4:
display(0,0,1,0,1,1,0);
break;
case 5:
display(0,0,0,1,1,0,0);
break;
case 6:
display(0,0,0,1,0,0,0);
break;
case 7:
display(1,1,0,0,1,1,0);
break;
case 8:
display(0,0,0,0,0,0,0);
break;
case 9:
display(0,0,0,0,1,0,0);
break;
}
delay(10);
digitalWrite(activacion1,LOW);
digitalWrite(activacion2,HIGH);
switch (cifra2)
{
case 0:
display(1,0,0,0,0,0,0);
break;
case 1:
display(1,1,1,0,1,1,0);
break;
case 2:
display(0,1,0,0,0,0,1);
break;
case 3:
display(0,1,0,0,1,0,0);
break;
case 4:
display(0,0,1,0,1,1,0);
break;
case 5:
display(0,0,0,1,1,0,0);
break;
case 6:
display(0,0,0,1,0,0,0);
break;
48
Proyecto fin de carrera de Ingeniería de Telecomunicaciones
case 7:
display(1,1,0,0,1,1,0);
break;
case 8:
display(0,0,0,0,0,0,0);
break;
case 9:
display(0,0,0,0,1,0,0);
break;
}
delay(10);
digitalWrite(activacion2,LOW);
}
digitalWrite(activacion1,LOW);
digitalWrite(activacion2,LOW);
}
// La rutina principal consiste en leer el peso del sensor, enviarlo por el puerto serie,
// mostrarlo en los displays si procede y ver si tenemos alguna señal de los interruptores del
//receptor.
numero_cartas=0;
for(a=0; a<1000; a++)
{
valor_analogico=analogRead(analogPin);
numero_cartas=(numero_cartas+valor_analogico);
}
numero_cartas=numero_cartas/1000;
cartas_enviadas=round((numero_cartas-peso_base)/peso_carta);
Serial.write(cartas_enviadas);
if(visualizar==1)
{
mostrar_numero(cartas_enviadas);
}
else
49
Proyecto fin de carrera de Ingeniería de Telecomunicaciones
delay(200);
if(Serial.available()>0) {
valor_recibido= Serial.read();
switch(valor_recibido)
{
case 1: //Este caso es el RESET
delay(2000);
//Calculamos el peso base de la plataforma sin cartas.
for(a=0; a<10000;a++)
{
valor_analogico= analogRead(analogPin);
numero_cartas=numero_cartas+valor_analogico;
}
numero_cartas=numero_cartas/10000;
peso_base=numero_cartas;
mostrar_numero(round(peso_base));
50
Proyecto fin de carrera de Ingeniería de Telecomunicaciones
frontera=frontera+valor_analogico;
}
frontera=frontera/100;
frontera=round(((frontera-peso_base)/peso_carta));
while(((numero_cartas-5)<=frontera)&&(frontera<=(numero_cartas +5)))
{
frontera=0;
for(a=0;a<100;a++) {
valor_analogico=analogRead(analogPin);
frontera=frontera+valor_analogico;
}
frontera=frontera/100;
frontera=round(((frontera-peso_base)/peso_carta));
}
//Necesitamos los valores más pequeños, para saber cual es el número menor de cartas
//que ha habido en la mesa.
for(i=0; i<10; i++){ //De este número depende de que salga bien si corta
//pocas cartas o muchas.
numero_cartas=0;
for(a=0; a<1000; a++) {
valor_analogico=analogRead(analogPin);
numero_cartas=numero_cartas+valor_analogico;
}
numero_cartas=numero_cartas/1000;
numero_cartas=round(((numero_cartas-peso_base)/peso_carta));
cartas_cortadas=min(cartas_cortadas,numero_cartas);
}
51
Proyecto fin de carrera de Ingeniería de Telecomunicaciones
}
else
mostrar_numero(11);
break;
}
52
Proyecto fin de carrera de Ingeniería de Telecomunicaciones
int pulsador1= 9; //Pulsadores a utilizar. Sirven para mandar órdenes a la mesa y manejar
//la visibilidad del display
int pulsador2= 10;
char pulsador3= A3;
char pulsador4= A4;
53
Proyecto fin de carrera de Ingeniería de Telecomunicaciones
numero=round(numero);
cifra1=floor((numero)/10);
cifra2=round(((numero/10)-cifra1)*10);
switch (cifra1)
{
case 0:
display(1,0,0,0,0,0,0);
break;
case 1:
display(1,1,1,0,1,1,0);
break;
case 2:
display(0,1,0,0,0,0,1);
break;
case 3:
display(0,1,0,0,1,0,0);
break;
case 4:
display(0,0,1,0,1,1,0);
break;
case 5:
display(0,0,0,1,1,0,0);
break;
case 6:
display(0,0,0,1,0,0,0);
break;
case 7:
display(1,1,0,0,1,1,0);
break;
case 8:
display(0,0,0,0,0,0,0);
break;
case 9:
display(0,0,0,0,1,0,0);
break;
}
delay(10);
digitalWrite(activacion1,LOW);
digitalWrite(activacion2,HIGH);
switch (cifra2)
{
case 0:
display(1,0,0,0,0,0,0);
break;
54
Proyecto fin de carrera de Ingeniería de Telecomunicaciones
case 1:
display(1,1,1,0,1,1,0);
break;
case 2:
display(0,1,0,0,0,0,1);
break;
case 3:
display(0,1,0,0,1,0,0);
break;
case 4:
display(0,0,1,0,1,1,0);
break;
case 5:
display(0,0,0,1,1,0,0);
break;
case 6:
display(0,0,0,1,0,0,0);
break;
case 7:
display(1,1,0,0,1,1,0);
break;
case 8:
display(0,0,0,0,0,0,0);
break;
case 9:
display(0,0,0,0,1,0,0);
break;
}
delay(10);
digitalWrite(activacion2,LOW);
}
digitalWrite(activacion1,LOW);
digitalWrite(activacion2,LOW);
}
55
Proyecto fin de carrera de Ingeniería de Telecomunicaciones
//La rutina principal consiste en leer los datos recibidos y obedecer a los distintos pulsadores.
if (Serial.available() > 0) {
numero_cartas = Serial.read();
if (digitalRead(pulsador1)== HIGH)
{
mostrar_numero(numero_cartas);
}
}
56