{"id":9141,"date":"2024-12-20T13:54:10","date_gmt":"2024-12-20T12:54:10","guid":{"rendered":"https:\/\/blogs.etsii.urjc.es\/dseytr\/?p=9141"},"modified":"2024-12-20T13:54:13","modified_gmt":"2024-12-20T12:54:13","slug":"carrera-de-caballos-arduino-horse-racing","status":"publish","type":"post","link":"https:\/\/blogs.etsii.urjc.es\/dseytr\/carrera-de-caballos-arduino-horse-racing\/","title":{"rendered":"Carrera de caballos                                          \u201cARDUINO HORSE RACING\u201d"},"content":{"rendered":"\n<p>Grupo 1: V\u00edctor Cortinas Ruiz &#8211; Marco Cerejido Guti\u00e9rrez &#8211; Javier Haering Hij\u00f3n<\/p>\n\n\n\n<p><strong>\u00cdndice<\/strong><\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li>Introducci\u00f3n<\/li>\n\n\n\n<li>Materiales usados y precios<\/li>\n\n\n\n<li>Montaje<\/li>\n\n\n\n<li>C\u00f3digo<\/li>\n\n\n\n<li>Problemas y soluciones<\/li>\n\n\n\n<li>Conclusi\u00f3n<\/li>\n<\/ol>\n\n\n\n<p><strong>Introducci\u00f3n<\/strong><\/p>\n\n\n\n<p>Al mismo comienzo de la asignatura, se nos plante\u00f3 la tarea de realizar un proyecto con arduino para presentar a final del curso. Tras debatir y consultar con el profesor sobre varios proyectos finalmente nos decidimos a realizar una maqueta en donde sobre ella se lleve a cabo una carrera de caballos. Dicha carrera consiste en el encendido de 5 luces led mediante la pulsaci\u00f3n de un bot\u00f3n, cuando las luces se apaguen dar\u00e1n paso al movimiento de tres caballos, se elige aleatoriamente el caballo que se va a mover y este se mueve una rotaci\u00f3n de motor hacia delante en l\u00ednea recta. Cuando un caballo llegue a la meta tras 5 movimientos este ser\u00e1 el ganador y se dar\u00e1 por concluida la carrera, adem\u00e1s se ver\u00e1 por la salida del display la informaci\u00f3n del caballo (que caballo ha ganado, cu\u00e1nto tiempo ha tardado y la nacionalidad del caballo). Posteriormente comenzar\u00e1 a sonar el himno del pa\u00eds del caballo ganador y se elevar\u00e1 la bandera del pa\u00eds de dicho ganador. Finalmente se deber\u00e1 pulsar otro bot\u00f3n para reiniciar el proceso y que los caballos vuelvan a la\u00a0 posici\u00f3n de salida para la siguiente carrera.<\/p>\n\n\n\n<p><img loading=\"lazy\" decoding=\"async\" width=\"602\" height=\"488\" src=\"https:\/\/lh7-rt.googleusercontent.com\/docsz\/AD_4nXerjmQfnw7XMtCoLs0xeccSpNXlYkm9HvLmfvHOe2DuHYml73C1yyzo32EGmCKtfCEejGB4qbPzUIUFkZt_DgBb83msFkhS5tYRl5cwxg0e5C1Wby9Bjtc7sxQWhTGz0rYV4WGeug?key=StC2ir_sqnRMq9rw2t8RWhgy\"><\/p>\n\n\n\n<p><strong>Materiales usados y precios<\/strong><\/p>\n\n\n\n<p>En cuanto al uso de materiales se nos proporcion\u00f3 un kit de arduino por lo que todo lo incluido en este kid no nos gener\u00f3 ning\u00fan costo, tampoco lo hizo la madera que hemos necesitado pues se consigui\u00f3 de forma gratuita gracias a un familiar de uno de los integrantes del grupo. A continuaci\u00f3n detallamos todos los componentes usados y el costo tanto por componente extra como el costo total de estos componentes extras requeridos:<\/p>\n\n\n\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><tbody><tr><td>Nombre<\/td><td>Foto<\/td><td>Cantidad<\/td><td>Precio por unidad<\/td><\/tr><tr><td>Stepper Motor<\/td><td><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/lh7-rt.googleusercontent.com\/docsz\/AD_4nXeDPJRYI5SuSFE_9HZfk0pqAyTYa0_F5Ra6SDlYrG9-kHNibfMa2kIhYGrdNpk0qG9c3Qw9T4vtFOG_sHYYXybyhE2YgIF0meqB_dc2ujQYu8Ao3A2p7l82FOItHPnbsjHDuuG6?key=StC2ir_sqnRMq9rw2t8RWhgy\" width=\"157\" height=\"120\"><\/td><td>3<\/td><td>Proporcionado por la universidad&nbsp;(0,99 \u20ac)<\/td><\/tr><tr><td>ULN2003 Stepper Motor Driver Module<\/td><td><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/lh7-rt.googleusercontent.com\/docsz\/AD_4nXf8bqphqjT-V-IYTT77y1MOk7rQTGVJ5sJsRIOppU5dNrgEVs1twUFG8tWaPiGbW_mPAT8CBotzs5edLcVQneuwoeK75bRY9QcUvQHgjA_vdAza_3TK81X5Ju13nNPfkkMTysie?key=StC2ir_sqnRMq9rw2t8RWhgy\" width=\"149\" height=\"149\"><\/td><td>3<\/td><td>Proporcionado por la universidad&nbsp;<\/td><\/tr><tr><td>Servo Motor SG90<\/td><td><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/lh7-rt.googleusercontent.com\/docsz\/AD_4nXft5v5Zfmdh16Is6F8gHlAmMvcISiOStkgDitNSNL4cyQipgY6W-6WrFmpdiEjP7Ke65-mFleT5XL5NQHv8TF3VvA_f79eYMyuHn8GaDF9CYi26ImugUwD6hq08ymxMzDnvI1AQYA?key=StC2ir_sqnRMq9rw2t8RWhgy\" width=\"132\" height=\"132\"><\/td><td>3<\/td><td>Proporcionado por la universidad&nbsp;(0,62 \u20ac)<\/td><\/tr><tr><td>830 Tie-point Breadboard<\/td><td><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/lh7-rt.googleusercontent.com\/docsz\/AD_4nXeIA76J6fGLs4jw2B0ciQWJZyR7jmvVNJ69xMq_8gQ-W36il8Y244vqMpId6cWukrOf1SwhSp5PbhYqPdldjFvz4Zk7KDB44oH0RU598By5ZJpavw08QJ8o1JSFpPC5fkqz_aKRew?key=StC2ir_sqnRMq9rw2t8RWhgy\" width=\"157\" height=\"117\"><\/td><td>3<\/td><td>Proporcionado por la universidad(3 \u20ac)<\/td><\/tr><tr><td>LCD 1602 Module<\/td><td><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/lh7-rt.googleusercontent.com\/docsz\/AD_4nXdFIpe-AEctxmgmYu97npT4QaVnuD7oE61BV6SqcT_ZQxCfPqBtm2Jtg7GPC2CCdi2NYhR5GUJ3Fxi0R-N0RjHKBDB9cfePbUDMebYs1fRlXJjz9O-zK9M6ovJ5jph3R0oIfAHw?key=StC2ir_sqnRMq9rw2t8RWhgy\" width=\"157\" height=\"71\"><\/td><td>1<\/td><td>Proporcionado por la universidad(0,82 \u20ac)<\/td><\/tr><tr><td>Button<\/td><td><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/lh7-rt.googleusercontent.com\/docsz\/AD_4nXf5iXdE1pBL7YtT12or6HBwjt2vPie9sJmaPRZfVPXeUDnzlBMj1x1a1DwFLeKBsm5bkP5HpBoZsi4np7t7J_zftsDC1wMRvtR3HDXh-L1kzyNknbXcxrI_65U8j22SxNLvgTe89w?key=StC2ir_sqnRMq9rw2t8RWhgy\" width=\"113\" height=\"113\"><\/td><td>2<\/td><td>Proporcionado por la universidad(0,15 \u20ac)<\/td><\/tr><tr><td>Active buzzer<\/td><td><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/lh7-rt.googleusercontent.com\/docsz\/AD_4nXctGZisAE7cZXk1PNeYzh0aJgWmqCQWtGEtYSRFGMYa8QppNaqQrH4eu7CEtlUHpEc3Jwqk6GOWZX9-g0bY7Yg8gCRejgnTyr1-WyPsTcM-Buh-PyVAEkpIFolwNSt_nUW0mo5HBQ?key=StC2ir_sqnRMq9rw2t8RWhgy\" width=\"157\" height=\"155\"><\/td><td>1<\/td><td>Proporcionado por la universidad(1,37 \u20ac)<\/td><\/tr><tr><td>Potenci\u00f3metro 10K<\/td><td><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/lh7-rt.googleusercontent.com\/docsz\/AD_4nXfony6uKag80yt52DASVYtwVKkd-u-SKygNo6wqotaC2O42Yd5DmqWr0UP2zvW2XacAEVyMv2CHYbmf0ntVuwI6SH3Ie2rxomz-8S1rS4Q30AOOPg_XY5hYG8GUBoxF_KFJdJvv?key=StC2ir_sqnRMq9rw2t8RWhgy\" width=\"157\" height=\"117\"><\/td><td>1<\/td><td>Proporcionado por la universidad &nbsp; (1,55 \u20ac)<\/td><\/tr><tr><td>LED Rojo<\/td><td><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/lh7-rt.googleusercontent.com\/docsz\/AD_4nXd2mSYtXo0SzCLsYjABF2KS7IuyLCJD85QrwdANkMbi2SoxwiNObQYcBhTmV2heIRKQuMYqvLHVGfgEJv9Pf_p96NXSmFGMIeV22EUo-ask2tvWxQh9E95ei17Lp_jM9pJWtPyDMQ?key=StC2ir_sqnRMq9rw2t8RWhgy\" width=\"120\" height=\"120\"><\/td><td>5<\/td><td>Proporcionado por la universidad &nbsp; (0,15 \u20ac)<\/td><\/tr><tr><td>Arduino Mega<\/td><td><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/lh7-rt.googleusercontent.com\/docsz\/AD_4nXfqSp_ejlIRVpuBL_q7VjgYURRzB_3QehzHZ3bqfg-EEE2kzhOFNVusRU7nbL_x309WYGK8hyXP7f84jYYQ1J2FQSc18N7_N_OBXIEC3Y7WecFtGueO7mfN3aBx3_MPw3miPa0zvw?key=StC2ir_sqnRMq9rw2t8RWhgy\" width=\"136\" height=\"136\"><\/td><td>1<\/td><td>25,99 \u20ac<\/td><\/tr><tr><td>Cables<\/td><td><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/lh7-rt.googleusercontent.com\/docsz\/AD_4nXefHheeugkMqjltOezNcAj1r1F-93lEMHum5SwC6VJoBnc3H90pmu9qEeaJXz117spLdmwXDkClS1MAIJ1bhEj11zmflHhgVWQr_O3d6vVteSFz5LMzNOm6T5m2ySxDMc7lEd0-gw?key=StC2ir_sqnRMq9rw2t8RWhgy\" width=\"157\" height=\"157\"><\/td><td>50<\/td><td>Proporcionado por la universidad &nbsp; (0,12 \u20ac)<\/td><\/tr><tr><td>Piezas de madera<\/td><td><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/lh7-rt.googleusercontent.com\/docsz\/AD_4nXeSDqz62SpDIp9SRQrWUq5APxZOqDGIEN6KCilV3tCpGB4SR7uKxtTJkzvbfVmLkGWPUsNfCl5j_YTW6f3GyTqCvT3ajlo1Xjt4CsK47hzT29fEuM1GdtbRgAvMxn-uYVYiuRC7oQ?key=StC2ir_sqnRMq9rw2t8RWhgy\" width=\"129\" height=\"171\"><\/td><td>10<\/td><td>Gratis<\/td><\/tr><tr><td>Pila 9V<\/td><td><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/lh7-rt.googleusercontent.com\/docsz\/AD_4nXe87_Q6MaSUPm9N2T4B2mk_RY9hFAADy-2Iwov0xuqC-NbzE0FU7KeHdw1AuhhpH-xoMglwanPaD72Vs3mNYqLxAzGuQwQbLfeTylFmI84atRx2KmTSFmpowxi7scJNVedQYliN5Q?key=StC2ir_sqnRMq9rw2t8RWhgy\" width=\"120\" height=\"90\"><\/td><td>1<\/td><td>2,42<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<p><strong>Montaje&nbsp;<\/strong><\/p>\n\n\n\n<p>Para realizar el montaje decidimos hacerlo por partes, es decir fuimos probando las funcionalidades por separado, primero montamos en una protoboard los leds y el buzzer los programamos para que se encendieran como un sem\u00e1foro de la F\u00f3rmula 1 y despu\u00e9s probamos que el buzzer funcionase haciendo sonar el himno de Espa\u00f1a.&nbsp;<\/p>\n\n\n\n<figure class=\"wp-block-image\"><img loading=\"lazy\" decoding=\"async\" width=\"1600\" height=\"900\" src=\"https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-content\/uploads\/sites\/8\/2024\/12\/AD_4nXfLJcaPoJMEJ0pHYYOrE2gYs-uHw8mEjt5X-fHWjhGQX_go95IzJwgYkSKu2eqXiEMZpi8f_xgM7HR4StVZX-ZF4fJI778qdqd7oQbBuUrWrInOFRW-aW3cLJdDR7fbyGC133PiJg.jpg\" alt=\"\" class=\"wp-image-9330\" srcset=\"https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-content\/uploads\/sites\/8\/2024\/12\/AD_4nXfLJcaPoJMEJ0pHYYOrE2gYs-uHw8mEjt5X-fHWjhGQX_go95IzJwgYkSKu2eqXiEMZpi8f_xgM7HR4StVZX-ZF4fJI778qdqd7oQbBuUrWrInOFRW-aW3cLJdDR7fbyGC133PiJg.jpg 1600w, https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-content\/uploads\/sites\/8\/2024\/12\/AD_4nXfLJcaPoJMEJ0pHYYOrE2gYs-uHw8mEjt5X-fHWjhGQX_go95IzJwgYkSKu2eqXiEMZpi8f_xgM7HR4StVZX-ZF4fJI778qdqd7oQbBuUrWrInOFRW-aW3cLJdDR7fbyGC133PiJg-300x169.jpg 300w, https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-content\/uploads\/sites\/8\/2024\/12\/AD_4nXfLJcaPoJMEJ0pHYYOrE2gYs-uHw8mEjt5X-fHWjhGQX_go95IzJwgYkSKu2eqXiEMZpi8f_xgM7HR4StVZX-ZF4fJI778qdqd7oQbBuUrWrInOFRW-aW3cLJdDR7fbyGC133PiJg-1024x576.jpg 1024w, https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-content\/uploads\/sites\/8\/2024\/12\/AD_4nXfLJcaPoJMEJ0pHYYOrE2gYs-uHw8mEjt5X-fHWjhGQX_go95IzJwgYkSKu2eqXiEMZpi8f_xgM7HR4StVZX-ZF4fJI778qdqd7oQbBuUrWrInOFRW-aW3cLJdDR7fbyGC133PiJg-768x432.jpg 768w, https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-content\/uploads\/sites\/8\/2024\/12\/AD_4nXfLJcaPoJMEJ0pHYYOrE2gYs-uHw8mEjt5X-fHWjhGQX_go95IzJwgYkSKu2eqXiEMZpi8f_xgM7HR4StVZX-ZF4fJI778qdqd7oQbBuUrWrInOFRW-aW3cLJdDR7fbyGC133PiJg-1536x864.jpg 1536w\" sizes=\"auto, (max-width: 1600px) 100vw, 1600px\" \/><\/figure>\n\n\n\n<p>Despu\u00e9s nos pusimos a montar y programar el display con un potenci\u00f3metro para regular el brillo del display, conseguimos hacer que funcione y que mostrara por pantalla el caballo ganador, el tiempo que ha tardado en llegar a meta y su nacionalidad.<\/p>\n\n\n\n<figure class=\"wp-block-image\"><img loading=\"lazy\" decoding=\"async\" width=\"1600\" height=\"900\" src=\"https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-content\/uploads\/sites\/8\/2024\/12\/AD_4nXcWPTIrzd1jHHXc5jmDCPP1IX-c59wZRdgUAjruNSb7Tc1HG84ZwzFcmUNqEx3ed4Ts6ice9yi-lq7KCqP_doBvFfoidIJ2nb4xVmhzTAMh94JKLSC5tdicvJRIdbRGFicw2fH6_g.jpg\" alt=\"\" class=\"wp-image-9331\" srcset=\"https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-content\/uploads\/sites\/8\/2024\/12\/AD_4nXcWPTIrzd1jHHXc5jmDCPP1IX-c59wZRdgUAjruNSb7Tc1HG84ZwzFcmUNqEx3ed4Ts6ice9yi-lq7KCqP_doBvFfoidIJ2nb4xVmhzTAMh94JKLSC5tdicvJRIdbRGFicw2fH6_g.jpg 1600w, https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-content\/uploads\/sites\/8\/2024\/12\/AD_4nXcWPTIrzd1jHHXc5jmDCPP1IX-c59wZRdgUAjruNSb7Tc1HG84ZwzFcmUNqEx3ed4Ts6ice9yi-lq7KCqP_doBvFfoidIJ2nb4xVmhzTAMh94JKLSC5tdicvJRIdbRGFicw2fH6_g-300x169.jpg 300w, https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-content\/uploads\/sites\/8\/2024\/12\/AD_4nXcWPTIrzd1jHHXc5jmDCPP1IX-c59wZRdgUAjruNSb7Tc1HG84ZwzFcmUNqEx3ed4Ts6ice9yi-lq7KCqP_doBvFfoidIJ2nb4xVmhzTAMh94JKLSC5tdicvJRIdbRGFicw2fH6_g-1024x576.jpg 1024w, https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-content\/uploads\/sites\/8\/2024\/12\/AD_4nXcWPTIrzd1jHHXc5jmDCPP1IX-c59wZRdgUAjruNSb7Tc1HG84ZwzFcmUNqEx3ed4Ts6ice9yi-lq7KCqP_doBvFfoidIJ2nb4xVmhzTAMh94JKLSC5tdicvJRIdbRGFicw2fH6_g-768x432.jpg 768w, https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-content\/uploads\/sites\/8\/2024\/12\/AD_4nXcWPTIrzd1jHHXc5jmDCPP1IX-c59wZRdgUAjruNSb7Tc1HG84ZwzFcmUNqEx3ed4Ts6ice9yi-lq7KCqP_doBvFfoidIJ2nb4xVmhzTAMh94JKLSC5tdicvJRIdbRGFicw2fH6_g-1536x864.jpg 1536w\" sizes=\"auto, (max-width: 1600px) 100vw, 1600px\" \/><\/figure>\n\n\n\n<p>Por \u00faltimo montamos los tres motores con los botones de inicio y de reinicio, tras varias pruebas de ensayo-error conseguimos hacer que funcionaran correctamente, tanto hacia adelante como hacia atr\u00e1s.<\/p>\n\n\n\n<figure class=\"wp-block-image\"><img loading=\"lazy\" decoding=\"async\" width=\"1600\" height=\"900\" src=\"https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-content\/uploads\/sites\/8\/2024\/12\/AD_4nXfwxbtHN1VtxsgU6fsgOz8mH7DMFFu9n8UdxM13TD497YqnihcVGt5ojlDumA6FWohb5oBx7l35hJHM0t1qutfcFlNNiuaoC6ssGnzPnrcWrKewQJwJWlRUwZVPvJ-b_ZW6DiDr.jpg\" alt=\"\" class=\"wp-image-9332\" srcset=\"https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-content\/uploads\/sites\/8\/2024\/12\/AD_4nXfwxbtHN1VtxsgU6fsgOz8mH7DMFFu9n8UdxM13TD497YqnihcVGt5ojlDumA6FWohb5oBx7l35hJHM0t1qutfcFlNNiuaoC6ssGnzPnrcWrKewQJwJWlRUwZVPvJ-b_ZW6DiDr.jpg 1600w, https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-content\/uploads\/sites\/8\/2024\/12\/AD_4nXfwxbtHN1VtxsgU6fsgOz8mH7DMFFu9n8UdxM13TD497YqnihcVGt5ojlDumA6FWohb5oBx7l35hJHM0t1qutfcFlNNiuaoC6ssGnzPnrcWrKewQJwJWlRUwZVPvJ-b_ZW6DiDr-300x169.jpg 300w, https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-content\/uploads\/sites\/8\/2024\/12\/AD_4nXfwxbtHN1VtxsgU6fsgOz8mH7DMFFu9n8UdxM13TD497YqnihcVGt5ojlDumA6FWohb5oBx7l35hJHM0t1qutfcFlNNiuaoC6ssGnzPnrcWrKewQJwJWlRUwZVPvJ-b_ZW6DiDr-1024x576.jpg 1024w, https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-content\/uploads\/sites\/8\/2024\/12\/AD_4nXfwxbtHN1VtxsgU6fsgOz8mH7DMFFu9n8UdxM13TD497YqnihcVGt5ojlDumA6FWohb5oBx7l35hJHM0t1qutfcFlNNiuaoC6ssGnzPnrcWrKewQJwJWlRUwZVPvJ-b_ZW6DiDr-768x432.jpg 768w, https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-content\/uploads\/sites\/8\/2024\/12\/AD_4nXfwxbtHN1VtxsgU6fsgOz8mH7DMFFu9n8UdxM13TD497YqnihcVGt5ojlDumA6FWohb5oBx7l35hJHM0t1qutfcFlNNiuaoC6ssGnzPnrcWrKewQJwJWlRUwZVPvJ-b_ZW6DiDr-1536x864.jpg 1536w\" sizes=\"auto, (max-width: 1600px) 100vw, 1600px\" \/><\/figure>\n\n\n\n<p>Una vez que tuvimos un funcionamiento correcto de todas las funcionalidades empezamos a montar el conjunto entero y combinar las funcionalidades entre s\u00ed y con el material externo que necesitamos.<\/p>\n\n\n\n<figure class=\"wp-block-image\"><img loading=\"lazy\" decoding=\"async\" width=\"1200\" height=\"1600\" src=\"https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-content\/uploads\/sites\/8\/2024\/12\/AD_4nXd0vh5vKVC9jxAiAhMORSZJkn9AxYXEGBCjD-i01UExI9ZOohQ6zVpx40kk2yHQ4eK9FJb0N8KShD4edvsSje_mh0q01oQwY2V1F95cfIwhvtSCgmpw-k5JF72s43eL7S78VvbaGQ.jpg\" alt=\"\" class=\"wp-image-9336\" srcset=\"https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-content\/uploads\/sites\/8\/2024\/12\/AD_4nXd0vh5vKVC9jxAiAhMORSZJkn9AxYXEGBCjD-i01UExI9ZOohQ6zVpx40kk2yHQ4eK9FJb0N8KShD4edvsSje_mh0q01oQwY2V1F95cfIwhvtSCgmpw-k5JF72s43eL7S78VvbaGQ.jpg 1200w, https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-content\/uploads\/sites\/8\/2024\/12\/AD_4nXd0vh5vKVC9jxAiAhMORSZJkn9AxYXEGBCjD-i01UExI9ZOohQ6zVpx40kk2yHQ4eK9FJb0N8KShD4edvsSje_mh0q01oQwY2V1F95cfIwhvtSCgmpw-k5JF72s43eL7S78VvbaGQ-225x300.jpg 225w, https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-content\/uploads\/sites\/8\/2024\/12\/AD_4nXd0vh5vKVC9jxAiAhMORSZJkn9AxYXEGBCjD-i01UExI9ZOohQ6zVpx40kk2yHQ4eK9FJb0N8KShD4edvsSje_mh0q01oQwY2V1F95cfIwhvtSCgmpw-k5JF72s43eL7S78VvbaGQ-768x1024.jpg 768w, https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-content\/uploads\/sites\/8\/2024\/12\/AD_4nXd0vh5vKVC9jxAiAhMORSZJkn9AxYXEGBCjD-i01UExI9ZOohQ6zVpx40kk2yHQ4eK9FJb0N8KShD4edvsSje_mh0q01oQwY2V1F95cfIwhvtSCgmpw-k5JF72s43eL7S78VvbaGQ-1152x1536.jpg 1152w\" sizes=\"auto, (max-width: 1200px) 100vw, 1200px\" \/><\/figure>\n\n\n\n<figure class=\"wp-block-image\"><img loading=\"lazy\" decoding=\"async\" width=\"1200\" height=\"1600\" src=\"https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-content\/uploads\/sites\/8\/2024\/12\/AD_4nXcvXdc0Niw9aJYivmInxsc_xqUe4-16vejLM3sF0Y7-Di3ODCTwVwY5GxmWKD9BqzLEUTRfxyXBooqj9UHOb26ChEdBGUW3ffswBF56YEOp4eNXpitg_YhCZP4W4OCshQfFfvccXw.jpg\" alt=\"\" class=\"wp-image-9334\" srcset=\"https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-content\/uploads\/sites\/8\/2024\/12\/AD_4nXcvXdc0Niw9aJYivmInxsc_xqUe4-16vejLM3sF0Y7-Di3ODCTwVwY5GxmWKD9BqzLEUTRfxyXBooqj9UHOb26ChEdBGUW3ffswBF56YEOp4eNXpitg_YhCZP4W4OCshQfFfvccXw.jpg 1200w, https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-content\/uploads\/sites\/8\/2024\/12\/AD_4nXcvXdc0Niw9aJYivmInxsc_xqUe4-16vejLM3sF0Y7-Di3ODCTwVwY5GxmWKD9BqzLEUTRfxyXBooqj9UHOb26ChEdBGUW3ffswBF56YEOp4eNXpitg_YhCZP4W4OCshQfFfvccXw-225x300.jpg 225w, https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-content\/uploads\/sites\/8\/2024\/12\/AD_4nXcvXdc0Niw9aJYivmInxsc_xqUe4-16vejLM3sF0Y7-Di3ODCTwVwY5GxmWKD9BqzLEUTRfxyXBooqj9UHOb26ChEdBGUW3ffswBF56YEOp4eNXpitg_YhCZP4W4OCshQfFfvccXw-768x1024.jpg 768w, https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-content\/uploads\/sites\/8\/2024\/12\/AD_4nXcvXdc0Niw9aJYivmInxsc_xqUe4-16vejLM3sF0Y7-Di3ODCTwVwY5GxmWKD9BqzLEUTRfxyXBooqj9UHOb26ChEdBGUW3ffswBF56YEOp4eNXpitg_YhCZP4W4OCshQfFfvccXw-1152x1536.jpg 1152w\" sizes=\"auto, (max-width: 1200px) 100vw, 1200px\" \/><\/figure>\n\n\n\n<p>Juntando tenemos un primer prototipo final<\/p>\n\n\n\n<figure class=\"wp-block-image\"><img loading=\"lazy\" decoding=\"async\" width=\"1200\" height=\"1600\" src=\"https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-content\/uploads\/sites\/8\/2024\/12\/AD_4nXf6AYi32RovAsPboz9UxMMxlrI9DfEj7V81fx2FZnPNtLGRJETuaiZ_bislaAO35DYGIPoN2oIujjG19EDqnWp4NP6zWKypavdWlCktsdtz_fiqW4V9QSATm8NlKVmkRQH-HNYaLw.jpg\" alt=\"\" class=\"wp-image-9335\" srcset=\"https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-content\/uploads\/sites\/8\/2024\/12\/AD_4nXf6AYi32RovAsPboz9UxMMxlrI9DfEj7V81fx2FZnPNtLGRJETuaiZ_bislaAO35DYGIPoN2oIujjG19EDqnWp4NP6zWKypavdWlCktsdtz_fiqW4V9QSATm8NlKVmkRQH-HNYaLw.jpg 1200w, https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-content\/uploads\/sites\/8\/2024\/12\/AD_4nXf6AYi32RovAsPboz9UxMMxlrI9DfEj7V81fx2FZnPNtLGRJETuaiZ_bislaAO35DYGIPoN2oIujjG19EDqnWp4NP6zWKypavdWlCktsdtz_fiqW4V9QSATm8NlKVmkRQH-HNYaLw-225x300.jpg 225w, https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-content\/uploads\/sites\/8\/2024\/12\/AD_4nXf6AYi32RovAsPboz9UxMMxlrI9DfEj7V81fx2FZnPNtLGRJETuaiZ_bislaAO35DYGIPoN2oIujjG19EDqnWp4NP6zWKypavdWlCktsdtz_fiqW4V9QSATm8NlKVmkRQH-HNYaLw-768x1024.jpg 768w, https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-content\/uploads\/sites\/8\/2024\/12\/AD_4nXf6AYi32RovAsPboz9UxMMxlrI9DfEj7V81fx2FZnPNtLGRJETuaiZ_bislaAO35DYGIPoN2oIujjG19EDqnWp4NP6zWKypavdWlCktsdtz_fiqW4V9QSATm8NlKVmkRQH-HNYaLw-1152x1536.jpg 1152w\" sizes=\"auto, (max-width: 1200px) 100vw, 1200px\" \/><\/figure>\n\n\n\n<p>Como resultado de todo el montaje obtenemos la maqueta final del proyecto:<\/p>\n\n\n\n<figure class=\"wp-block-image\"><img loading=\"lazy\" decoding=\"async\" width=\"1600\" height=\"1200\" src=\"https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-content\/uploads\/sites\/8\/2024\/12\/AD_4nXerjmQfnw7XMtCoLs0xeccSpNXlYkm9HvLmfvHOe2DuHYml73C1yyzo32EGmCKtfCEejGB4qbPzUIUFkZt_DgBb83msFkhS5tYRl5cwxg0e5C1Wby9Bjtc7sxQWhTGz0rYV4WGeug.jpg\" alt=\"\" class=\"wp-image-9333\" srcset=\"https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-content\/uploads\/sites\/8\/2024\/12\/AD_4nXerjmQfnw7XMtCoLs0xeccSpNXlYkm9HvLmfvHOe2DuHYml73C1yyzo32EGmCKtfCEejGB4qbPzUIUFkZt_DgBb83msFkhS5tYRl5cwxg0e5C1Wby9Bjtc7sxQWhTGz0rYV4WGeug.jpg 1600w, https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-content\/uploads\/sites\/8\/2024\/12\/AD_4nXerjmQfnw7XMtCoLs0xeccSpNXlYkm9HvLmfvHOe2DuHYml73C1yyzo32EGmCKtfCEejGB4qbPzUIUFkZt_DgBb83msFkhS5tYRl5cwxg0e5C1Wby9Bjtc7sxQWhTGz0rYV4WGeug-300x225.jpg 300w, https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-content\/uploads\/sites\/8\/2024\/12\/AD_4nXerjmQfnw7XMtCoLs0xeccSpNXlYkm9HvLmfvHOe2DuHYml73C1yyzo32EGmCKtfCEejGB4qbPzUIUFkZt_DgBb83msFkhS5tYRl5cwxg0e5C1Wby9Bjtc7sxQWhTGz0rYV4WGeug-1024x768.jpg 1024w, https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-content\/uploads\/sites\/8\/2024\/12\/AD_4nXerjmQfnw7XMtCoLs0xeccSpNXlYkm9HvLmfvHOe2DuHYml73C1yyzo32EGmCKtfCEejGB4qbPzUIUFkZt_DgBb83msFkhS5tYRl5cwxg0e5C1Wby9Bjtc7sxQWhTGz0rYV4WGeug-768x576.jpg 768w, https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-content\/uploads\/sites\/8\/2024\/12\/AD_4nXerjmQfnw7XMtCoLs0xeccSpNXlYkm9HvLmfvHOe2DuHYml73C1yyzo32EGmCKtfCEejGB4qbPzUIUFkZt_DgBb83msFkhS5tYRl5cwxg0e5C1Wby9Bjtc7sxQWhTGz0rYV4WGeug-1536x1152.jpg 1536w\" sizes=\"auto, (max-width: 1600px) 100vw, 1600px\" \/><\/figure>\n\n\n\n<p><strong>C\u00f3digo<\/strong><\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>#include &lt;Stepper.h&gt;\n#include &lt;LiquidCrystal.h&gt;\n#include &lt;Servo.h&gt;\n\n\/\/ NOTAS HIMNO ESPA\u00d1A\n#define DO 523.25\n#define RE 587.33\n#define MI 659.26\n#define FA 698.46\n#define SOL 783.99\n#define LA 880\n#define SI 987.77\n#define RE2 1174.66\n#define DO2 1062\n#define DoS 554.37\n#define RES 622.25\n#define FAS 739.99\n#define SOLS 830.61\n#define FAS2 1479.98\n#define a 1000\n#define b 500\n\n\/\/ NOTAS HIMNO EEUU\nint NOTE_B0 = 31;\nint NOTE_C1 = 33;\nint NOTE_CS1 = 35;\nint NOTE_D1 = 37;\nint NOTE_DS1 = 39;\nint NOTE_E1 = 41;\nint NOTE_F1 = 44;\nint NOTE_FS1 = 46;\nint NOTE_G1 = 49;\nint NOTE_GS1 = 52;\nint NOTE_A1 = 55;\nint NOTE_AS1 = 58;\nint NOTE_B1 = 62;\nint NOTE_C2 = 65;\nint NOTE_CS2 = 69;\nint NOTE_D2 = 73;\nint NOTE_E2 = 82;\nint NOTE_F2 = 87;\nint NOTE_FS2 = 93;\nint NOTE_G2 = 98;\nint NOTE_GS2 = 104;\nint NOTE_A2 = 110;\nint NOTE_AS2 = 117;\nint NOTE_B2 = 123;\nint NOTE_C3 = 131;\nint NOTE_CS3 = 139;\nint NOTE_D3 = 147;\nint NOTE_DS3 = 156;\nint NOTE_E3 = 165;\nint NOTE_F3 = 175;\nint NOTE_FS3 = 185;\nint NOTE_G3 = 196;\nint NOTE_GS3 = 208;\nint NOTE_A3 = 220;\nint NOTE_AS3 = 233;\nint NOTE_B3 = 247;\nint NOTE_C4 = 262;\nint NOTE_CS4 = 277;\nint NOTE_D4 = 294;\nint NOTE_DS4 = 311;\nint NOTE_E4 = 330;\nint NOTE_F4 = 349;\nint NOTE_FS4 = 370;\nint NOTE_G4 = 392;\nint NOTE_GS4 = 415;\nint NOTE_A4 = 440;\nint NOTE_AS4 = 466;\nint NOTE_B4 = 494;\nint NOTE_C5 = 523;\nint NOTE_CS5 = 554;\nint NOTE_D5 = 587;\nint NOTE_DS5 = 622;\nint NOTE_E5 = 659;\nint NOTE_F5 = 698;\nint NOTE_FS5 = 740;\nint NOTE_G5 = 784;\nint NOTE_GS5 = 831;\nint NOTE_A5 = 880;\nint NOTE_AS5 = 932;\nint NOTE_B5 = 988;\nint NOTE_C6 = 1047;\nint NOTE_CS6 = 1109;\nint NOTE_D6 = 1175;\nint NOTE_DS6 = 1245;\nint NOTE_E6 = 1319;\nint NOTE_F6 = 1397;\nint NOTE_FS6 = 1480;\nint NOTE_G6 = 1568;\nint NOTE_GS6 = 1661;\nint NOTE_A6 = 1760;\nint NOTE_AS6 = 1865;\nint NOTE_B6 = 1976;\nint NOTE_C7 = 2093;\nint NOTE_CS7 = 2217;\nint NOTE_D7 = 2349;\nint NOTE_DS7 = 2489;\nint NOTE_E7 = 2637;\nint NOTE_F7 = 2794;\nint NOTE_FS7 = 2960;\nint NOTE_G7 = 3136;\nint NOTE_GS7 = 3322;\nint NOTE_A7 = 3520;\nint NOTE_AS7 = 3729;\nint NOTE_B7 = 3951;\nint NOTE_C8 = 4186;\nint NOTE_CS8 = 4435;\nint NOTE_D8 = 4699;\nint NOTE_DS8 = 4978;\n\nint tempo = 500;\n\n\/\/ NOTAS HIMNO INGLATERRA\nconst int a4 = 440;\nconst int b4 = 493.88;\nconst int cs5 = 570;\nconst int d5 = 587.33;\nconst int e5 = 659.25;\nconst int fs5 = 740;\nconst int g5 = 784;\nconst int gs5 = 830.61;\nconst int a5 = 885;\nconst int as5 = 920;\nconst int b5 = 987.77;\nconst int c6 = 1046.5;\nconst int cs6 = 1107.73;\nconst int d6 = 1174.66;\nconst int e6 = 1318.51;\nconst int f6 = 1396.91;\nconst int fs6 = 1479.98;\nconst int gs6 = 1661.22;\nconst int as6 = 1864.66;\nconst int notebreak = 50;\n\n\/\/ DECLARACI\u00d3N DE PINES Y VARIABLES\nint buzzer = 53; \n\nint BOTON_INICIO = A0;\nint botonInicioNuevo;\nint botonInicioAntiguo = 1;\n\nint BOTON_RESET = A1;\nint botonResetNuevo;\nint botonResetAntiguo = 1;\n\nint contadorBoton = 0;\n\nint LED1 = 22;\nint LED2 = 23;\nint LED3 = 24;\nint LED4 = 25;\nint LED5 = 26;\nint empezar = 0;\n\nint pasosPorRevolucion1 = 2048;\nint velocidadMotor1 = 15;\n\nint pasosPorRevolucion2 = 2048;\nint velocidadMotor2 = 15;\n\nint pasosPorRevolucion3 = 2048;\nint velocidadMotor3 = 15;\n\nlong numeroAleatorio;\n\nint contadorCaballo1 = 0;\nint contadorCaballo2 = 0;\nint contadorCaballo3 = 0;\n\nint tiempoDelay = 5000;\n\nStepper motor1(pasosPorRevolucion1, 10, 12, 11, 13);\nStepper motor2(pasosPorRevolucion2, 6, 8, 7, 9);\nStepper motor3(pasosPorRevolucion3, 2, 4, 3, 5);\n\nint motor1_IN1 = 13;\nint motor1_IN2 = 12;\nint motor1_IN3 = 11;\nint motor1_IN4 = 10;\n\nint motor2_IN1 = 9;\nint motor2_IN2 = 8;\nint motor2_IN3 = 7;\nint motor2_IN4 = 6;\n\nint motor3_IN1 = 5;\nint motor3_IN2 = 4;\nint motor3_IN3 = 3;\nint motor3_IN4 = 2;\n\nLiquidCrystal lcd(35, 34, 36, 37, 38, 39);\n\n\/\/ Variables de tiempo\nunsigned long tiempoInicio = 0;\nunsigned long tiempoFin = 0;\n\nServo servoMotor1;\nServo servoMotor2;\nServo servoMotor3;\n\n\/\/ INICIALIZAMOS LOS COMPONENTES\nvoid setup() {\n  Serial.begin(9600);\n  randomSeed(analogRead(0));\n  \n  motor1.setSpeed(velocidadMotor1);\n  motor2.setSpeed(velocidadMotor2);\n  motor3.setSpeed(velocidadMotor3);\n\n  pinMode(BOTON_INICIO, INPUT);\n  pinMode(BOTON_RESET, INPUT);\n\n  pinMode(LED1, OUTPUT);\n  pinMode(LED2, OUTPUT);\n  pinMode(LED3, OUTPUT);\n  pinMode(LED4, OUTPUT);\n  pinMode(LED5, OUTPUT);\n\n  pinMode(buzzer, OUTPUT); \n\n  servoMotor1.attach(46);\n  servoMotor2.attach(47);\n  servoMotor3.attach(49);\n\n  servoMotor1.write(0);\n  servoMotor2.write(0);\n  servoMotor3.write(0);\n}\n\nvoid loop() {  \n  \/\/ Pulsando el boton se inicializa la carrera\n  botonInicioNuevo = digitalRead(BOTON_INICIO);\n  delay(100);\n\n  \/\/ Comprobamos el valor del boton y si se ha pulsado, comienza la carrera\n  if ((botonInicioNuevo == 0 &amp;&amp; botonInicioAntiguo == 1) || contadorBoton == 1) {  \n    contadorBoton = 1;\n\n    \/\/ Comienza el semaforo\n    if (empezar == 0) {\n      digitalWrite(LED1, HIGH);\n      tone(buzzer, 500);\n      delay(500);\n      noTone(buzzer);\n      delay(500);\n    \n      digitalWrite(LED2, HIGH);\n      tone(buzzer, 500);\n      delay(500);\n      noTone(buzzer);\n      delay(500);\n    \n      digitalWrite(LED3, HIGH);\n      tone(buzzer, 500);\n      delay(500);\n      noTone(buzzer);\n      delay(500);\n    \n      digitalWrite(LED4, HIGH);\n      tone(buzzer, 500);\n      delay(500);\n      noTone(buzzer);\n      delay(500);\n    \n      digitalWrite(LED5, HIGH);\n      tone(buzzer, 600);\n      delay(500);\n      noTone(buzzer);\n      delay(500);\n    \n      digitalWrite(LED1, LOW);\n      digitalWrite(LED2, LOW);\n      digitalWrite(LED3, LOW);\n      digitalWrite(LED4, LOW);\n      digitalWrite(LED5, LOW);\n  \n      empezar++;\n      \n      \/\/ Almacena la hora en la que ha empezado la carrera\n      tiempoInicio = millis();\n    }\n\n    \/\/ Genera y almacena el numero aleatorio\n    numeroAleatorio = random(1, 4);\n    Serial.println(\"Numero Aleatorio: \" + String(numeroAleatorio));\n\n    \/\/ Comprueba si se ha llegado a la meta con un contador de movimientos\n    if (contadorCaballo1 &lt; 5 || contadorCaballo2 &lt; 5 || contadorCaballo3 &lt; 5) {\n      \/\/ Si sale el UNO de forma aleatoria, se activa el motor 1 y avanza la cinta con el caballo\n      if (numeroAleatorio == 1) {\n        Serial.println(\"Numero Aleatorio que es UNO: \" + String(numeroAleatorio));\n        Serial.println(\"\u00a1Se mueve caballo UNO!\");\n        encender(motor1_IN1, motor1_IN2, motor1_IN3, motor1_IN4);\n        motor1.step(pasosPorRevolucion1);\n        apagar(motor1_IN1, motor1_IN2, motor1_IN3, motor1_IN4);\n        contadorCaballo1++;\n        Serial.println(\"Contador: \"  + String(contadorCaballo1));\n        delay(tiempoDelay);\n      } else if (numeroAleatorio == 2) {  \/\/ Si sale el DOS de forma aleatoria, se activa el motor 2 y avanza la cinta con el caballo\n        Serial.println(\"Numero Aleatorio que es DOS:\" + String(numeroAleatorio));\n        Serial.println(\"\u00a1Se mueve caballo DOS!\");\n        encender(motor2_IN1, motor2_IN2, motor2_IN3, motor2_IN4);\n        motor2.step(pasosPorRevolucion2);\n        apagar(motor2_IN1, motor2_IN2, motor2_IN3, motor2_IN4);\n        contadorCaballo2++;\n        Serial.println(\"Contador: \"  + String(contadorCaballo2));\n        delay(tiempoDelay);\n      } else {  \/\/ Si sale el TRES de forma aleatoria, se activa el motor 3 y avanza la cinta con el caballo\n        Serial.println(\"Numero Aleatorio que es TRES:\" + String(numeroAleatorio));\n        Serial.println(\"\u00a1Se mueve caballo TRES!\");\n        encender(motor3_IN1, motor3_IN2, motor3_IN3, motor3_IN4);\n        motor3.step(pasosPorRevolucion3);\n        apagar(motor3_IN1, motor3_IN2, motor3_IN3, motor3_IN4);\n        contadorCaballo3++;\n        Serial.println(\"Contador: \"  + String(contadorCaballo3));\n        delay(tiempoDelay);\n      }\n    }\n\n    \/\/ Comprueba si ha ganado y comienza el protocolo de victoria, con el display, la bandera y el himno\n    if (contadorCaballo1 == 5) {\n      \/\/ Almacena la hora en la que ha finalizado la carrera\n      tiempoFin = millis();\n\n      \/\/ Resta los valores de inicio y fin para calcular el tiempo que ha transcurrido en la carrera\n      unsigned long tiempoTotal = tiempoFin - tiempoInicio;\n\n      \/\/ Calculamos los segundos y minutos\n      unsigned long segundos = tiempoTotal \/ 1000;\n      unsigned long minutos = segundos \/ 60;\n      \n      segundos = segundos % 60;\n      \n      lcd.begin(16, 2);\n      lcd.setCursor(0, 0);\n      lcd.print(\"GANADOR DE\");\n      lcd.setCursor(0, 1);\n      lcd.print(\"LA CARRERA\");\n      delay(5000);\n      \n      String nombre = \"V. Cortinas\";\n      String nacionalidad = \"ESP\";\n    \n      lcd.clear();\n      lcd.setCursor(0, 0);\n      lcd.print(nombre);\n      lcd.setCursor(13, 0);\n      lcd.print(nacionalidad);\n      lcd.setCursor(0, 1);\n      lcd.print(\"TIEMPO:\");\n      lcd.setCursor(9, 1);\n      if (minutos &lt; 10) {\n        lcd.print(\"0\");\n      }\n      lcd.print(minutos);\n      lcd.print(\":\");\n      if (segundos &lt; 10) {\n        lcd.print(\"0\");\n      }\n      lcd.print(segundos);\n      \n      Serial.println(\"\u00a1Ha GANADO el caballo UNO!\");\n      for (int i = 0; i &lt;= 90; i++) {\n        servoMotor1.write(i);\n        delay(100);\n      }\n  \n      himnoEspana();\n    \n      contadorBoton--;\n      empezar = 0;\n    } \n\n    \/\/ Comprueba si ha ganado y comienza el protocolo de victoria, con el display, la bandera y el himno\n    if (contadorCaballo2 == 5) {\n      \/\/ Almacena la hora en la que ha finalizado la carrera\n      tiempoFin = millis();\n\n      \/\/ Resta los valores de inicio y fin para calcular el tiempo que ha transcurrido en la carrera\n      unsigned long tiempoTotal = tiempoFin - tiempoInicio;\n\n      \/\/ Calculamos los segundos y minutos\n      unsigned long segundos = tiempoTotal \/ 1000;\n      unsigned long minutos = segundos \/ 60;\n      \n      segundos = segundos % 60;\n      \n      lcd.begin(16, 2);\n      lcd.setCursor(0, 0);\n      lcd.print(\"GANADOR DE\");\n      lcd.setCursor(0, 1);\n      lcd.print(\"LA CARRERA\");\n      delay(5000);\n    \n      String nombre = \"M. Cerejido\";\n      String nacionalidad = \"USA\";\n      \n      lcd.clear();\n      lcd.setCursor(0, 0);\n      lcd.print(nombre);\n      lcd.setCursor(13, 0);\n      lcd.print(nacionalidad);\n      lcd.setCursor(0, 1);\n      lcd.print(\"TIEMPO:\");\n      lcd.setCursor(9, 1);\n      if (minutos &lt; 10) {\n        lcd.print(\"0\");\n      }\n      lcd.print(minutos);\n      lcd.print(\":\");\n      if (segundos &lt; 10) {\n        lcd.print(\"0\");\n      }\n      lcd.print(segundos);\n          \n      Serial.println(\"\u00a1Ha GANADO el caballo DOS!\");\n      for (int i = 0; i &lt;= 90; i++) {\n        servoMotor2.write(i);\n        delay(100);\n      }\n      \n      himnoEEUU();\n      \n      contadorBoton--;\n      empezar = 0;\n    }\n\n    \/\/ Comprueba si ha ganado y comienza el protocolo de victoria, con el display, la bandera y el himno\n    if (contadorCaballo3 == 5) { \n      \/\/ Almacena la hora en la que ha finalizado la carrera\n      tiempoFin = millis();\n\n      \/\/ Resta los valores de inicio y fin para calcular el tiempo que ha transcurrido en la carrera\n      unsigned long tiempoTotal = tiempoFin - tiempoInicio;\n\n      \/\/ Calculamos los segundos y minutos\n      unsigned long segundos = tiempoTotal \/ 1000;\n      unsigned long minutos = segundos \/ 60;\n      \n      segundos = segundos % 60;\n      \n      lcd.begin(16, 2);\n      lcd.setCursor(0, 0);\n      lcd.print(\"GANADOR DE\");\n      lcd.setCursor(0, 1);\n      lcd.print(\"LA CARRERA\");\n      delay(5000);\n    \n      String nombre = \"J. Haering\";\n      String nacionalidad = \"ENG\";\n      \n      lcd.clear();\n      lcd.setCursor(0, 0);\n      lcd.print(nombre);\n      lcd.setCursor(13, 0);\n      lcd.print(nacionalidad);\n      lcd.setCursor(0, 1);\n      lcd.print(\"TIEMPO:\");\n      lcd.setCursor(9, 1);\n      if (minutos &lt; 10) {\n        lcd.print(\"0\");\n      }\n      lcd.print(minutos);\n      lcd.print(\":\");\n      if (segundos &lt; 10) {\n        lcd.print(\"0\");\n      }\n      lcd.print(segundos);\n         \n      Serial.println(\"\u00a1Ha GANADO el caballo TRES!\");\n      for (int i = 0; i &lt;= 90; i++) {\n        servoMotor3.write(i);\n        delay(100);\n      }\n  \n      himnoInglaterra();\n      \n      contadorBoton--;\n      empezar = 0;\n    }\n  }\n\n  botonInicioAntiguo = botonInicioNuevo;\n\n  \/\/ Pulsando el boton se reinician todos los valores y los caballos vuelven a la posicion de salida\n  botonResetNuevo = digitalRead(BOTON_RESET);\n  delay(100);\n\n   if (botonResetNuevo == 0 &amp;&amp; botonResetAntiguo == 1) {\n      \/\/ Se resetea el motor UNO\n      for (int i = 1; i &lt;= contadorCaballo1; i++) {\n        encender(motor1_IN1, motor1_IN2, motor1_IN3, motor1_IN4);\n        motor1.step(-pasosPorRevolucion1);\n        apagar(motor1_IN1, motor1_IN2, motor1_IN3, motor1_IN4);\n      }\n\n      \/\/ Se resetea el motor DOS\n      for (int i = 1; i &lt;= contadorCaballo2; i++) {\n        encender(motor2_IN1, motor2_IN2, motor2_IN3, motor2_IN4);\n        motor2.step(-pasosPorRevolucion2);\n        apagar(motor2_IN1, motor2_IN2, motor2_IN3, motor2_IN4);\n      }\n\n      \/\/ Se resetea el motor TRES\n      for (int i = 1; i &lt;= contadorCaballo3; i++) {\n        encender(motor3_IN1, motor3_IN2, motor3_IN3, motor3_IN4);\n        motor3.step(-pasosPorRevolucion3);\n        apagar(motor3_IN1, motor3_IN2, motor3_IN3, motor3_IN4);\n      }\n\n      \/\/ Se resetean los datos del display\n      lcd.clear();\n\n      \/\/ Se resetea el servo UNO\n      if (contadorCaballo1 == 5 ) { \n        for (int i = 90; i &gt;= 0; i--) {\n          servoMotor1.write(i);\n          delay(100);\n        }\n      }\n\n      \/\/ Se resetea el servo DOS\n      if (contadorCaballo2 == 5 ) { \n        for (int i = 90; i &gt;= 0; i--) {\n          servoMotor2.write(i);\n          delay(100);\n        }\n      }\n\n      \/\/ Se resetea el servo TRES\n      if (contadorCaballo3 == 5 ) { \n        for (int i = 90; i &gt;= 0; i--) {\n          servoMotor3.write(i);\n          delay(100);\n        }\n      }\n\n      tiempoInicio = 0;\n      tiempoFin = 0;\n      \n      contadorCaballo1 = 0;\n      contadorCaballo2 = 0;\n      contadorCaballo3 = 0;\n   }\n\n   botonResetAntiguo = botonResetNuevo;\n}\n\n\/\/ Funcion para ENCENDER el motor stepper cada vez que se utiliza\nvoid encender (int in1, int in2, int in3, int in4) {\n  digitalWrite (in1, HIGH);\n  digitalWrite (in2, HIGH);\n  digitalWrite (in3, HIGH);\n  digitalWrite (in4, HIGH);\n}\n\n\/\/ Funcion para APAGAR el motor stepper cada vez que se deja de utilizar\nvoid apagar (int in1, int in2, int in3, int in4) {\n  digitalWrite (in1, LOW);\n  digitalWrite (in2, LOW);\n  digitalWrite (in3, LOW);\n  digitalWrite (in4, LOW);\n}\n\n\/\/ Funcion para generar las notas del HIMNO DE ESPA\u00d1A\nvoid himnoEspana() {\n     Serial.println(\"\u00a1Ha GANADO el caballo UNO!\");\n     tone(buzzer, SOL , a);\n     delay(500);\n     noTone(buzzer);\n     tone(buzzer, RE , a);\n     delay(500);\n     noTone(buzzer);\n     tone(buzzer, SI , a);\n     delay(500);\n     noTone(buzzer);\n     tone(buzzer, SOL , b);\n     delay(500);\n     noTone(buzzer);\n     tone(buzzer, RE2 , b);\n     delay(400);\n     noTone(buzzer);\n     tone(buzzer, DO2 , b);\n     delay(400);\n     noTone(buzzer);\n     tone(buzzer, SI , b);\n     delay(400);\n     noTone(buzzer);\n     tone(buzzer, LA , b);\n     delay(400);\n     noTone(buzzer);\n     tone(buzzer, SOL , b);\n     delay(400);\n     noTone(buzzer);\n     tone(buzzer, SOL , b);\n     delay(400);\n     noTone(buzzer);\n     tone(buzzer, FAS , b);\n     delay(400);\n     noTone(buzzer);\n     tone(buzzer, MI , b);\n     delay(400);\n     noTone(buzzer);\n     tone(buzzer, RE , b);\n     delay(400);\n     noTone(buzzer);\n     tone(buzzer, SOL , a);\n     delay(500);\n     noTone(buzzer);\n     tone(buzzer, LA , a);\n     delay(500);\n     noTone(buzzer);\n     tone(buzzer, SI , 1500);\n     delay(1000);\n     noTone(buzzer);\n     tone(buzzer, RE2 , b);\n     delay(400);\n     tone(buzzer, DO2 , b);\n     delay(400);\n     tone(buzzer, SI , b);\n     delay(400);\n     tone(buzzer, LA , b);\n     delay(400);\n     tone(buzzer, SOL , b);\n     delay(400);\n     tone(buzzer, RE2 , 2000);\n     delay(1000);\n     \/\/--------------------- SEGUNDA PARTE \n     tone(buzzer, RE2 , a);\n     delay(500);\n     tone(buzzer, SI , 250);\n     delay(500);\n     tone(buzzer, RE2 , 250);\n     delay(400);\n     tone(buzzer, DO2 , a);\n     delay(400);\n     tone(buzzer, LA , 250);\n     delay(500);\n     tone(buzzer, DO2 , 250);\n     delay(400);\n     tone(buzzer, SI , a);\n     delay(500);\n     tone(buzzer, SOL , 250);\n     delay(400);\n     tone(buzzer, SI , 250);\n     delay(400);\n     tone(buzzer, LA , b);\n     delay(400);\n     tone(buzzer, RE , b);\n     delay(400);\n     tone(buzzer, MI , b);\n     delay(400);\n     tone(buzzer, FAS , b);\n     delay(400);\n     tone(buzzer, SOL , a);\n     delay(500);\n     tone(buzzer, LA , a);\n     delay(500);\n     tone(buzzer, SI , 250);\n     delay(500);\n     tone(buzzer, DO2 , 250);\n     delay(400);\n     tone(buzzer, RE2 , b);\n     delay(400);\n     tone(buzzer, DO2 , b);\n     delay(400);\n     tone(buzzer, SI , a);\n     delay(500);\n     tone(buzzer, LA , a);\n     delay(500);\n     tone(buzzer, SOL , 2000);\n     delay(1000);\n}\n\n\/\/ Funcion para generar las notas del HIMNO DE EEUU\nvoid himnoEEUU() {\n     Serial.println(\"\u00a1Ha GANADO el caballo DOS!\");\n     tone(buzzer, NOTE_G5);\n     delay(tempo);\n     tone(buzzer, NOTE_E5);\n     delay(tempo \/ 3);\n     tone(buzzer, NOTE_C5);\n     delay(tempo);\n     tone(buzzer, NOTE_E5);\n     delay(tempo);\n     tone(buzzer, NOTE_G5);\n     delay(tempo);\n     tone(buzzer, NOTE_C6);\n     delay(tempo * 2);\n     tone(buzzer, NOTE_E6);\n     delay(tempo);\n     tone(buzzer, NOTE_D6);\n     delay(tempo \/ 3);\n     tone(buzzer, NOTE_C6);\n     delay(tempo);\n     tone(buzzer, NOTE_E5);\n     delay(tempo);\n     tone(buzzer, NOTE_FS5);\n     delay(tempo);\n     tone(buzzer, NOTE_G5);\n     delay(tempo * 2);\n     tone(buzzer, NOTE_G5);\n     delay(tempo \/ 3);\n     tone(buzzer, NOTE_E6);\n     delay(tempo * 1.5);\n     tone(buzzer, NOTE_D6);\n     delay(tempo \/ 3);\n     tone(buzzer, NOTE_C6);\n     delay(tempo);\n     tone(buzzer, NOTE_B5);\n     delay(tempo);\n     tone(buzzer, NOTE_A5);\n     delay(tempo);\n     tone(buzzer, NOTE_B5);\n     delay(tempo);\n     tone(buzzer, NOTE_C6);\n     delay(tempo);\n     tone(buzzer, NOTE_C6);\n     delay(tempo);\n     tone(buzzer, NOTE_G5);\n     delay(tempo);\n     tone(buzzer, NOTE_E5);\n     delay(tempo);\n     tone(buzzer, NOTE_C5);\n     delay(tempo);\n     tone(buzzer, NOTE_E6);\n     delay(tempo);\n     tone(buzzer, NOTE_E6);\n     delay(tempo \/ 3);\n     tone(buzzer, NOTE_E6);\n     delay(tempo);\n     tone(buzzer, NOTE_F6);\n     delay(tempo \/ 3);\n     tone(buzzer, NOTE_G6);\n     delay(tempo);\n     tone(buzzer, NOTE_G6);\n     delay(tempo);\n     tone(buzzer, NOTE_F6);\n     delay(tempo \/ 2);\n     tone(buzzer, NOTE_E6);\n     delay(tempo \/ 2);\n     tone(buzzer, NOTE_D6);\n     delay(tempo * 2);\n     tone(buzzer, NOTE_E6);\n     delay(tempo \/ 3);\n     tone(buzzer, NOTE_F6);\n     delay(tempo);\n     tone(buzzer, NOTE_F6);\n     delay(tempo);\n     tone(buzzer, NOTE_F6);\n     delay(tempo);\n     tone(buzzer, NOTE_E6);\n     delay(tempo);\n     tone(buzzer, NOTE_D6);\n     delay(tempo);\n     tone(buzzer, NOTE_C6);\n     delay(tempo);\n     tone(buzzer, NOTE_B5);\n     delay(tempo);\n     tone(buzzer, NOTE_A5);\n     delay(tempo);\n     tone(buzzer, NOTE_B5);\n     delay(tempo);\n     tone(buzzer, NOTE_C6);\n     delay(tempo);\n     tone(buzzer, NOTE_C6);\n     delay(tempo);\n     tone(buzzer, NOTE_G5);\n     delay(tempo);\n     tone(buzzer, NOTE_E5);\n     delay(tempo);\n     tone(buzzer, NOTE_C5);\n     delay(tempo);\n     tone(buzzer, NOTE_G5);\n     delay(tempo);\n     tone(buzzer, NOTE_C6);\n     delay(tempo);\n     tone(buzzer, NOTE_C6);\n     delay(tempo);\n     tone(buzzer, NOTE_C6);\n     delay(tempo \/ 2);\n     tone(buzzer, NOTE_B5);\n     delay(tempo \/ 2);\n     tone(buzzer, NOTE_A5);\n     delay(tempo);\n     tone(buzzer, NOTE_A5);\n     delay(tempo);\n     tone(buzzer, NOTE_A5);\n     delay(tempo);\n     tone(buzzer,NOTE_D6);\n     delay(tempo);\n     tone(buzzer, NOTE_F6);\n     delay(tempo \/ 2);\n     tone(buzzer,NOTE_E6);\n     delay(tempo \/ 2);\n     tone(buzzer,NOTE_D6);\n     delay(tempo \/ 2);\n     tone(buzzer, NOTE_C6);\n     delay(tempo \/ 2);\n     tone(buzzer, NOTE_C6);\n     delay(tempo);\n     tone(buzzer, NOTE_B5);\n     delay(tempo * 4);\n     tone(buzzer, NOTE_G5);\n     delay(tempo);\n     tone(buzzer, NOTE_G5);\n     delay(tempo);\n     tone(buzzer, NOTE_C6);\n     delay(tempo * 2);\n     tone(buzzer, NOTE_D6);\n     delay(tempo \/ 2);\n     tone(buzzer, NOTE_E6);\n     delay(tempo \/ 2);\n     tone(buzzer, NOTE_F6);\n     delay(tempo \/ 2);\n     tone(buzzer, NOTE_G6);\n     delay(tempo * 6);\n     tone(buzzer, NOTE_C6);\n     delay(tempo * 1.5);\n     tone(buzzer, NOTE_D6);\n     delay(tempo * 1.5);\n     tone(buzzer, NOTE_E6);\n     delay(tempo * 2);\n     tone(buzzer, NOTE_F6);\n     delay(tempo);\n     tone(buzzer, NOTE_D6);\n     delay(tempo * 2.5);\n     tone(buzzer, NOTE_C6);\n     noTone(buzzer);\n}\n\nvoid playNote(int note, int time){\n  tone(buzzer, note, time);\n  delay(time + notebreak);\n}\n\n\/\/ Funcion para generar las notas del HIMNO DE INGLATERRA\nvoid himnoInglaterra() {\n  Serial.println(\"\u00a1Ha GANADO el caballo TRES!\");\n  const int q = 300; \n  const int c = 600;  \n  const int qb = q + notebreak; \n  const int cb = c + notebreak; \n  \n  playNote(g5, c);\n  playNote(g5, c);\n  playNote(a5, c);\n  \n  playNote(fs5, c + q);\n  playNote(g5, q);\n  playNote(a5, c);\n  \n  playNote(b5, c);\n  playNote(b5, c);\n  playNote(c6, c);\n\n  playNote(b5, c + q);\n  playNote(a5, q);\n  playNote(g5, c);\n  \n  playNote(a5, c);\n  playNote(g5, c);\n  playNote(fs5, c);\n  \n  playNote(g5, c);\n  playNote(g5, q);\n  playNote(a5, q);\n  playNote(b5, q);\n  playNote(c6, q);\n  \n  playNote(d6, c);\n  playNote(d6, c);\n  playNote(d6, c);\n\n  playNote(d6, c + q);\n  playNote(c6, q);\n  playNote(b5, c);\n\n  playNote(c6, c);\n  playNote(c6, c);\n  playNote(c6, c);\n\n  playNote(c6, c + q);\n  playNote(b5, q);\n  playNote(a5, c);\n  \n  playNote(b5, c);\n  playNote(c6, q);\n  playNote(b5, q);\n  playNote(a5, q);\n  playNote(g5, q);\n\n  playNote(b5, c + q);\n  playNote(c6, q);\n  playNote(d6, c);\n  \n  playNote(e6, q);\n  playNote(c6, q);\n  playNote(b5, c);\n  playNote(a5, c);\n  \n  playNote(g5, (c * 3));\n}<\/code><\/pre>\n\n\n\n<p><strong>Video del funcionamiento<\/strong><\/p>\n\n\n\n<figure class=\"wp-block-embed is-type-video is-provider-youtube wp-block-embed-youtube wp-embed-aspect-16-9 wp-has-aspect-ratio\"><div class=\"wp-block-embed__wrapper\">\n<div class=\"video-container\"><iframe loading=\"lazy\" title=\"Video practica 3 redes\" width=\"500\" height=\"281\" src=\"https:\/\/www.youtube.com\/embed\/eLH-tFYb_ro?feature=oembed&#038;wmode=opaque\" frameborder=\"0\" allow=\"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share\" referrerpolicy=\"strict-origin-when-cross-origin\" allowfullscreen><\/iframe><\/div>\n<\/div><\/figure>\n\n\n\n<p><strong>Problemas y soluciones<\/strong><\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li>El primer problema al que nos enfrentamos fue la falta de pines, ya que necesit\u00e1bamos un total de 27 pines, la soluci\u00f3n fue la compra de multiplexores para buscar incrementar el n\u00famero de salidas.<\/li>\n\n\n\n<li>El segundo problema fue que los multiplexores no funcionaban correctamente, por lo que tuvimos que descartar esta opci\u00f3n y requerimos de la compra de un Mega Arduino, el cual tiene 52 pines.<\/li>\n\n\n\n<li>Tras solucionar el problema de los pines tuvimos dificultades a la hora de hacer que los motores funcionasen correctamente, el problema consist\u00eda\u00a0 en que despu\u00e9s de que un motor se moviera, este se quedaba consumiendo ya que se quedaba encendida una luz mientras otro se mov\u00eda, por lo que los otros motores no ten\u00edan la potencia suficiente para moverse. Para resolver este inconveniente a\u00f1adimos dos funciones, una de apagado y otra de encendido en el c\u00f3digo, de manera que nos aseguramos que cuando un motor deja de moverse se apaga totalmente y no consume energ\u00eda. (foto funciones)<\/li>\n\n\n\n<li>El cuarto problema que tuvimos es en referente a la potencia, los 5V del Arduino no son suficientes, ni siquiera son suficientes los 9V de la pila proporcionada por la universidad. Esto se resuelve conectando el proyecto a una corriente dom\u00e9stica, obteniendo potencia m\u00e1s que suficiente para mover todo.<\/li>\n\n\n\n<li>El quinto problema surgi\u00f3 al implementar el sem\u00e1foro, ya que la longitud de los cables no era suficiente tuvimos que soldar hasta 10 cables para poder sacar el sem\u00e1foro fuera de la caja.<\/li>\n\n\n\n<li>El sexto problema fue que las correas necesarias para el movimiento de los caballos no se quedaban fijas con cinta adhesiva. Para solucionarlo las tuvimos que unir con grapas.<\/li>\n\n\n\n<li>Finalmente, nos encontramos con un problema del reloj, el cual tiene la funci\u00f3n de cronometrar el tiempo que tarda la carrera, para ello inicialmente lo programamos con la funci\u00f3n millis(). Nos dimos cuenta que en vez de medir la carrera, lo que hac\u00eda era cronometrar toda la ejecuci\u00f3n desde empezaba el c\u00f3digo hasta que finaliza cada carrera por lo que no era correcto ni tampoco lo que quer\u00edamos. Como soluci\u00f3n hemos optado por guardar en una variable el tiempo o instante en el que empieza la carrera y otra variable que guarde el tiempo o instante en el que termina. Una vez terminada la carrera, en otra variable guardamos el resultado de la resta entre la variable del final menos la del inicio y obtenemos el tiempo exacto de la carrera. Por \u00faltimo, lo cambiamos de formato a segundos y minutos y lo mostramos por pantalla en el display.\u00a0<\/li>\n<\/ol>\n\n\n\n<p><strong>Conclusi\u00f3n<\/strong><\/p>\n\n\n\n<p>Tras la finalizaci\u00f3n del proyecto podemos decir que estamos muy orgullosos del trabajo realizado, tanto durante todo el proceso como en el resultado final, hemos conseguido alcanzar todos los objetivos fijados en el inicio y plasmar en la maqueta final todos los detalles e ideas que ten\u00edamos en mente del proyecto. Hemos aprendido a dise\u00f1ar un sistema empotrado pasando por fundir cables, pegar y atornillar piezas de madera, montar circuitos, usar Arduino y programar este para obtener un resultado s\u00f3lido pero manejable, robusto y divertido con el que pasar un buen rato y poder ver en directo como todos los elementos f\u00edsicos de la maqueta trabajan en conjunto para lograr mover tres caballos que buscan la victoria de la carrera.<\/p>\n\n\n\n<p><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Grupo 1: V\u00edctor Cortinas Ruiz &#8211; Marco Cerejido Guti\u00e9rrez &#8211; Javier Haering Hij\u00f3n \u00cdndice Introducci\u00f3n Al mismo comienzo de la asignatura, se nos plante\u00f3 la tarea de realizar un proyecto con arduino para presentar&#46;&#46;&#46;<\/p>\n","protected":false},"author":257,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[1],"tags":[],"class_list":["post-9141","post","type-post","status-publish","format-standard","hentry","category-proyectos"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.4 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Carrera de caballos                     \u201cARDUINO HORSE RACING\u201d - Proyectos con Arduino.<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/blogs.etsii.urjc.es\/dseytr\/carrera-de-caballos-arduino-horse-racing\/\" \/>\n<meta property=\"og:locale\" content=\"es_ES\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Carrera de caballos                     \u201cARDUINO HORSE RACING\u201d - Proyectos con Arduino.\" \/>\n<meta property=\"og:description\" content=\"Grupo 1: V\u00edctor Cortinas Ruiz &#8211; Marco Cerejido Guti\u00e9rrez &#8211; Javier Haering Hij\u00f3n \u00cdndice Introducci\u00f3n Al mismo comienzo de la asignatura, se nos plante\u00f3 la tarea de realizar un proyecto con arduino para presentar&#046;&#046;&#046;\" \/>\n<meta property=\"og:url\" content=\"https:\/\/blogs.etsii.urjc.es\/dseytr\/carrera-de-caballos-arduino-horse-racing\/\" \/>\n<meta property=\"og:site_name\" content=\"Proyectos con Arduino.\" \/>\n<meta property=\"article:published_time\" content=\"2024-12-20T12:54:10+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2024-12-20T12:54:13+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/lh7-rt.googleusercontent.com\/docsz\/AD_4nXerjmQfnw7XMtCoLs0xeccSpNXlYkm9HvLmfvHOe2DuHYml73C1yyzo32EGmCKtfCEejGB4qbPzUIUFkZt_DgBb83msFkhS5tYRl5cwxg0e5C1Wby9Bjtc7sxQWhTGz0rYV4WGeug?key=StC2ir_sqnRMq9rw2t8RWhgy\" \/>\n<meta name=\"author\" content=\"Javier Haering Hijon\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Escrito por\" \/>\n\t<meta name=\"twitter:data1\" content=\"Javier Haering Hijon\" \/>\n\t<meta name=\"twitter:label2\" content=\"Tiempo de lectura\" \/>\n\t<meta name=\"twitter:data2\" content=\"18 minutos\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/blogs.etsii.urjc.es\\\/dseytr\\\/carrera-de-caballos-arduino-horse-racing\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/blogs.etsii.urjc.es\\\/dseytr\\\/carrera-de-caballos-arduino-horse-racing\\\/\"},\"author\":{\"name\":\"Javier Haering Hijon\",\"@id\":\"https:\\\/\\\/blogs.etsii.urjc.es\\\/dseytr\\\/#\\\/schema\\\/person\\\/2406cd0a095d15dc21f7a446e9f300b9\"},\"headline\":\"Carrera de caballos \u201cARDUINO HORSE RACING\u201d\",\"datePublished\":\"2024-12-20T12:54:10+00:00\",\"dateModified\":\"2024-12-20T12:54:13+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/blogs.etsii.urjc.es\\\/dseytr\\\/carrera-de-caballos-arduino-horse-racing\\\/\"},\"wordCount\":1169,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\\\/\\\/blogs.etsii.urjc.es\\\/dseytr\\\/#organization\"},\"image\":{\"@id\":\"https:\\\/\\\/blogs.etsii.urjc.es\\\/dseytr\\\/carrera-de-caballos-arduino-horse-racing\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/lh7-rt.googleusercontent.com\\\/docsz\\\/AD_4nXerjmQfnw7XMtCoLs0xeccSpNXlYkm9HvLmfvHOe2DuHYml73C1yyzo32EGmCKtfCEejGB4qbPzUIUFkZt_DgBb83msFkhS5tYRl5cwxg0e5C1Wby9Bjtc7sxQWhTGz0rYV4WGeug?key=StC2ir_sqnRMq9rw2t8RWhgy\",\"articleSection\":[\"Proyectos\"],\"inLanguage\":\"es\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/blogs.etsii.urjc.es\\\/dseytr\\\/carrera-de-caballos-arduino-horse-racing\\\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/blogs.etsii.urjc.es\\\/dseytr\\\/carrera-de-caballos-arduino-horse-racing\\\/\",\"url\":\"https:\\\/\\\/blogs.etsii.urjc.es\\\/dseytr\\\/carrera-de-caballos-arduino-horse-racing\\\/\",\"name\":\"Carrera de caballos \u201cARDUINO HORSE RACING\u201d - Proyectos con Arduino.\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/blogs.etsii.urjc.es\\\/dseytr\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/blogs.etsii.urjc.es\\\/dseytr\\\/carrera-de-caballos-arduino-horse-racing\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/blogs.etsii.urjc.es\\\/dseytr\\\/carrera-de-caballos-arduino-horse-racing\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/lh7-rt.googleusercontent.com\\\/docsz\\\/AD_4nXerjmQfnw7XMtCoLs0xeccSpNXlYkm9HvLmfvHOe2DuHYml73C1yyzo32EGmCKtfCEejGB4qbPzUIUFkZt_DgBb83msFkhS5tYRl5cwxg0e5C1Wby9Bjtc7sxQWhTGz0rYV4WGeug?key=StC2ir_sqnRMq9rw2t8RWhgy\",\"datePublished\":\"2024-12-20T12:54:10+00:00\",\"dateModified\":\"2024-12-20T12:54:13+00:00\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/blogs.etsii.urjc.es\\\/dseytr\\\/carrera-de-caballos-arduino-horse-racing\\\/#breadcrumb\"},\"inLanguage\":\"es\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/blogs.etsii.urjc.es\\\/dseytr\\\/carrera-de-caballos-arduino-horse-racing\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"es\",\"@id\":\"https:\\\/\\\/blogs.etsii.urjc.es\\\/dseytr\\\/carrera-de-caballos-arduino-horse-racing\\\/#primaryimage\",\"url\":\"https:\\\/\\\/lh7-rt.googleusercontent.com\\\/docsz\\\/AD_4nXerjmQfnw7XMtCoLs0xeccSpNXlYkm9HvLmfvHOe2DuHYml73C1yyzo32EGmCKtfCEejGB4qbPzUIUFkZt_DgBb83msFkhS5tYRl5cwxg0e5C1Wby9Bjtc7sxQWhTGz0rYV4WGeug?key=StC2ir_sqnRMq9rw2t8RWhgy\",\"contentUrl\":\"https:\\\/\\\/lh7-rt.googleusercontent.com\\\/docsz\\\/AD_4nXerjmQfnw7XMtCoLs0xeccSpNXlYkm9HvLmfvHOe2DuHYml73C1yyzo32EGmCKtfCEejGB4qbPzUIUFkZt_DgBb83msFkhS5tYRl5cwxg0e5C1Wby9Bjtc7sxQWhTGz0rYV4WGeug?key=StC2ir_sqnRMq9rw2t8RWhgy\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/blogs.etsii.urjc.es\\\/dseytr\\\/carrera-de-caballos-arduino-horse-racing\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Portada\",\"item\":\"https:\\\/\\\/blogs.etsii.urjc.es\\\/dseytr\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Carrera de caballos \u201cARDUINO HORSE RACING\u201d\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/blogs.etsii.urjc.es\\\/dseytr\\\/#website\",\"url\":\"https:\\\/\\\/blogs.etsii.urjc.es\\\/dseytr\\\/\",\"name\":\"Proyectos con Arduino.\",\"description\":\"Blog de proyectos de Arduino de alumnos de la URJC\",\"publisher\":{\"@id\":\"https:\\\/\\\/blogs.etsii.urjc.es\\\/dseytr\\\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/blogs.etsii.urjc.es\\\/dseytr\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"es\"},{\"@type\":\"Organization\",\"@id\":\"https:\\\/\\\/blogs.etsii.urjc.es\\\/dseytr\\\/#organization\",\"name\":\"Universidad Rey Juan Carlos\",\"url\":\"https:\\\/\\\/blogs.etsii.urjc.es\\\/dseytr\\\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"es\",\"@id\":\"https:\\\/\\\/blogs.etsii.urjc.es\\\/dseytr\\\/#\\\/schema\\\/logo\\\/image\\\/\",\"url\":\"https:\\\/\\\/blogs.etsii.urjc.es\\\/dseytr\\\/wp-content\\\/uploads\\\/sites\\\/8\\\/2022\\\/05\\\/logourjc-1.jpg\",\"contentUrl\":\"https:\\\/\\\/blogs.etsii.urjc.es\\\/dseytr\\\/wp-content\\\/uploads\\\/sites\\\/8\\\/2022\\\/05\\\/logourjc-1.jpg\",\"width\":745,\"height\":288,\"caption\":\"Universidad Rey Juan Carlos\"},\"image\":{\"@id\":\"https:\\\/\\\/blogs.etsii.urjc.es\\\/dseytr\\\/#\\\/schema\\\/logo\\\/image\\\/\"}},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/blogs.etsii.urjc.es\\\/dseytr\\\/#\\\/schema\\\/person\\\/2406cd0a095d15dc21f7a446e9f300b9\",\"name\":\"Javier Haering Hijon\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"es\",\"@id\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/a3ce1c551ef245e470fd9c1cfba5e286014a45e71d3aad5c8563aa54a41c5014?s=96&d=mm&r=g\",\"url\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/a3ce1c551ef245e470fd9c1cfba5e286014a45e71d3aad5c8563aa54a41c5014?s=96&d=mm&r=g\",\"contentUrl\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/a3ce1c551ef245e470fd9c1cfba5e286014a45e71d3aad5c8563aa54a41c5014?s=96&d=mm&r=g\",\"caption\":\"Javier Haering Hijon\"},\"sameAs\":[\"https:\\\/\\\/www.instagram.com\\\/javierhh04\\\/\"],\"url\":\"https:\\\/\\\/blogs.etsii.urjc.es\\\/dseytr\\\/author\\\/dse2425g01\\\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Carrera de caballos                     \u201cARDUINO HORSE RACING\u201d - Proyectos con Arduino.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/blogs.etsii.urjc.es\/dseytr\/carrera-de-caballos-arduino-horse-racing\/","og_locale":"es_ES","og_type":"article","og_title":"Carrera de caballos                     \u201cARDUINO HORSE RACING\u201d - Proyectos con Arduino.","og_description":"Grupo 1: V\u00edctor Cortinas Ruiz &#8211; Marco Cerejido Guti\u00e9rrez &#8211; Javier Haering Hij\u00f3n \u00cdndice Introducci\u00f3n Al mismo comienzo de la asignatura, se nos plante\u00f3 la tarea de realizar un proyecto con arduino para presentar&#46;&#46;&#46;","og_url":"https:\/\/blogs.etsii.urjc.es\/dseytr\/carrera-de-caballos-arduino-horse-racing\/","og_site_name":"Proyectos con Arduino.","article_published_time":"2024-12-20T12:54:10+00:00","article_modified_time":"2024-12-20T12:54:13+00:00","og_image":[{"url":"https:\/\/lh7-rt.googleusercontent.com\/docsz\/AD_4nXerjmQfnw7XMtCoLs0xeccSpNXlYkm9HvLmfvHOe2DuHYml73C1yyzo32EGmCKtfCEejGB4qbPzUIUFkZt_DgBb83msFkhS5tYRl5cwxg0e5C1Wby9Bjtc7sxQWhTGz0rYV4WGeug?key=StC2ir_sqnRMq9rw2t8RWhgy","type":"","width":"","height":""}],"author":"Javier Haering Hijon","twitter_card":"summary_large_image","twitter_misc":{"Escrito por":"Javier Haering Hijon","Tiempo de lectura":"18 minutos"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/blogs.etsii.urjc.es\/dseytr\/carrera-de-caballos-arduino-horse-racing\/#article","isPartOf":{"@id":"https:\/\/blogs.etsii.urjc.es\/dseytr\/carrera-de-caballos-arduino-horse-racing\/"},"author":{"name":"Javier Haering Hijon","@id":"https:\/\/blogs.etsii.urjc.es\/dseytr\/#\/schema\/person\/2406cd0a095d15dc21f7a446e9f300b9"},"headline":"Carrera de caballos \u201cARDUINO HORSE RACING\u201d","datePublished":"2024-12-20T12:54:10+00:00","dateModified":"2024-12-20T12:54:13+00:00","mainEntityOfPage":{"@id":"https:\/\/blogs.etsii.urjc.es\/dseytr\/carrera-de-caballos-arduino-horse-racing\/"},"wordCount":1169,"commentCount":0,"publisher":{"@id":"https:\/\/blogs.etsii.urjc.es\/dseytr\/#organization"},"image":{"@id":"https:\/\/blogs.etsii.urjc.es\/dseytr\/carrera-de-caballos-arduino-horse-racing\/#primaryimage"},"thumbnailUrl":"https:\/\/lh7-rt.googleusercontent.com\/docsz\/AD_4nXerjmQfnw7XMtCoLs0xeccSpNXlYkm9HvLmfvHOe2DuHYml73C1yyzo32EGmCKtfCEejGB4qbPzUIUFkZt_DgBb83msFkhS5tYRl5cwxg0e5C1Wby9Bjtc7sxQWhTGz0rYV4WGeug?key=StC2ir_sqnRMq9rw2t8RWhgy","articleSection":["Proyectos"],"inLanguage":"es","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/blogs.etsii.urjc.es\/dseytr\/carrera-de-caballos-arduino-horse-racing\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/blogs.etsii.urjc.es\/dseytr\/carrera-de-caballos-arduino-horse-racing\/","url":"https:\/\/blogs.etsii.urjc.es\/dseytr\/carrera-de-caballos-arduino-horse-racing\/","name":"Carrera de caballos \u201cARDUINO HORSE RACING\u201d - Proyectos con Arduino.","isPartOf":{"@id":"https:\/\/blogs.etsii.urjc.es\/dseytr\/#website"},"primaryImageOfPage":{"@id":"https:\/\/blogs.etsii.urjc.es\/dseytr\/carrera-de-caballos-arduino-horse-racing\/#primaryimage"},"image":{"@id":"https:\/\/blogs.etsii.urjc.es\/dseytr\/carrera-de-caballos-arduino-horse-racing\/#primaryimage"},"thumbnailUrl":"https:\/\/lh7-rt.googleusercontent.com\/docsz\/AD_4nXerjmQfnw7XMtCoLs0xeccSpNXlYkm9HvLmfvHOe2DuHYml73C1yyzo32EGmCKtfCEejGB4qbPzUIUFkZt_DgBb83msFkhS5tYRl5cwxg0e5C1Wby9Bjtc7sxQWhTGz0rYV4WGeug?key=StC2ir_sqnRMq9rw2t8RWhgy","datePublished":"2024-12-20T12:54:10+00:00","dateModified":"2024-12-20T12:54:13+00:00","breadcrumb":{"@id":"https:\/\/blogs.etsii.urjc.es\/dseytr\/carrera-de-caballos-arduino-horse-racing\/#breadcrumb"},"inLanguage":"es","potentialAction":[{"@type":"ReadAction","target":["https:\/\/blogs.etsii.urjc.es\/dseytr\/carrera-de-caballos-arduino-horse-racing\/"]}]},{"@type":"ImageObject","inLanguage":"es","@id":"https:\/\/blogs.etsii.urjc.es\/dseytr\/carrera-de-caballos-arduino-horse-racing\/#primaryimage","url":"https:\/\/lh7-rt.googleusercontent.com\/docsz\/AD_4nXerjmQfnw7XMtCoLs0xeccSpNXlYkm9HvLmfvHOe2DuHYml73C1yyzo32EGmCKtfCEejGB4qbPzUIUFkZt_DgBb83msFkhS5tYRl5cwxg0e5C1Wby9Bjtc7sxQWhTGz0rYV4WGeug?key=StC2ir_sqnRMq9rw2t8RWhgy","contentUrl":"https:\/\/lh7-rt.googleusercontent.com\/docsz\/AD_4nXerjmQfnw7XMtCoLs0xeccSpNXlYkm9HvLmfvHOe2DuHYml73C1yyzo32EGmCKtfCEejGB4qbPzUIUFkZt_DgBb83msFkhS5tYRl5cwxg0e5C1Wby9Bjtc7sxQWhTGz0rYV4WGeug?key=StC2ir_sqnRMq9rw2t8RWhgy"},{"@type":"BreadcrumbList","@id":"https:\/\/blogs.etsii.urjc.es\/dseytr\/carrera-de-caballos-arduino-horse-racing\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Portada","item":"https:\/\/blogs.etsii.urjc.es\/dseytr\/"},{"@type":"ListItem","position":2,"name":"Carrera de caballos \u201cARDUINO HORSE RACING\u201d"}]},{"@type":"WebSite","@id":"https:\/\/blogs.etsii.urjc.es\/dseytr\/#website","url":"https:\/\/blogs.etsii.urjc.es\/dseytr\/","name":"Proyectos con Arduino.","description":"Blog de proyectos de Arduino de alumnos de la URJC","publisher":{"@id":"https:\/\/blogs.etsii.urjc.es\/dseytr\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/blogs.etsii.urjc.es\/dseytr\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"es"},{"@type":"Organization","@id":"https:\/\/blogs.etsii.urjc.es\/dseytr\/#organization","name":"Universidad Rey Juan Carlos","url":"https:\/\/blogs.etsii.urjc.es\/dseytr\/","logo":{"@type":"ImageObject","inLanguage":"es","@id":"https:\/\/blogs.etsii.urjc.es\/dseytr\/#\/schema\/logo\/image\/","url":"https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-content\/uploads\/sites\/8\/2022\/05\/logourjc-1.jpg","contentUrl":"https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-content\/uploads\/sites\/8\/2022\/05\/logourjc-1.jpg","width":745,"height":288,"caption":"Universidad Rey Juan Carlos"},"image":{"@id":"https:\/\/blogs.etsii.urjc.es\/dseytr\/#\/schema\/logo\/image\/"}},{"@type":"Person","@id":"https:\/\/blogs.etsii.urjc.es\/dseytr\/#\/schema\/person\/2406cd0a095d15dc21f7a446e9f300b9","name":"Javier Haering Hijon","image":{"@type":"ImageObject","inLanguage":"es","@id":"https:\/\/secure.gravatar.com\/avatar\/a3ce1c551ef245e470fd9c1cfba5e286014a45e71d3aad5c8563aa54a41c5014?s=96&d=mm&r=g","url":"https:\/\/secure.gravatar.com\/avatar\/a3ce1c551ef245e470fd9c1cfba5e286014a45e71d3aad5c8563aa54a41c5014?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/a3ce1c551ef245e470fd9c1cfba5e286014a45e71d3aad5c8563aa54a41c5014?s=96&d=mm&r=g","caption":"Javier Haering Hijon"},"sameAs":["https:\/\/www.instagram.com\/javierhh04\/"],"url":"https:\/\/blogs.etsii.urjc.es\/dseytr\/author\/dse2425g01\/"}]}},"_links":{"self":[{"href":"https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-json\/wp\/v2\/posts\/9141","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-json\/wp\/v2\/users\/257"}],"replies":[{"embeddable":true,"href":"https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-json\/wp\/v2\/comments?post=9141"}],"version-history":[{"count":3,"href":"https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-json\/wp\/v2\/posts\/9141\/revisions"}],"predecessor-version":[{"id":9345,"href":"https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-json\/wp\/v2\/posts\/9141\/revisions\/9345"}],"wp:attachment":[{"href":"https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-json\/wp\/v2\/media?parent=9141"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-json\/wp\/v2\/categories?post=9141"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-json\/wp\/v2\/tags?post=9141"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}