{"id":93,"date":"2024-08-27T21:30:52","date_gmt":"2024-08-27T21:30:52","guid":{"rendered":"https:\/\/proveedoracano.com\/blog\/?p=93"},"modified":"2024-08-27T21:33:53","modified_gmt":"2024-08-27T21:33:53","slug":"arduino-contrasena","status":"publish","type":"post","link":"https:\/\/proveedoracano.com\/blog\/arduino-contrasena\/","title":{"rendered":"Arduino F\u00e1cil: Configura tu Contrase\u00f1a"},"content":{"rendered":"\n<h1 class=\"wp-block-heading\"><strong>\u00a1Domina la Programaci\u00f3n con Arduino: Crea un Circuito de Verificaci\u00f3n de Contrase\u00f1a Paso a Paso!<\/strong><\/h1>\n\n\n\n<p>\u00bfEst\u00e1s listo para llevar tus habilidades en Arduino al siguiente nivel? Este proyecto te guiar\u00e1 para crear un circuito de verificaci\u00f3n de contrase\u00f1a usando un teclado matricial, un display LCD I2C, y LEDs. Adem\u00e1s, aprender\u00e1s conceptos clave de programaci\u00f3n como el uso de librer\u00edas, almacenamiento incremental y m\u00e1s. \u00a1Incluimos una simulaci\u00f3n en Tinkercad para que lo veas en acci\u00f3n!<\/p>\n\n\n\n<div id=\"ez-toc-container\" class=\"ez-toc-v2_0_75 counter-hierarchy ez-toc-counter ez-toc-grey ez-toc-container-direction\">\n<div class=\"ez-toc-title-container\">\n<p class=\"ez-toc-title\" style=\"cursor:inherit\">Contenido<\/p>\n<span class=\"ez-toc-title-toggle\"><a href=\"#\" class=\"ez-toc-pull-right ez-toc-btn ez-toc-btn-xs ez-toc-btn-default ez-toc-toggle\" aria-label=\"Alternar tabla de contenidos\"><span class=\"ez-toc-js-icon-con\"><span class=\"\"><span class=\"eztoc-hide\" style=\"display:none;\">Toggle<\/span><span class=\"ez-toc-icon-toggle-span\"><svg style=\"fill: #999;color:#999\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" class=\"list-377408\" width=\"20px\" height=\"20px\" viewBox=\"0 0 24 24\" fill=\"none\"><path d=\"M6 6H4v2h2V6zm14 0H8v2h12V6zM4 11h2v2H4v-2zm16 0H8v2h12v-2zM4 16h2v2H4v-2zm16 0H8v2h12v-2z\" fill=\"currentColor\"><\/path><\/svg><svg style=\"fill: #999;color:#999\" class=\"arrow-unsorted-368013\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"10px\" height=\"10px\" viewBox=\"0 0 24 24\" version=\"1.2\" baseProfile=\"tiny\"><path d=\"M18.2 9.3l-6.2-6.3-6.2 6.3c-.2.2-.3.4-.3.7s.1.5.3.7c.2.2.4.3.7.3h11c.3 0 .5-.1.7-.3.2-.2.3-.5.3-.7s-.1-.5-.3-.7zM5.8 14.7l6.2 6.3 6.2-6.3c.2-.2.3-.5.3-.7s-.1-.5-.3-.7c-.2-.2-.4-.3-.7-.3h-11c-.3 0-.5.1-.7.3-.2.2-.3.5-.3.7s.1.5.3.7z\"\/><\/svg><\/span><\/span><\/span><\/a><\/span><\/div>\n<nav><ul class='ez-toc-list ez-toc-list-level-1 ' ><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-1\" href=\"https:\/\/proveedoracano.com\/blog\/arduino-contrasena\/#Componentes_Esenciales\" >Componentes Esenciales<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-2\" href=\"https:\/\/proveedoracano.com\/blog\/arduino-contrasena\/#Programacion_Librerias_y_Conceptos_Clave\" >Programaci\u00f3n: Librer\u00edas y Conceptos Clave<\/a><ul class='ez-toc-list-level-3' ><li class='ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-3\" href=\"https:\/\/proveedoracano.com\/blog\/arduino-contrasena\/#Uso_de_Librerias\" >Uso de Librer\u00edas<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-4\" href=\"https:\/\/proveedoracano.com\/blog\/arduino-contrasena\/#Almacenamiento_Incremental\" >Almacenamiento Incremental<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-5\" href=\"https:\/\/proveedoracano.com\/blog\/arduino-contrasena\/#Comparacion_de_Cadenas\" >Comparaci\u00f3n de Cadenas<\/a><\/li><\/ul><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-6\" href=\"https:\/\/proveedoracano.com\/blog\/arduino-contrasena\/#Implementacion_del_Circuito\" >Implementaci\u00f3n del Circuito<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-7\" href=\"https:\/\/proveedoracano.com\/blog\/arduino-contrasena\/#Simulacion_en_Tinkercad\" >Simulaci\u00f3n en Tinkercad<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-8\" href=\"https:\/\/proveedoracano.com\/blog\/arduino-contrasena\/#Conclusion\" >Conclusi\u00f3n<\/a><\/li><\/ul><\/nav><\/div>\n<h2 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"Componentes_Esenciales\"><\/span>Componentes Esenciales<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong><a href=\"https:\/\/proveedoracano.com\/eshop\/UNO-CH340\">Arduino Uno<\/a><\/strong>: La plataforma principal para procesar la informaci\u00f3n.<\/li>\n\n\n\n<li><strong><a href=\"https:\/\/proveedoracano.com\/eshop\/matricial-4x4\">Teclado Matricial 4&#215;4<\/a><\/strong>: Utilizado para ingresar la contrase\u00f1a de 4 d\u00edgitos.<\/li>\n\n\n\n<li><strong><a href=\"https:\/\/proveedoracano.com\/eshop\/LCD1602\">LCD I2C 16&#215;2<\/a><\/strong>: Para mostrar mensajes y guiar al usuario.<\/li>\n\n\n\n<li><strong><a href=\"https:\/\/proveedoracano.com\/eshop\/adaptador-I2C\">M\u00f3dulo I2C:<\/a><\/strong> Va soldado a la pantalla 1602<\/li>\n\n\n\n<li><strong><a href=\"https:\/\/proveedoracano.com\/eshop\/LED-difuso\">LED Verde y LED Rojo<\/a><\/strong>: Indicadores visuales de \u00e9xito o error en la contrase\u00f1a.<\/li>\n\n\n\n<li><strong><a href=\"https:\/\/proveedoracano.com\/eshop\/65-jumper\">Cables de Conexi\u00f3n y Resistencias<\/a><\/strong>: Para ensamblar el circuito de manera segura.<\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"Programacion_Librerias_y_Conceptos_Clave\"><\/span>Programaci\u00f3n: Librer\u00edas y Conceptos Clave<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<p>El c\u00f3digo completo lo puedes ver en la simulaci\u00f3n de <a href=\"https:\/\/www.tinkercad.com\/things\/biRJ1CcIQh1-teclado-contrasena-1\" target=\"_blank\" rel=\"noreferrer noopener\">tinkercad<\/a>.<\/p>\n\n\n\n<p>Dale click en simular, desp\u00e9s c\u00f3digo,<\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"Uso_de_Librerias\"><\/span>Uso de Librer\u00edas<span class=\"ez-toc-section-end\"><\/span><\/h3>\n\n\n\n<p>Las librer\u00edas en Arduino son conjuntos de funciones predefinidas que facilitan el trabajo con hardware espec\u00edfico. En este proyecto, utilizamos dos librer\u00edas fundamentales:<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li><strong>Keypad.h<\/strong>: Esta librer\u00eda maneja la interacci\u00f3n con el teclado matricial, permitiendo detectar y leer las teclas presionadas de manera sencilla.<\/li>\n\n\n\n<li><strong>LiquidCrystal_I2C.h<\/strong>: Facilita la comunicaci\u00f3n con el display LCD usando el protocolo I2C, lo que simplifica la conexi\u00f3n y el manejo del LCD.<\/li>\n<\/ol>\n\n\n\n<pre class=\"wp-block-preformatted\"><code>#include &lt;Keypad.h><br>#include &lt;Wire.h><br>#include &lt;LiquidCrystal_I2C.h><br><\/code><\/pre>\n\n\n\n<h3 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"Almacenamiento_Incremental\"><\/span>Almacenamiento Incremental<span class=\"ez-toc-section-end\"><\/span><\/h3>\n\n\n\n<p>Uno de los aspectos clave en este proyecto es la capacidad de almacenar de manera incremental los d\u00edgitos ingresados por el usuario. Cada vez que se presiona una tecla en el teclado matricial, se guarda en un arreglo (array) y se incrementa un contador. Este contador asegura que la contrase\u00f1a tenga el n\u00famero correcto de d\u00edgitos antes de ser validada.<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\"><code>char contrasena[5] = \"1234\"; \/\/ Contrase\u00f1a de 4 d\u00edgitos<br>char codigo[5]; \/\/ Para almacenar la contrase\u00f1a ingresada<br>int cont = 0; \/\/ Contador para las teclas ingresadas<br><\/code><\/pre>\n\n\n\n<h3 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"Comparacion_de_Cadenas\"><\/span>Comparaci\u00f3n de Cadenas<span class=\"ez-toc-section-end\"><\/span><\/h3>\n\n\n\n<p>Una vez que se han ingresado los 4 d\u00edgitos, la entrada se compara con la contrase\u00f1a almacenada usando la funci\u00f3n <code>strcmp()<\/code>. Si coinciden, se enciende el LED verde, indicando que la contrase\u00f1a es correcta. Si no coinciden, se enciende el LED rojo.<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\"><code>if (strcmp(codigo, contrasena) == 0) {<br>    \/\/ Contrase\u00f1a correcta<br>    digitalWrite(LedVerde, HIGH);<br>} else {<br>    \/\/ Contrase\u00f1a incorrecta<br>    digitalWrite(LedRojo, HIGH);<br>}<br><\/code><\/pre>\n\n\n\n<h2 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"Implementacion_del_Circuito\"><\/span>Implementaci\u00f3n del Circuito<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<p>El circuito se construye conectando el teclado matricial al Arduino mediante los pines digitales, mientras que el LCD I2C se conecta a los pines SDA y SCL para la comunicaci\u00f3n I2C. Los LEDs se conectan a dos pines digitales con resistencias para limitar la corriente.<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"530\" height=\"451\" src=\"https:\/\/proveedoracano.com\/blog\/wp-content\/uploads\/2024\/08\/image-2.png\" alt=\"Circuito b\u00e1sico contrase\u00f1a con Arduino\" class=\"wp-image-100\" srcset=\"https:\/\/proveedoracano.com\/blog\/wp-content\/uploads\/2024\/08\/image-2.png 530w, https:\/\/proveedoracano.com\/blog\/wp-content\/uploads\/2024\/08\/image-2-300x255.png 300w\" sizes=\"(max-width: 530px) 100vw, 530px\" \/><\/figure>\n\n\n\n<h2 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"Simulacion_en_Tinkercad\"><\/span>Simulaci\u00f3n en Tinkercad<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<p>Antes de ensamblar el circuito, puedes ver c\u00f3mo funciona usando la simulaci\u00f3n en Tinkercad. Accede al siguiente enlace para probarlo por ti mismo:<\/p>\n\n\n\n<iframe loading=\"lazy\" width=\"560\" height=\"350\" src=\"https:\/\/www.tinkercad.com\/embed\/biRJ1CcIQh1?editbtn=1\" frameborder=\"0\" marginwidth=\"0\" marginheight=\"0\" scrolling=\"no\"><\/iframe>\n\n\n\n<h2 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"Conclusion\"><\/span>Conclusi\u00f3n<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<p>Este proyecto no solo es una excelente manera de aprender sobre hardware, sino que tambi\u00e9n te permite explorar conceptos clave de programaci\u00f3n en Arduino, como el uso de librer\u00edas y el almacenamiento incremental de datos. Al completar este proyecto, habr\u00e1s adquirido una s\u00f3lida comprensi\u00f3n de c\u00f3mo interactuar con varios componentes y c\u00f3mo usar la programaci\u00f3n para controlarlos eficazmente.<\/p>\n\n\n\n<p>Si est\u00e1s en M\u00e9xico y necesitas componentes electr\u00f3nicos, te invitamos a visitar nuestra tienda de electr\u00f3nica en la CDMX. \u00a1Te esperamos con todo lo que necesitas para tus proyectos!<\/p>\n\n\n\n<p><strong>\u00a1Empieza ahora y convierte tus conocimientos en habilidades pr\u00e1cticas!<\/strong><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Con este proyecto de Arduino, aprender\u00e1s a crear un sistema de verificaci\u00f3n de contrase\u00f1a usando un teclado matricial, un LCD y LEDs. El sistema enciende un LED verde para contrase\u00f1as correctas y un LED rojo para incorrectas, apagando los LEDs autom\u00e1ticamente despu\u00e9s de 5 segundos. Ideal para principiantes en Arduino que quieren practicar manejo de datos y componentes electr\u00f3nicos.<\/p>\n","protected":false},"author":2,"featured_media":107,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[19,3,4],"tags":[37,39,38,29,26,36,30],"class_list":["post-93","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-arduino","category-practicas","category-tinkercad","tag-4x4","tag-clave","tag-contrasena","tag-i2c","tag-lcd","tag-teclado-matricial","tag-tinkercad"],"_links":{"self":[{"href":"https:\/\/proveedoracano.com\/blog\/wp-json\/wp\/v2\/posts\/93"}],"collection":[{"href":"https:\/\/proveedoracano.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/proveedoracano.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/proveedoracano.com\/blog\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/proveedoracano.com\/blog\/wp-json\/wp\/v2\/comments?post=93"}],"version-history":[{"count":8,"href":"https:\/\/proveedoracano.com\/blog\/wp-json\/wp\/v2\/posts\/93\/revisions"}],"predecessor-version":[{"id":103,"href":"https:\/\/proveedoracano.com\/blog\/wp-json\/wp\/v2\/posts\/93\/revisions\/103"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/proveedoracano.com\/blog\/wp-json\/wp\/v2\/media\/107"}],"wp:attachment":[{"href":"https:\/\/proveedoracano.com\/blog\/wp-json\/wp\/v2\/media?parent=93"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/proveedoracano.com\/blog\/wp-json\/wp\/v2\/categories?post=93"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/proveedoracano.com\/blog\/wp-json\/wp\/v2\/tags?post=93"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}