{"id":3123,"date":"2024-07-12T20:50:15","date_gmt":"2024-07-13T01:50:15","guid":{"rendered":"https:\/\/www.electroallweb.com\/?p=3123"},"modified":"2024-07-12T20:52:17","modified_gmt":"2024-07-13T01:52:17","slug":"como-hacer-menu-de-opciones-con-pantalla-lcd-y-pulsadores-en-arduino","status":"publish","type":"post","link":"https:\/\/www.electroallweb.com\/index.php\/2024\/07\/12\/como-hacer-menu-de-opciones-con-pantalla-lcd-y-pulsadores-en-arduino\/","title":{"rendered":"Como hacer MENU de OPCIONES con pantalla LCD y pulsadores en arduino"},"content":{"rendered":"<section class=\"l-section wpb_row height_medium\"><div class=\"l-section-h i-cf\"><div class=\"g-cols vc_row type_default valign_top\"><div class=\"vc_col-sm-2 wpb_column vc_column_container\"><div class=\"vc_column-inner\"><div class=\"wpb_wrapper\"><\/div><\/div><\/div><div class=\"vc_col-sm-10 wpb_column vc_column_container\"><div class=\"vc_column-inner\"><div class=\"wpb_wrapper\">\r\n\t<div class=\"wpb_text_column  vc_custom_1720835219044\">\r\n\t\t<div class=\"wpb_wrapper\">\r\n\t\t\t<h5><span id=\"ESPECIFICACIONES_TECNICAS\">CONEXIONES DE LOS DISPOSITIVOS<br \/>\n<img loading=\"lazy\" decoding=\"async\" class=\"wp-image-265 alignnone\" src=\"https:\/\/www.electroallweb.com\/wp-content\/uploads\/2019\/11\/linea-electroall-de-colores-300x10.png\" alt=\"\" width=\"1080\" height=\"36\" srcset=\"https:\/\/www.electroallweb.com\/wp-content\/uploads\/2019\/11\/linea-electroall-de-colores-300x10.png 300w, https:\/\/www.electroallweb.com\/wp-content\/uploads\/2019\/11\/linea-electroall-de-colores-1024x33.png 1024w, https:\/\/www.electroallweb.com\/wp-content\/uploads\/2019\/11\/linea-electroall-de-colores-768x25.png 768w, https:\/\/www.electroallweb.com\/wp-content\/uploads\/2019\/11\/linea-electroall-de-colores.png 1624w\" sizes=\"(max-width: 1080px) 100vw, 1080px\" \/><\/span><\/h5>\n\r\n\t\t<\/div>\r\n\t<\/div>\r\n<div class=\"w-socials align_center style_default color_brand index_1\" style=\"font-size:30px;\"><div class=\"w-socials-list\"><div class=\"w-socials-item facebook\">\r\n\t\t\t\t<a class=\"w-socials-item-link\" target=\"_blank\" href=\"https:\/\/www.facebook.com\/ELECTROALL.ELECTRONICA\/\">\r\n\t\t\t\t\t<span class=\"w-socials-item-link-hover\"><\/span>\r\n\t\t\t\t\t<span class=\"w-socials-item-link-title\">Facebook<\/span>\r\n\t\t\t\t<\/a>\r\n\t\t\t\t<div class=\"w-socials-item-popup\">\r\n\t\t\t\t\t<span>Facebook<\/span>\r\n\t\t\t\t<\/div>\r\n\t\t\t<\/div><div class=\"w-socials-item youtube\">\r\n\t\t\t\t<a class=\"w-socials-item-link\" target=\"_blank\" href=\"https:\/\/www.youtube.com\/c\/ELECTROALL\">\r\n\t\t\t\t\t<span class=\"w-socials-item-link-hover\"><\/span>\r\n\t\t\t\t\t<span class=\"w-socials-item-link-title\">YouTube<\/span>\r\n\t\t\t\t<\/a>\r\n\t\t\t\t<div class=\"w-socials-item-popup\">\r\n\t\t\t\t\t<span>YouTube<\/span>\r\n\t\t\t\t<\/div>\r\n\t\t\t<\/div><div class=\"w-socials-item instagram\">\r\n\t\t\t\t<a class=\"w-socials-item-link\" target=\"_blank\" href=\"https:\/\/www.instagram.com\/electroall_\/\">\r\n\t\t\t\t\t<span class=\"w-socials-item-link-hover\"><\/span>\r\n\t\t\t\t\t<span class=\"w-socials-item-link-title\">Instagram<\/span>\r\n\t\t\t\t<\/a>\r\n\t\t\t\t<div class=\"w-socials-item-popup\">\r\n\t\t\t\t\t<span>Instagram<\/span>\r\n\t\t\t\t<\/div>\r\n\t\t\t<\/div><div class=\"w-socials-item github\">\r\n\t\t\t\t<a class=\"w-socials-item-link\" target=\"_blank\" href=\"https:\/\/github.com\/ELECTROALL\">\r\n\t\t\t\t\t<span class=\"w-socials-item-link-hover\"><\/span>\r\n\t\t\t\t\t<span class=\"w-socials-item-link-title\">GitHub<\/span>\r\n\t\t\t\t<\/a>\r\n\t\t\t\t<div class=\"w-socials-item-popup\">\r\n\t\t\t\t\t<span>GitHub<\/span>\r\n\t\t\t\t<\/div>\r\n\t\t\t<\/div><\/div><\/div><div class=\"w-separator type_default size_medium thick_1 style_solid color_border cont_none\"><span class=\"w-separator-h\"><\/span><\/div><div class=\"w-image\"><div class=\"w-image-h\"><a href=\"https:\/\/www.electroallweb.com\/wp-content\/uploads\/2024\/07\/conexiones-driver-motor-L298-con-arduino-y-pantalla-LCD-menus.png\" ref=\"magnificPopup\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"577\" src=\"https:\/\/www.electroallweb.com\/wp-content\/uploads\/2024\/07\/conexiones-driver-motor-L298-con-arduino-y-pantalla-LCD-menus-1024x577.png\" class=\"attachment-large size-large\" alt=\"\" srcset=\"https:\/\/www.electroallweb.com\/wp-content\/uploads\/2024\/07\/conexiones-driver-motor-L298-con-arduino-y-pantalla-LCD-menus-1024x577.png 1024w, https:\/\/www.electroallweb.com\/wp-content\/uploads\/2024\/07\/conexiones-driver-motor-L298-con-arduino-y-pantalla-LCD-menus-300x169.png 300w, https:\/\/www.electroallweb.com\/wp-content\/uploads\/2024\/07\/conexiones-driver-motor-L298-con-arduino-y-pantalla-LCD-menus-768x433.png 768w, https:\/\/www.electroallweb.com\/wp-content\/uploads\/2024\/07\/conexiones-driver-motor-L298-con-arduino-y-pantalla-LCD-menus-1536x865.png 1536w, https:\/\/www.electroallweb.com\/wp-content\/uploads\/2024\/07\/conexiones-driver-motor-L298-con-arduino-y-pantalla-LCD-menus-2048x1153.png 2048w, https:\/\/www.electroallweb.com\/wp-content\/uploads\/2024\/07\/conexiones-driver-motor-L298-con-arduino-y-pantalla-LCD-menus-600x338.png 600w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><\/a><\/div><\/div><\/div><\/div><\/div><\/div><\/div><\/section><section class=\"l-section wpb_row height_medium\"><div class=\"l-section-h i-cf\"><div class=\"g-cols vc_row type_default valign_top\"><div class=\"vc_col-sm-2 wpb_column vc_column_container\"><div class=\"vc_column-inner\"><div class=\"wpb_wrapper\"><\/div><\/div><\/div><div class=\"vc_col-sm-10 wpb_column vc_column_container\"><div class=\"vc_column-inner\"><div class=\"wpb_wrapper\">\r\n\t<div class=\"wpb_text_column  vc_custom_1720835234219\">\r\n\t\t<div class=\"wpb_wrapper\">\r\n\t\t\t<h5><span id=\"ESPECIFICACIONES_TECNICAS\">MODELO MENU<br \/>\n<img loading=\"lazy\" decoding=\"async\" class=\"wp-image-265 alignnone\" src=\"https:\/\/www.electroallweb.com\/wp-content\/uploads\/2019\/11\/linea-electroall-de-colores-300x10.png\" alt=\"\" width=\"1080\" height=\"36\" srcset=\"https:\/\/www.electroallweb.com\/wp-content\/uploads\/2019\/11\/linea-electroall-de-colores-300x10.png 300w, https:\/\/www.electroallweb.com\/wp-content\/uploads\/2019\/11\/linea-electroall-de-colores-1024x33.png 1024w, https:\/\/www.electroallweb.com\/wp-content\/uploads\/2019\/11\/linea-electroall-de-colores-768x25.png 768w, https:\/\/www.electroallweb.com\/wp-content\/uploads\/2019\/11\/linea-electroall-de-colores.png 1624w\" sizes=\"(max-width: 1080px) 100vw, 1080px\" \/><\/span><\/h5>\n\r\n\t\t<\/div>\r\n\t<\/div>\r\n<div class=\"w-image\"><div class=\"w-image-h\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"577\" src=\"https:\/\/www.electroallweb.com\/wp-content\/uploads\/2024\/07\/Distribucion-de-los-menus-1024x577.png\" class=\"attachment-large size-large\" alt=\"\" srcset=\"https:\/\/www.electroallweb.com\/wp-content\/uploads\/2024\/07\/Distribucion-de-los-menus-1024x577.png 1024w, https:\/\/www.electroallweb.com\/wp-content\/uploads\/2024\/07\/Distribucion-de-los-menus-300x169.png 300w, https:\/\/www.electroallweb.com\/wp-content\/uploads\/2024\/07\/Distribucion-de-los-menus-768x433.png 768w, https:\/\/www.electroallweb.com\/wp-content\/uploads\/2024\/07\/Distribucion-de-los-menus-1536x865.png 1536w, https:\/\/www.electroallweb.com\/wp-content\/uploads\/2024\/07\/Distribucion-de-los-menus-2048x1154.png 2048w, https:\/\/www.electroallweb.com\/wp-content\/uploads\/2024\/07\/Distribucion-de-los-menus-600x338.png 600w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><\/div><\/div><\/div><\/div><\/div><\/div><\/div><\/section><section class=\"l-section wpb_row height_medium\"><div class=\"l-section-h i-cf\"><div class=\"g-cols vc_row type_default valign_top\"><div class=\"vc_col-sm-2 wpb_column vc_column_container\"><div class=\"vc_column-inner\"><div class=\"wpb_wrapper\"><\/div><\/div><\/div><div class=\"vc_col-sm-10 wpb_column vc_column_container\"><div class=\"vc_column-inner\"><div class=\"wpb_wrapper\">\r\n\t<div class=\"wpb_text_column  vc_custom_1720835252044\">\r\n\t\t<div class=\"wpb_wrapper\">\r\n\t\t\t<h5><span id=\"ESPECIFICACIONES_TECNICAS\">CODIGO<br \/>\n<img loading=\"lazy\" decoding=\"async\" class=\"wp-image-265 alignnone\" src=\"https:\/\/www.electroallweb.com\/wp-content\/uploads\/2019\/11\/linea-electroall-de-colores-300x10.png\" alt=\"\" width=\"1080\" height=\"36\" srcset=\"https:\/\/www.electroallweb.com\/wp-content\/uploads\/2019\/11\/linea-electroall-de-colores-300x10.png 300w, https:\/\/www.electroallweb.com\/wp-content\/uploads\/2019\/11\/linea-electroall-de-colores-1024x33.png 1024w, https:\/\/www.electroallweb.com\/wp-content\/uploads\/2019\/11\/linea-electroall-de-colores-768x25.png 768w, https:\/\/www.electroallweb.com\/wp-content\/uploads\/2019\/11\/linea-electroall-de-colores.png 1624w\" sizes=\"(max-width: 1080px) 100vw, 1080px\" \/><\/span><\/h5>\n\r\n\t\t<\/div>\r\n\t<\/div>\r\n\r\n\t<div class=\"wpb_text_column \">\r\n\t\t<div class=\"wpb_wrapper\">\r\n\t\t\t<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"cpp\">\/\/librerias\r\n#include &lt;EEPROM.h&gt;\r\n#include &lt;Wire.h&gt;\r\n#include &lt;LiquidCrystal_I2C.h&gt;\r\nLiquidCrystal_I2C lcd(0x27, 16, 2);\r\n\r\n\/\/\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\r\n\/\/PINES DE ENTRADA DE LOS PULSADORES         \u2588\r\nconst int in_A = 2;     \/\/ADD                \u2588\r\nconst int in_B = 4;     \/\/LESS               \u2588\r\nconst int swPin = 3;    \/\/OK                 \u2588\r\nbool btnpress = false;  \/\/memoria boton OK   \u2588\r\n\/\/\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2588\r\n\r\n\/\/\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\r\n\/\/PINES DE SALIDA PARA CONTROLAR LOS MOTORES                                   \u2588\r\n#define pwm_motor1 9   \/\/Salidas PWM para el motor 1                           \u2588\r\n#define pwm_motor2 10  \/\/Salidas PWM para el motor 2                           \u2588\r\n#define der_m1 5       \/\/ se\u00f1al para que el motor 1 gire hacia la derecha      \u2588\r\n#define izq_m1 6       \/\/ se\u00f1al para que el motor 1 gire hacia la izquierda    \u2588\r\n#define der_m2 7       \/\/ se\u00f1al para que el motor 2 gire hacia la derecha      \u2588\r\n#define izq_m2 8       \/\/ se\u00f1al para que el motor 2 gire hacia la ziquierda    \u2588 \\\r\n                       \/\/\/\/\/                                                   \u2588\r\n\/\/MEMORIAS PARA LA VELOCIDAD DEL MOTOR                                         \u2588\r\nint vel_moto1 = 0;    \/\/ variable para la velocidad del motor1                 \u2588\r\nint vel_moto2 = 0;    \/\/ variable para la velocidad del motor2                 \u2588\r\nint direc_moto1 = 1;  \/\/Direccion EEPROM para almacenar la variable vel_moto1  \u2588\r\nint direc_moto2 = 2;  \/\/Direccion EEPROM para almacenar la variable vel_moto2  \u2588\r\n\/\/\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2588\r\n\r\n\/\/\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\r\n\/\/---------------------------------------------------MENUS--------------------------------------------------------------------------------------------------\r\nString menu1[] = { \"ON \/\/ OFF\", \"ADJ VELOCIDAD\", \"INVER GIRO\", \"Atras\" };  \/\/Palabras del menu principal\r\nint sizemenu1 = sizeof(menu1) \/ sizeof(menu1[0]);                          \/\/ Aqui vamos a obtener el n\u00famero de elementos ocupados en la matriz. en este caso 3\r\n\r\nString menu2[] = { \"Motor1\", \"Motor2\", \"Atras\" };\r\nint sizemenu2 = sizeof(menu2) \/ sizeof(menu2[0]);\r\n\r\nString menu3[] = { \"ON\", \"OFF\", \"Atras\" };\r\nint sizemenu3 = sizeof(menu3) \/ sizeof(menu3[0]);\r\n\r\nString menu4[] = { \"Izquierda\", \"Derecha\", \"Atras\" };\r\nint sizemenu4 = sizeof(menu4) \/ sizeof(menu4[0]);\r\n\r\nString linea1, linea2;  \/\/lines o filas del lcd 16x2\r\nint level_menu = 0;     \/\/ para ubicarnos en un men\u00fa { \"ON \/\/ OFF\", \"ADJ VELOCIDAD\", \"INVER GIRO\", \"Atras\" } { \"Motor1\", \"Motor2\", \"Atras\" };\r\nint level2_menu = 0;    \/\/ para ubicarnos en el subnemu { \"ON\", \"OFF\", \"Atras\" } { \"Izquierda\", \"Derecha\", \"Atras\" }\r\n\r\nint contador = 0;  \/\/ CONTADOR PARA EL DESPLAZAMIENTO ENTRE LOS MENUS\r\n\r\nbyte flecha[] = { B10000, B11000, B11100, B11110, B11100, B11000, B10000, B00000 };  \/\/Creamos un array de 8 posiciones para la flecha del menu\r\n\/\/\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\r\n\r\nvoid setup() {\r\n\r\n  pinMode(in_A, INPUT);\r\n  pinMode(in_B, INPUT);\r\n  pinMode(swPin, INPUT);\r\n\r\n  pinMode(pwm_motor1, OUTPUT);\r\n  pinMode(pwm_motor2, OUTPUT);\r\n  pinMode(der_m1, OUTPUT);\r\n  pinMode(izq_m1, OUTPUT);\r\n  pinMode(der_m2, OUTPUT);\r\n  pinMode(izq_m2, OUTPUT);\r\n\r\n  lcd.init();\r\n  lcd.backlight();\r\n  lcd.createChar(0, flecha);  \/\/Caracter personalizado\r\n\r\n  vel_moto1 = EEPROM.read(direc_moto1);  \/\/ Obtiene el dato de EEPROM y lo env\u00eda a la variable vel_moto1\r\n  vel_moto2 = EEPROM.read(direc_moto2);\r\n\r\n  analogWrite(pwm_motor1, map(vel_moto1, 0, 9, 0, 255));  \/\/Enviamos el dato leido de EEPROM al MOTOR 1\r\n  analogWrite(pwm_motor2, map(vel_moto2, 0, 9, 0, 255));\r\n}\r\n\r\nvoid loop() {\r\n\r\n  selectOption();  \/\/Funcion para detectar cuando se Presionar el pusador de OK\r\n\r\n  \/\/\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588 PANTALLA PRINCIPAL \u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\r\n  if (level_menu == 0) {\r\n    lcd.setCursor(0, 0);  \/\/Detalles mas importantes del motor1 \/\/ linea0\r\n    lcd.print(\"Motor1: \");\r\n    if (vel_moto1) lcd.print(\"ON, \");\r\n    else lcd.print(\"OFF, \");\r\n    lcd.print(vel_moto1);\r\n\r\n    lcd.setCursor(0, 1);  \/\/Detalles mas importantes del motor2  \/\/ linea1\r\n    lcd.print(\"Motor2: \");\r\n    if (vel_moto2) lcd.print(\"ON, \");\r\n    else lcd.print(\"OFF, \");\r\n    lcd.print(vel_moto2);\r\n\r\n    if (btnpress) {  \/\/ si se presiona el pulsador de OK nos llevar\u00e1 al menu principal\r\n      level_menu = 1;\r\n      fn_menu(contador, menu1, sizemenu1);\r\n      btnpress = false;\r\n    }\r\n  }  \/\/\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\r\n\r\n  \/\/\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588 MENU 1 PRINCIPAL \u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\r\n  if (level_menu == 1) {  \/\/Esta variable corresponde al nivel principal del menu. level_menu = 1.\r\n\r\n    if (fnSwitch(sizemenu1)) {              \/\/Esta funcion muestra en el LCD el menu en el que estamos\r\n      fn_menu(contador, menu1, sizemenu1);  \/\/Esta funcion muestra la posicion dentro de ese menu segun el valor de la variable contador\r\n    }\r\n\r\n    if (btnpress) {  \/\/Verificamos si el boton del encoder fue oprimido. btnpress == true\r\n      \/\/ &gt;ON \/\/ OFF\r\n      if (contador == 0) {\r\n        contador = 0;                         \/\/Seleccionamos la posicion donde quedara la flecha de seleccion. On, Off, Atras\r\n        fn_menu(contador, menu2, sizemenu2);  \/\/Vamos a la funcion que nos muestra las opciones para el Led 1\r\n        level_menu = 2;                       \/\/Esta variable corresponde al nivel secundario del menu. level_menu = 1.\r\n      }\r\n\r\n      \/\/ &gt; ADJ VELOCIDAD\r\n      if (contador == 1) {\r\n        contador = 0;\r\n        fn_menu(contador, menu2, sizemenu2);\r\n        level_menu = 3;\r\n      }\r\n\r\n      \/\/&gt; INVERSION DE GIRO\r\n      if (contador == 2) {\r\n        contador = 0;\r\n        fn_menu(contador, menu2, sizemenu2);\r\n        level_menu = 4;\r\n      }\r\n      \/\/&gt;Atras\r\n      if (contador == 3) {\r\n        contador = 0;\r\n        level_menu = 0;\r\n      }\r\n      btnpress = false;  \/\/  Nos aseguramos que esta variable de retorno de la funcion selectOption() vuelva a su estado inicial\r\n    }\r\n  }  \/\/\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\r\n\r\n  \/\/\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588 MENU2: { \"Motor1\", \"Motor2\", \"Atras\" } \u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\r\n  if (level_menu == 2) {\r\n\r\n    if (level2_menu == 0) {\r\n      if (fnSwitch(sizemenu2)) {  \/\/Nos desplazamos con el encoder sleccionando las diferentes opciones\r\n        fn_menu(contador, menu2, sizemenu2);\r\n      }\r\n      if (btnpress) {  \/\/Verificamos si el boton del encoder fue oprimido. btnpress == true\r\n\r\n        if (contador == 0) {  \/\/ motor1\r\n          contador = 0;\r\n          fn_menu(contador, menu3, sizemenu3);\r\n          level2_menu = 1;\r\n        }\r\n\r\n        if (contador == 1) {  \/\/ motor2\r\n          contador = 0;\r\n          fn_menu(contador, menu3, sizemenu3);\r\n          level2_menu = 2;\r\n        }\r\n\r\n        if (contador == 2) {  \/\/atras\r\n          contador = 0;\r\n          fn_menu(contador, menu1, sizemenu1);\r\n          level_menu = 1;\r\n        }\r\n\r\n        btnpress = false;\r\n      }\r\n    }\r\n\r\n    \/\/\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584 MENU 3: { \"ON\", \"OFF\", \"Atras\" } \u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\r\n    if (level2_menu == 1) {\r\n      if (fnSwitch(sizemenu3)) {  \/\/Nos desplazamos con el encoder sleccionando las diferentes opciones\r\n        fn_menu(contador, menu3, sizemenu3);\r\n      }\r\n      if (btnpress) {\r\n        if (contador == 0) {\r\n          digitalWrite(pwm_motor1, HIGH);  \/\/Encedemos motor 1\r\n          vel_moto1 = 9;                   \/\/Maximo velocidad\r\n          EEPROM.write(direc_moto1, vel_moto1);\r\n        }\r\n        if (contador == 1) {\r\n          digitalWrite(pwm_motor1, LOW);  \/\/Apagamos motor 1\r\n          vel_moto1 = 0;                  \/\/minima velocidad\r\n          EEPROM.write(direc_moto1, vel_moto1);\r\n        }\r\n        if (contador == 2) {  \/\/atras\r\n          contador = 0;\r\n          fn_menu(contador, menu2, sizemenu2);\r\n          level2_menu = 0;\r\n        }\r\n        btnpress = false;\r\n      }\r\n    }\r\n    if (level2_menu == 2) {\r\n      if (fnSwitch(sizemenu3)) {  \/\/Nos desplazamos con el encoder sleccionando las diferentes opciones\r\n        fn_menu(contador, menu3, sizemenu3);\r\n      }\r\n      if (btnpress) {\r\n        if (contador == 0) {\r\n          digitalWrite(pwm_motor2, HIGH);  \/\/ ON MOTOR 2\r\n          vel_moto2 = 9;                   \/\/ velocidad maxima\r\n          EEPROM.write(direc_moto2, vel_moto2);\r\n        }\r\n        if (contador == 1) {\r\n          digitalWrite(pwm_motor2, LOW);  \/\/OFF MOTOR2\r\n          vel_moto2 = 0;                  \/\/Velocidad minima\r\n          EEPROM.write(direc_moto2, vel_moto2);\r\n        }\r\n        if (contador == 2) {  \/\/atras\r\n          contador = 0;\r\n          fn_menu(contador, menu2, sizemenu2);\r\n          level2_menu = 0;\r\n        }\r\n        btnpress = false;\r\n      }\r\n    }  \/\/\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\r\n  }    \/\/\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\r\n\r\n  \/\/\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588 MENU3: velocidad motor1, velocidad motor2 \u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\r\n  if (level_menu == 3) {\r\n\r\n    if (fnSwitch(sizemenu2)) {  \/\/ MENU2: { \"Motor1\", \"Motor2\", \"Atras\" }\r\n      fn_menu(contador, menu2, sizemenu2);\r\n    }\r\n\r\n    if (btnpress) {\r\n\r\n      if (contador == 0) {\r\n\r\n        contador = vel_moto1;\r\n        lcd.clear();\r\n\r\n        do {\r\n\r\n          fn_contador_brillo();\r\n          vel_moto1 = contador;\r\n\r\n          lcd.setCursor(0, 0);\r\n          lcd.print(\"velocidad motor1\");\r\n          analogWrite(pwm_motor1, map(vel_moto1, 0, 9, 0, 255));\r\n          lcd.setCursor(0, 1);\r\n          lcd.print(vel_moto1);\r\n\r\n        } while (digitalRead(swPin) == LOW);  \/\/Instrucciones despues del do se repetir\u00e1n mientras esta condici\u00f3n sea cierta\r\n        delay(500);\r\n        EEPROM.write(direc_moto1, vel_moto1);  \/\/ Se agrega a EEPROM con la direcci\u00f3n primero y valor de la variable despu\u00e9s\r\n        contador = 0;\r\n        fn_menu(contador, menu2, sizemenu2);\r\n      }\r\n\r\n      if (contador == 1) {\r\n\r\n        contador = vel_moto2;\r\n        lcd.clear();\r\n\r\n        do {\r\n\r\n          fn_contador_brillo();\r\n          vel_moto2 = contador;\r\n\r\n          lcd.setCursor(0, 0);\r\n          lcd.print(\"velocidad motor2\");\r\n          analogWrite(pwm_motor2, map(vel_moto2, 0, 9, 0, 255));\r\n          lcd.setCursor(0, 1);\r\n          lcd.print(vel_moto2);\r\n\r\n        } while (digitalRead(swPin) == LOW);  \/\/Instrucciones despues del do se repetir\u00e1n mientras esta condici\u00f3n sea cierta\r\n        delay(500);\r\n        EEPROM.write(direc_moto2, vel_moto2);\r\n        contador = 1;\r\n        fn_menu(contador, menu2, sizemenu2);\r\n      }\r\n\r\n      if (contador == 2) {                    \/\/ATRAS\r\n        contador = 1;                         \/\/Posicion del menu donde se genero el llamado 0 --&gt; 5\r\n        fn_menu(contador, menu1, sizemenu1);  \/\/Retorna al Menu Principal a la posicion del menu donde se genero el llamado\r\n        level_menu = 1;\r\n      }\r\n\r\n      btnpress = false;\r\n    }\r\n  }  \/\/\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\r\n\r\n  \/\/\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588 MENU2: { \"Motor1\", \"Motor2\", \"Atras\" } \u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\r\n  if (level_menu == 4) {\r\n\r\n    if (level2_menu == 0) {\r\n      if (fnSwitch(sizemenu2)) {\r\n        fn_menu(contador, menu2, sizemenu2);\r\n      }\r\n      if (btnpress) {\r\n\r\n        if (contador == 0) {  \/\/ MOTOR 1\r\n          contador = 0;\r\n          fn_menu(contador, menu4, sizemenu4);\r\n          level2_menu = 1;\r\n        }\r\n\r\n        if (contador == 1) {  \/\/ MOTOR 2\r\n          contador = 0;\r\n          fn_menu(contador, menu4, sizemenu4);\r\n          level2_menu = 2;\r\n        }\r\n\r\n        if (contador == 2) {  \/\/ATRAS\r\n          contador = 0;\r\n          fn_menu(contador, menu1, sizemenu1);\r\n          level_menu = 1;\r\n        }\r\n\r\n        btnpress = false;\r\n      }\r\n    }\r\n\r\n    \/\/\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584 MENU 3.1: { \"IZQUIERDA\", \"DERECHA\", \"Atras\" } \u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\r\n    if (level2_menu == 1) {  \/\/ IZQUIERDA, DERECHA, ATRAS: MOTOR 2\r\n      if (fnSwitch(sizemenu4)) {\r\n        fn_menu(contador, menu4, sizemenu4);\r\n      }\r\n      if (btnpress) {\r\n        if (contador == 0) {  \/\/IZQUIERDA\r\n          digitalWrite(der_m1, 1);\r\n          digitalWrite(izq_m1, 0);\r\n        }\r\n        if (contador == 1) {  \/\/DERECHA\r\n          digitalWrite(der_m1, 0);\r\n          digitalWrite(izq_m1, 1);\r\n        }\r\n        if (contador == 2) {  \/\/ATRAS\r\n          contador = 0;\r\n          fn_menu(contador, menu2, sizemenu2);\r\n          level2_menu = 0;\r\n        }\r\n        btnpress = false;\r\n      }\r\n    }\r\n    if (level2_menu == 2) {  \/\/ IZQUIERDA, DERECHA, ATRAS: MOTOR 2\r\n      if (fnSwitch(sizemenu4)) {\r\n        fn_menu(contador, menu4, sizemenu4);\r\n      }\r\n      if (btnpress) {\r\n        if (contador == 0) {  \/\/ IZQUIERDA\r\n          digitalWrite(der_m2, 1);\r\n          digitalWrite(izq_m2, 0);\r\n        }\r\n        if (contador == 1) {  \/\/DERECHA\r\n          digitalWrite(der_m2, 0);\r\n          digitalWrite(izq_m2, 1);\r\n        }\r\n        if (contador == 2) {  \/\/ATRAS\r\n          contador = 1;\r\n          fn_menu(contador, menu2, sizemenu2);\r\n          level2_menu = 0;\r\n        }\r\n        btnpress = false;\r\n      }\r\n    }  \/\/\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\r\n  }    \/\/\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\r\n}\r\n\r\nvoid selectOption() {  \/\/funcion para leer el pulsador de ok\r\n  if (digitalRead(swPin) == HIGH) {\r\n    delay(500);\r\n    btnpress = true;\r\n  }\r\n}\r\n\r\nvoid fn_contador_brillo() {\r\n\r\n  if (digitalRead(in_A) == HIGH) {\r\n    contador++;\r\n    delay(250);\r\n  } else if (digitalRead(in_B) == HIGH) {\r\n    contador--;\r\n    delay(250);\r\n  }\r\n\r\n  if (contador &gt; 9) {\r\n    contador = 9;\r\n  }\r\n  if (contador &lt; 0) {\r\n    contador = 0;\r\n  }\r\n}\r\n\r\nvoid fn_menu(int pos, String menus[], byte sizemenu) {  \/\/ funcion de desplazamiento de los men\u00fas\r\n  lcd.clear();\r\n  linea1 = \"\";\r\n  linea2 = \"\";\r\n\r\n  if ((pos % 2) == 0) {\r\n\r\n    lcd.setCursor(0, 0);\r\n    lcd.write(byte(0));\r\n    linea1 = menus[pos];\r\n\r\n    if (pos + 1 != sizemenu) {\r\n      linea2 = menus[pos + 1];\r\n    }\r\n\r\n  } else {\r\n    linea1 = menus[pos - 1];\r\n    lcd.setCursor(0, 1);\r\n    lcd.write(byte(0));\r\n    linea2 = menus[pos];\r\n  }\r\n\r\n  lcd.setCursor(1, 0);\r\n  lcd.print(linea1);\r\n\r\n  lcd.setCursor(1, 1);\r\n  lcd.print(linea2);\r\n}\r\n\r\nbool fnSwitch(byte sizemenu) {  \/\/Lee las se\u00f1ales de los pulsadores, exepto el de ok\r\n  bool retorno = false;\r\n  if (digitalRead(in_A) == 1 || digitalRead(in_B) == 1) {\r\n    if (digitalRead(in_A) == HIGH) {\r\n      contador++;\r\n      delay(250);\r\n    } else if (digitalRead(in_B) == HIGH) {\r\n      contador--;\r\n      delay(250);\r\n    }\r\n\r\n    if (contador &lt;= 0) {\r\n      contador = 0;\r\n    }\r\n\r\n    if (contador &gt;= sizemenu - 1) {\r\n      contador = sizemenu - 1;\r\n    }\r\n\r\n    retorno = true;\r\n  }\r\n  return retorno;\r\n}<\/pre>\n\r\n\t\t<\/div>\r\n\t<\/div>\r\n<\/div><\/div><\/div><\/div><\/div><\/section><section class=\"l-section wpb_row height_medium\"><div class=\"l-section-h i-cf\"><div class=\"g-cols vc_row type_default valign_top\"><div class=\"vc_col-sm-2 wpb_column vc_column_container\"><div class=\"vc_column-inner\"><div class=\"wpb_wrapper\"><\/div><\/div><\/div><div class=\"vc_col-sm-10 wpb_column vc_column_container\"><div class=\"vc_column-inner\"><div class=\"wpb_wrapper\">\r\n\t<div class=\"wpb_text_column  vc_custom_1720835327125\">\r\n\t\t<div class=\"wpb_wrapper\">\r\n\t\t\t<h5><span id=\"ESPECIFICACIONES_TECNICAS\">VIDEO<br \/>\n<img loading=\"lazy\" decoding=\"async\" class=\"wp-image-265 alignnone\" src=\"https:\/\/www.electroallweb.com\/wp-content\/uploads\/2019\/11\/linea-electroall-de-colores-300x10.png\" alt=\"\" width=\"1080\" height=\"36\" srcset=\"https:\/\/www.electroallweb.com\/wp-content\/uploads\/2019\/11\/linea-electroall-de-colores-300x10.png 300w, https:\/\/www.electroallweb.com\/wp-content\/uploads\/2019\/11\/linea-electroall-de-colores-1024x33.png 1024w, https:\/\/www.electroallweb.com\/wp-content\/uploads\/2019\/11\/linea-electroall-de-colores-768x25.png 768w, https:\/\/www.electroallweb.com\/wp-content\/uploads\/2019\/11\/linea-electroall-de-colores.png 1624w\" sizes=\"(max-width: 1080px) 100vw, 1080px\" \/><\/span><\/h5>\n\r\n\t\t<\/div>\r\n\t<\/div>\r\n<div class=\"w-video ratio_16x9\"><div class=\"w-video-h\"><iframe loading=\"lazy\" width=\"420\" height=\"315\" src=\"\/\/www.youtube.com\/embed\/DFC6QnWaPEg\" allowfullscreen><\/iframe><\/div><\/div><\/div><\/div><\/div><\/div><\/div><\/section>\n","protected":false},"excerpt":{"rendered":"CONEXIONES DE LOS DISPOSITIVOS Facebook Facebook YouTube YouTube Instagram Instagram GitHub GitHub MODELO MENU CODIGO \/\/librerias #include &lt;EEPROM.h&gt; #include &lt;Wire.h&gt; #include &lt;LiquidCrystal_I2C.h&gt; LiquidCrystal_I2C lcd(0x27, 16, 2); \/\/\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584 \/\/PINES DE ENTRADA DE LOS PULSADORES \u2588 const int in_A = 2; \/\/ADD \u2588 const int in_B = 4; \/\/LESS \u2588 const int swPin = 3; \/\/OK \u2588...","protected":false},"author":2,"featured_media":3126,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_monsterinsights_skip_tracking":false,"_monsterinsights_sitenote_active":false,"_monsterinsights_sitenote_note":"","_monsterinsights_sitenote_category":0,"footnotes":""},"categories":[1],"tags":[],"amp_enabled":true,"_links":{"self":[{"href":"https:\/\/www.electroallweb.com\/index.php\/wp-json\/wp\/v2\/posts\/3123"}],"collection":[{"href":"https:\/\/www.electroallweb.com\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.electroallweb.com\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.electroallweb.com\/index.php\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/www.electroallweb.com\/index.php\/wp-json\/wp\/v2\/comments?post=3123"}],"version-history":[{"count":2,"href":"https:\/\/www.electroallweb.com\/index.php\/wp-json\/wp\/v2\/posts\/3123\/revisions"}],"predecessor-version":[{"id":3128,"href":"https:\/\/www.electroallweb.com\/index.php\/wp-json\/wp\/v2\/posts\/3123\/revisions\/3128"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.electroallweb.com\/index.php\/wp-json\/wp\/v2\/media\/3126"}],"wp:attachment":[{"href":"https:\/\/www.electroallweb.com\/index.php\/wp-json\/wp\/v2\/media?parent=3123"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.electroallweb.com\/index.php\/wp-json\/wp\/v2\/categories?post=3123"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.electroallweb.com\/index.php\/wp-json\/wp\/v2\/tags?post=3123"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}