Puede organizar los botones en un diseño XY, como en la siguiente figura (que extraje de esta fuente ). Eso le permitirá usar 20 pines (10 para las filas, 10 para las columnas) en lugar de 100.
Elalgoritmodesondeoeselsiguiente(delamismafuente):
Operacionesdesondeocontinuo
Enestemododeoperación,elMicroConvertersondeacontinuamenteeltecladoparapresionarunatecla.EstaoperaciónseutilizacuandoelMicroConverterhacompletadounatareayahoraestáesperandolaentradaantesdecontinuar.Enestemodo,eltecladoestáconectadoaunpuertodelMicroConverter,Puerto2enesteejemplo.Lafigura3muestra Laconectividad.LasalidadelMicroConverter,despuésdepresionarunatecla,sevisualizautilizandoHyperTerminalejecutándoseenunaPC.ElMicroConverterestáconectadoalaPCatravésdelpuertoCOM1.EstaeslarazónparamostrarlaconexiónRS-232.
ComosepuedeverenlaFigura3,lascuatrocolumnas(X1aX4)seelevanaVDDytambiénseconectanacuatrodelospinesdelpuertodelmicroconvertidor(P2.4aP2.7).LascuatrofilasADuC8xx(Y1aY2)estánconectadasalosotroscuatropinesdepuerto(P2.0aP2.3).ElMicroConvertergenera0ocontrolalasfilasdelteclado(P2.0aP2.3)unaalavezy compruebalascolumnas(P2.4aP2.7)paraunacondiciónbaja.
Porejemplo,lasiguienteeslasecuenciadeeventoshastaladeteccióndeunapulsacióndeinterruptor(Switch5enestecaso).ElMicroConverterproduceunabajaenP2.0(Y1)ybuscaunabajaenP2.4aP2.7.Enestecaso,noseencuentraunnivelbajoy,porlotanto,devuelveP2.0(Y1)aaltoysemueveaP2.1(Y2).ElMicroConverterahoracontrolaP2.1(Y2)bajoynuevamente compruebaP2.4aP2.7paraunacondiciónbaja.EstavezencuentraqueP2.5(X2)estábajo,debidoaquesepresionóelInterruptor5.ElMicroConverterahorasabequelainterconexión deY2yX2sehaacortado,porlotanto,estoes5.
Perononecesitaimplementarelalgoritmoustedmismo.EnsulugarpuedesusarellibArduinoKeypad.Losenlacesestánabajo:
Consulte esta respuesta si necesita colocar los botones usted mismo. Explica cómo distribuir 4 botones de pin en una placa de una cara de una manera que no necesita usar puentes. Estoy copiando el diseño X-Y de esa pregunta a continuación: