        <style>
            #donation_buttons td{
                border:medium none;
                background: inherit !important;
            }
            #donation_buttons table{               
                border:medium none;
                margin: auto;
                width: auto;
            }
        </style>
        {"id":7597,"date":"2024-01-31T22:59:34","date_gmt":"2024-01-31T22:59:34","guid":{"rendered":"https:\/\/rogerbit.com\/wprb\/?p=7597"},"modified":"2024-02-01T14:01:50","modified_gmt":"2024-02-01T14:01:50","slug":"semaforo-con-contador","status":"publish","type":"post","link":"https:\/\/rogerbit.com\/wprb\/2024\/01\/semaforo-con-contador\/","title":{"rendered":"Sem\u00e1foro con Arduino y contador descendente"},"content":{"rendered":"<p><iframe loading=\"lazy\" title=\"\u2705 Sem\u00e1foro con Arduino y contador descendente -  PCBWay.es\" width=\"1160\" height=\"653\" src=\"https:\/\/www.youtube.com\/embed\/eYpc07PNraA?feature=oembed\" frameborder=\"0\" allow=\"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share\" allowfullscreen><\/iframe><\/p>\n<hr \/>\n<p>Este tutorial te guiar\u00e1 a trav\u00e9s de la creaci\u00f3n de un sem\u00e1foro interactivo con un display OLED utilizando Arduino y la biblioteca U8glib. En este proyecto, programaremos un sem\u00e1foro que cambia de color y muestra el tiempo restante en cada estado en un display OLED SH1106. A medida que avanzamos, tambi\u00e9n ajustaremos el tama\u00f1o de la fuente para mejorar la legibilidad.<\/p>\n<hr \/>\n<p style=\"text-align: left;\">Tal vez pueda interesarte proyectos en arduino, pic, rob\u00f3tica, telecomunicaciones, suscribete en\u00a0<a href=\"http:\/\/www.youtube.com\/user\/carlosvolt?sub_confirmation=1\">http:\/\/www.youtube.com\/user\/carlosvolt?sub_confirmation=1<\/a>\u00a0mucho videos con c\u00f3digo fuentes completos y diagramas<\/p>\n<p style=\"text-align: left;\"><div id=\"ubm-banners-rotation-n1\" data-interval=\"4000\" class=\"ubm_banners_rotation\" style=\"overflow: hidden; width: 200px; height: 150px;\"><div id=\"3_ubm_banner\" class=\"ubm_rotating_banner\"><a href=\"https:\/\/bit.ly\/3aXRDAu\" target=\"_blank\" rel=\"dofollow\"><img src=\"https:\/\/rogerbit.com\/wprb\/wp-content\/uploads\/useful_banner_manager_banners\/3-2-logo youtube.png\" width=\"100%\" height=\"100%\" alt=\"SUSCRIBETE A NUESTRO CANAL DE YOUTUBE, TUTORIALES GRATIS\" \/><\/a><\/div><\/div><\/p>\n<hr \/>\n<h2><strong>Componentes electr\u00f3nicos del proyecto<\/strong><\/h2>\n<p><strong>Arduino Nano<\/strong><\/p>\n<p><a href=\"http:\/\/rogerbit.com\/wprb\/wp-content\/uploads\/2020\/11\/Arduino_nano_V3.0_atmega328_compatible-2.jpg\"><img loading=\"lazy\" class=\"alignnone wp-image-6034\" src=\"http:\/\/rogerbit.com\/wprb\/wp-content\/uploads\/2020\/11\/Arduino_nano_V3.0_atmega328_compatible-2.jpg\" sizes=\"(max-width: 321px) 100vw, 321px\" srcset=\"https:\/\/rogerbit.com\/wprb\/wp-content\/uploads\/2020\/11\/Arduino_nano_V3.0_atmega328_compatible-2.jpg 650w, https:\/\/rogerbit.com\/wprb\/wp-content\/uploads\/2020\/11\/Arduino_nano_V3.0_atmega328_compatible-2-150x150.jpg 150w, https:\/\/rogerbit.com\/wprb\/wp-content\/uploads\/2020\/11\/Arduino_nano_V3.0_atmega328_compatible-2-300x300.jpg 300w, https:\/\/rogerbit.com\/wprb\/wp-content\/uploads\/2020\/11\/Arduino_nano_V3.0_atmega328_compatible-2-600x600.jpg 600w\" alt=\"\" width=\"321\" height=\"321\" \/><\/a><\/p>\n<p>El Arduino Nano es una placa peque\u00f1a, completa y compatible con la placa de pruebas basada en el ATmega328 (Arduino Nano 3.x).\u00a0Tiene m\u00e1s o menos la misma funcionalidad del Arduino Duemilanove, pero en un paquete diferente.\u00a0Solo carece de un conector de alimentaci\u00f3n de CC y funciona con un cable USB Mini-B en lugar de uno est\u00e1ndar.<\/p>\n<table>\n<tbody>\n<tr>\n<td>Microcontrolador<\/td>\n<td>ATmega328<\/td>\n<\/tr>\n<tr>\n<td>Arquitectura<\/td>\n<td>AVR<\/td>\n<\/tr>\n<tr>\n<td>Tensi\u00f3n de funcionamiento<\/td>\n<td>5 V<\/td>\n<\/tr>\n<tr>\n<td>Memoria flash<\/td>\n<td>32 KB de los cuales 2 KB utiliza el gestor de arranque<\/td>\n<\/tr>\n<tr>\n<td>SRAM<\/td>\n<td>2 KB<\/td>\n<\/tr>\n<tr>\n<td>Velocidad de reloj<\/td>\n<td>16 MHz<\/td>\n<\/tr>\n<tr>\n<td>Pines anal\u00f3gicos IN<\/td>\n<td>8<\/td>\n<\/tr>\n<tr>\n<td>EEPROM<\/td>\n<td>1 KB<\/td>\n<\/tr>\n<tr>\n<td>Corriente CC por pines de E \/ S<\/td>\n<td>40 mA (pines de E \/ S)<\/td>\n<\/tr>\n<tr>\n<td>Voltaje de entrada<\/td>\n<td>7-12 V<\/td>\n<\/tr>\n<tr>\n<td>Pines de E \/ S digitales<\/td>\n<td>22 (6 de los cuales son PWM)<\/td>\n<\/tr>\n<tr>\n<td>Salida PWM<\/td>\n<td>6<\/td>\n<\/tr>\n<tr>\n<td>El consumo de energ\u00eda<\/td>\n<td>19 mA<\/td>\n<\/tr>\n<tr>\n<td>Tama\u00f1o de PCB<\/td>\n<td>18 x 45 mm<\/td>\n<\/tr>\n<tr>\n<td>Peso<\/td>\n<td>7 g<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<h3>Diagrama de pines<\/h3>\n<p><a href=\"http:\/\/rogerbit.com\/wprb\/wp-content\/uploads\/2020\/11\/Pinout-NANO.png\"><img loading=\"lazy\" class=\"alignnone size-large wp-image-6033\" src=\"http:\/\/rogerbit.com\/wprb\/wp-content\/uploads\/2020\/11\/Pinout-NANO-1024x1024.png\" sizes=\"(max-width: 1024px) 100vw, 1024px\" srcset=\"https:\/\/rogerbit.com\/wprb\/wp-content\/uploads\/2020\/11\/Pinout-NANO-1024x1024.png 1024w, https:\/\/rogerbit.com\/wprb\/wp-content\/uploads\/2020\/11\/Pinout-NANO-150x150.png 150w, https:\/\/rogerbit.com\/wprb\/wp-content\/uploads\/2020\/11\/Pinout-NANO-300x300.png 300w, https:\/\/rogerbit.com\/wprb\/wp-content\/uploads\/2020\/11\/Pinout-NANO-768x768.png 768w, https:\/\/rogerbit.com\/wprb\/wp-content\/uploads\/2020\/11\/Pinout-NANO-600x600.png 600w, https:\/\/rogerbit.com\/wprb\/wp-content\/uploads\/2020\/11\/Pinout-NANO-820x820.png 820w, https:\/\/rogerbit.com\/wprb\/wp-content\/uploads\/2020\/11\/Pinout-NANO-1320x1321.png 1320w\" alt=\"\" width=\"1024\" height=\"1024\" \/><\/a><\/p>\n<hr \/>\n<p><strong>Un Z\u00f3calo para arduino<\/strong><\/p>\n<p><a href=\"http:\/\/rogerbit.com\/wprb\/wp-content\/uploads\/2020\/11\/zocalo.jpg\"><img loading=\"lazy\" class=\"alignnone size-full wp-image-6045\" src=\"http:\/\/rogerbit.com\/wprb\/wp-content\/uploads\/2020\/11\/zocalo.jpg\" alt=\"\" width=\"300\" height=\"166\" \/><\/a><\/p>\n<hr \/>\n<h4>Pines hembra<\/h4>\n<p><img loading=\"lazy\" class=\"alignnone size-large wp-image-6689\" src=\"https:\/\/rogerbit.com\/wprb\/wp-content\/uploads\/2021\/12\/hembrapin.jpg\" sizes=\"(max-width: 225px) 100vw, 225px\" srcset=\"https:\/\/rogerbit.com\/wprb\/wp-content\/uploads\/2021\/12\/hembrapin.jpg 225w, https:\/\/rogerbit.com\/wprb\/wp-content\/uploads\/2021\/12\/hembrapin-150x150.jpg 150w\" alt=\"\" width=\"225\" height=\"225\" \/><\/p>\n<p><strong>Display oled sh1106<\/strong><\/p>\n<p><a href=\"http:\/\/rogerbit.com\/wprb\/wp-content\/uploads\/2020\/12\/display-oled.jpg\"><img loading=\"lazy\" class=\"alignnone wp-image-6148\" src=\"http:\/\/rogerbit.com\/wprb\/wp-content\/uploads\/2020\/12\/display-oled.jpg\" sizes=\"(max-width: 280px) 100vw, 280px\" srcset=\"https:\/\/rogerbit.com\/wprb\/wp-content\/uploads\/2020\/12\/display-oled.jpg 809w, https:\/\/rogerbit.com\/wprb\/wp-content\/uploads\/2020\/12\/display-oled-300x285.jpg 300w, https:\/\/rogerbit.com\/wprb\/wp-content\/uploads\/2020\/12\/display-oled-768x729.jpg 768w, https:\/\/rogerbit.com\/wprb\/wp-content\/uploads\/2020\/12\/display-oled-600x570.jpg 600w\" alt=\"\" width=\"280\" height=\"266\" \/><\/a><\/p>\n<p>Se trata de un m\u00f3dulo de pantalla OLED monocrom\u00e1tica DE 128\u00d764 puntos con interface I2C .Que presenta varias ventajas en comparaci\u00f3n con pantallas LCD, y podemos destacar su alto brillo, un muy buen contraste, un \u00e1ngulo de visi\u00f3n m\u00e1s amplio, y bajo consumo de energ\u00eda. ES compatible con Arduino Rasberry Pi y microcontroladores PIC entre otros. Trabaja con niveles l\u00f3gicos de 3.3V a 5V tiene un angulo de visi\u00f3n mayor a los 160 grados. el Tama\u00f1o de la pantalla es de 1,3 pulgadas. Se alimenta con un voltaje de 3.3V a 5V Se lo puede usar en aplicaciones como relojes inteligentes, MP3, term\u00f3metros, instrumentos, y proyectos varios, etc.<\/p>\n<p><strong>Caracter\u00edsticas<\/strong><\/p>\n<ul>\n<li>Interface: I2C(3.3V \/ 5V logic level)<\/li>\n<li>Resolution: 128 x 64<\/li>\n<li>Angle of view: &gt;160 degree<\/li>\n<li>Display color: Blue<\/li>\n<li>Display size: 1.3 inch<\/li>\n<li>Driver IC: SH1106<\/li>\n<li>Power supply: DC\u00a03.3V~5V<\/li>\n<li>Operating temperature: -20~70\u2019C<\/li>\n<li>Application: smart watch, MP3, thermometer, instruments, DIY projects, etc.<\/li>\n<\/ul>\n<hr \/>\n<p><strong>Tres diodos led de 5 mm, de color rojo, amarillo y verde<\/strong><\/p>\n<p><img loading=\"lazy\" class=\"alignnone wp-image-7598 size-medium\" src=\"https:\/\/rogerbit.com\/wprb\/wp-content\/uploads\/2024\/01\/led-2-300x228.jpg\" alt=\"\" width=\"300\" height=\"228\" srcset=\"https:\/\/rogerbit.com\/wprb\/wp-content\/uploads\/2024\/01\/led-2-300x228.jpg 300w, https:\/\/rogerbit.com\/wprb\/wp-content\/uploads\/2024\/01\/led-2.jpg 500w\" sizes=\"(max-width: 300px) 100vw, 300px\" \/><\/p>\n<hr \/>\n<p><strong>Tres resistores de 1 KOhm<\/strong><\/p>\n<p><img loading=\"lazy\" class=\"alignnone wp-image-6933 size-thumbnail\" src=\"https:\/\/rogerbit.com\/wprb\/wp-content\/uploads\/2022\/06\/1k-150x150.jpg\" alt=\"\" width=\"150\" height=\"150\" srcset=\"https:\/\/rogerbit.com\/wprb\/wp-content\/uploads\/2022\/06\/1k-150x150.jpg 150w, https:\/\/rogerbit.com\/wprb\/wp-content\/uploads\/2022\/06\/1k-300x300.jpg 300w, https:\/\/rogerbit.com\/wprb\/wp-content\/uploads\/2022\/06\/1k.jpg 500w\" sizes=\"(max-width: 150px) 100vw, 150px\" \/><\/p>\n<hr \/>\n<p><strong>PCB<\/strong><\/p>\n<p><img loading=\"lazy\" class=\"alignnone size-full wp-image-7317\" src=\"https:\/\/rogerbit.com\/wprb\/wp-content\/uploads\/2023\/05\/PCB-1.png\" sizes=\"(max-width: 254px) 100vw, 254px\" srcset=\"https:\/\/rogerbit.com\/wprb\/wp-content\/uploads\/2023\/05\/PCB-1.png 254w, https:\/\/rogerbit.com\/wprb\/wp-content\/uploads\/2023\/05\/PCB-1-193x300.png 193w\" alt=\"\" width=\"254\" height=\"395\" \/><\/p>\n<p><img loading=\"lazy\" class=\"alignnone wp-image-7318\" src=\"https:\/\/rogerbit.com\/wprb\/wp-content\/uploads\/2023\/05\/PCB_PISTAS.png\" sizes=\"(max-width: 254px) 100vw, 254px\" srcset=\"https:\/\/rogerbit.com\/wprb\/wp-content\/uploads\/2023\/05\/PCB_PISTAS.png 333w, https:\/\/rogerbit.com\/wprb\/wp-content\/uploads\/2023\/05\/PCB_PISTAS-194x300.png 194w\" alt=\"\" width=\"254\" height=\"392\" \/><\/p>\n<p><a href=\"https:\/\/rogerbit.com\/wprb\/wp-content\/uploads\/2023\/05\/PCB_ky-032_contador.zip\">Descarga el PCB<\/a><\/p>\n<hr \/>\n<p><strong>Diagrama electr\u00f3nico del pcb<\/strong><\/p>\n<p><img loading=\"lazy\" class=\"alignnone size-large wp-image-6905\" src=\"https:\/\/rogerbit.com\/wprb\/wp-content\/uploads\/2022\/06\/circuito-1024x295.png\" sizes=\"(max-width: 1024px) 100vw, 1024px\" srcset=\"https:\/\/rogerbit.com\/wprb\/wp-content\/uploads\/2022\/06\/circuito-1024x295.png 1024w, https:\/\/rogerbit.com\/wprb\/wp-content\/uploads\/2022\/06\/circuito-300x86.png 300w, https:\/\/rogerbit.com\/wprb\/wp-content\/uploads\/2022\/06\/circuito-768x221.png 768w, https:\/\/rogerbit.com\/wprb\/wp-content\/uploads\/2022\/06\/circuito-820x236.png 820w, https:\/\/rogerbit.com\/wprb\/wp-content\/uploads\/2022\/06\/circuito.png 1058w\" alt=\"\" width=\"1024\" height=\"295\" \/><\/p>\n<hr \/>\n<p><strong>C\u00f3digo Fuente<\/strong><\/p>\n<pre class=\"lang:default decode:true \" title=\"C\u00f3digo Fuente\">#include &lt;U8glib.h&gt;\r\nU8GLIB_SH1106_128X64 u8g(U8G_I2C_OPT_NONE);  \/\/ Configura la interfaz I2C para el display oled SH1106\r\nconst int pinRojo = 4;       \/\/ Pin para el sem\u00e1foro rojo\r\nconst int pinAmarillo = 5;  \/\/ Pin para el sem\u00e1foro amarillo\r\nconst int pinVerde = 6;    \/\/ Pin para el sem\u00e1foro verde\r\nint tiempoRojo = 20;      \/\/ Tiempo en segundos para el sem\u00e1foro rojo\r\nint tiempoAmarillo = 5;  \/\/ Tiempo en segundos para el sem\u00e1foro amarillo\r\nint tiempoVerde = 20;   \/\/ Tiempo en segundos para el sem\u00e1foro verde\r\nvoid setup() {\r\n  pinMode(pinRojo, OUTPUT);\r\n  pinMode(pinAmarillo, OUTPUT);\r\n  pinMode(pinVerde, OUTPUT);\r\n  u8g.begin();\/\/ Inicia la comunicaci\u00f3n I2C con el display\r\n}\r\nvoid loop() {\r\n  \/\/ Sem\u00e1foro Rojo\r\n  digitalWrite(pinRojo, HIGH);\r\n  digitalWrite(pinAmarillo, LOW);\r\n  digitalWrite(pinVerde, LOW);\r\n  cuentaRegresiva(\"Rojo\", tiempoRojo);\/\/Envia el par\u00e1metro para el color Rojo y el tiempo\r\n    \/\/ Sem\u00e1foro Verde\r\n  digitalWrite(pinRojo, LOW);\r\n  digitalWrite(pinAmarillo, LOW);\r\n  digitalWrite(pinVerde, HIGH);\r\n  cuentaRegresiva(\"Verde\", tiempoVerde);\/\/Envia el par\u00e1metro para el color Verde y el tiempo\r\n  \/\/ Sem\u00e1foro Amarillo \r\n  digitalWrite(pinRojo, LOW); \r\n  digitalWrite(pinAmarillo, HIGH);\r\n  digitalWrite(pinVerde, LOW); \r\n  cuentaRegresiva(\"Amarillo\", tiempoAmarillo);\/\/Envia el par\u00e1metro para el color Amarillo y el tiempo \r\n}\r\n\/\/Muestra en el display el conteo en forma regresiva y el color del led\r\nvoid cuentaRegresiva(const char* text, int seconds) {\r\n  u8g.firstPage();\r\n  for (int i = seconds ; i &gt;= 0; i--) {\r\n    u8g.firstPage();\r\n    do {\r\n    u8g.setFont(u8g_font_10x20);  \/\/ Cambia el tama\u00f1o de la fuente\r\n    u8g.drawStr(0, 15, text);     \/\/ Ajusta las coordenadas seg\u00fan el tama\u00f1o de la fuente\r\n    u8g.setFont(u8g_font_osb35);\r\n    u8g.setPrintPos(30, 55); \r\n      u8g.print(i);\r\n    } while (u8g.nextPage());\r\n    delay(1000);\/\/Conteo de un segundo\r\n  }\r\n}<\/pre>\n<hr \/>\n<p style=\"text-align: left;\"><div class=\"page-sidebar widget\" id=\"donation_buttons\"><form action=\"https:\/\/www.paypal.com\/cgi-bin\/webscr\" method=\"post\" target=\"_blank\" ><input type=\"hidden\" name=\"business\" value=\"donacion@rogerbit.com\"><input type=\"hidden\" name=\"bn\" value=\"mbjtechnolabs_SP\"><input type=\"hidden\" name=\"cmd\" value=\"_donations\"><input type=\"hidden\" name=\"item_name\" value=\"Ayuda a RogerBit.com\"><input type=\"hidden\" name=\"item_number\" value=\"www.rogerbit.com\"><input type=\"hidden\" class=\"set_donation_button_amount\" name=\"amount\" value=\"1\"><table ><tbody><tr><td><label for=\"rogerBit necesita de tu ayuda para seguir existiendo :-)\">rogerBit necesita de tu ayuda para seguir existiendo :-)<\/label><\/td><\/tr><\/tbody><\/table><table ><tbody><tr><td><input style=\"margin-top:10px;\" type=\"image\" name=\"submit\" border=\"0\" src=\"https:\/\/www.paypal.com\/en_US\/i\/btn\/btn_donateCC_LG.gif\" alt=\"PayPal - The safer, easier way to pay online\"><\/td><\/tr><\/tbody><\/table><input type=\"hidden\" name=\"currency_code\" value=\"USD\"><input type=\"hidden\" name=\"notify_url\" value=\"https:\/\/rogerbit.com\/wprb\/?Donation_Button&#038;action=ipn_handler\"><\/form><\/div><\/p>\n<hr \/>\n<p style=\"text-align: left;\"><strong>PROYECTO RECOMENDADO<\/strong><\/p>\n<p><iframe loading=\"lazy\" title=\"Construye tu punta l\u00f3gica (Incluye circuito impreso)  - PCBWay.es\" width=\"1160\" height=\"653\" src=\"https:\/\/www.youtube.com\/embed\/GyRNPej9ulg?feature=oembed\" frameborder=\"0\" allow=\"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share\" allowfullscreen><\/iframe><\/p>\n<!-- AddThis Advanced Settings generic via filter on the_content --><!-- AddThis Share Buttons generic via filter on the_content -->","protected":false},"excerpt":{"rendered":"<p>Este tutorial te guiar\u00e1 a trav\u00e9s de la creaci\u00f3n de un sem\u00e1foro interactivo con un display OLED utilizando Arduino y la biblioteca U8glib. En este proyecto, programaremos un sem\u00e1foro que cambia de color y muestra el tiempo restante en cada estado en un display OLED SH1106. A medida que avanzamos, tambi\u00e9n ajustaremos el tama\u00f1o de [&hellip;]<!-- AddThis Advanced Settings generic via filter on get_the_excerpt --><!-- AddThis Share Buttons generic via filter on get_the_excerpt --><\/p>\n","protected":false},"author":1,"featured_media":7599,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":[],"categories":[11],"tags":[45,705,595,966,1816,909,613,917,1829,1875,687,1033],"_links":{"self":[{"href":"https:\/\/rogerbit.com\/wprb\/wp-json\/wp\/v2\/posts\/7597"}],"collection":[{"href":"https:\/\/rogerbit.com\/wprb\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/rogerbit.com\/wprb\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/rogerbit.com\/wprb\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/rogerbit.com\/wprb\/wp-json\/wp\/v2\/comments?post=7597"}],"version-history":[{"count":3,"href":"https:\/\/rogerbit.com\/wprb\/wp-json\/wp\/v2\/posts\/7597\/revisions"}],"predecessor-version":[{"id":7602,"href":"https:\/\/rogerbit.com\/wprb\/wp-json\/wp\/v2\/posts\/7597\/revisions\/7602"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/rogerbit.com\/wprb\/wp-json\/wp\/v2\/media\/7599"}],"wp:attachment":[{"href":"https:\/\/rogerbit.com\/wprb\/wp-json\/wp\/v2\/media?parent=7597"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/rogerbit.com\/wprb\/wp-json\/wp\/v2\/categories?post=7597"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/rogerbit.com\/wprb\/wp-json\/wp\/v2\/tags?post=7597"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}