Pines 0 y 1 de Arduino uno

Un cordial saludo a toda la comunidad!

Qué tal, estoy programando un teclado matricial 4x4 junto con un LCD en el arduino uno. Esto me ocupa todos los pines digitales, ya que son 8 (pins 0-7) para el teclado y 6 para el LCD (pins 8 - 13). sin embargo no puedo conectar el teclado a los pines 0 y 1 por lo que tengo q usar los pines analógicos A0 y A1.

Aún me falta conectar un RTC y un sensor biométrico y ya no tendré espacio para conectar todo el sistema que estoy programando (Quiero un checador digital con huella digital) En otro tema de este mismo foro, leí que dichos pines no están reservados, que funcionan como los demás pines, pero antes de conectar cualquier cosa en TX y RX (pines 0 y 1) hay que realizar los siguientes pasos:

1.- No tener nada conectado en pines 0 y 1.
2.- Cargar el programa
3.- conectar el circuito
4.- Resetear

Y listo, sin embargo he hecho este procedimiento y no hay resultados. Ya probé esto con dos tarjetas arduino diferentes y el resultado es el mismo. No sé si estoy omitiendo algo o me falta alguna librería. Espero me pudieran ayudar, se los agradecería infinitamente.

Este es el código que estoy usando para declarar mis variables

#include <LiquidCrystal.h>
#include <Keypad.h>
LiquidCrystal lcd(13, 12, 11, 10, 9, 8); 
const byte filas = 4;
const byte columnas = 4;
byte pinsFilas[filas] = {7, 6, 5, 4};
byte pinsColumnas[columnas] = {3, 2, 1, 0};

char teclas [filas][columnas] =
   {
       {'1','2','3','A'},
       {'4','5','6','B'},
       {'7','8','9','C'},
       {'*','0','#','D'}
    };
Keypad teclado = Keypad(makeKeymap(teclas), pinsFilas, pinsColumnas, filas, columnas);

char tecla;

void setup(){
 
 Serial.begin(9600);
 lcd.begin(16, 2);          //Configuramos los números de filas y de columnas del LCD
 lcd.clear();
 
}

void loop(){
 tecla = teclado.getKey();
 if(tecla != NO_KEY) {
   lcd.setCursor(0,0);
   lcd.print(tecla);

  }
}

Simple. usa un Mega o un DUE. no te compliques.
Puedes resolver parte usando un LCD por I2C pero recuperas del 8 al 13, si te sirve esas es la solución.

Muchas gracias, el problema es que por el momento no hay presupuesto jeje aún así muchas gracias x tu respuesta :slight_smile: :slight_smile:

Si dentro del código estas usando Serial.print, eso podría interferir con lo que conectes en 0 y 1

Aunque lo más práctico, como te dice surbyte, es esto.

http://www.ebay.es/itm/Modulo-LCD1602-Arduino-Raspberry-LED-SPI-I2C-UNO-R3-NANO-MEGA-NO-BACKLIGHT-/231418858851?hash=item35e1a38d63:g:e1MAAOSw3ydV6GdS

Jopapa:
Si dentro del código estas usando Serial.print, eso podría interferir con lo que conectes en 0 y 1

Aunque lo más práctico, como te dice surbyte, es esto.

http://www.ebay.es/itm/Modulo-LCD1602-Arduino-Raspberry-LED-SPI-I2C-UNO-R3-NANO-MEGA-NO-BACKLIGHT-/231418858851?hash=item35e1a38d63:g:e1MAAOSw3ydV6GdS

¿Seguro que eso es un LCD I2C? Yo lo veo como uno normal.

Es cierto que es normal pero el título es engañoso.
Modulo LCD1602 Arduino Raspberry LED SPI I2C UNO R3 NANO MEGA NO BACKLIGHT, en una lectura rápida también me hubiera engañado.

Aca tienes uno de 20x4 o este módulo i2C que transforma uno común

Cierto, me engañó el titular.

Concuerdo con los demás compañeros que te han comentado para ahorrar pines en el arduino puedes apoyarte en protocolos como el de i2c en el mercado encontrarás muchos dispositivos que comunmente ocuparían varios pines para su uso pero usando protocolos como i2c o spi te darás cuenta que basta con solo 3-4 pines para controlar algo en el que por lo general ocuparías 8-10 pines, te anexo una foto del display lcd por i2c que te mencionaron antes el cual es un simple display conectado con el integrado pcf8574 que es un expansor I/O para i2c (Te sugiero investigar acerca de el). podrias hacer lo mismo con tu keypad o buscar un keypad ya con modulo i2c y en vez de gastar los 11 pines digitales estarias gastando solamente 4-5 pines nada más o bien usar técnicas de multiplexado para obtener más pines de entrada. En lo personal no concuerdo con lo de sino me alcanza con el arduino uno cambio al mega o al due, prefiero buscar la forma de que con lo que tengo hacer lo que quiero aunque a veces es más complicado o tal vez caro pero bueno en lo personal es lo que prefiero.

Suerte

LCD I2C