¿Es posible obtener información de una cuadrícula de interruptores de 10x10 usando una placa de arduino? (Uno, Mega, etc.)

3

Soy más un tipo de software pero estoy trabajando en un prototipo de un juego que utilizará una cuadrícula de 10 por 10 sensible a la presión. Esto requerirá 100 interruptores sólo para la red. Lo más cercano que he encontrado de la estantería es un Arduino Mega 2560 r3, pero aún así queda corto por 30 pines. ¿Cuál es el mejor enfoque para esto? ¿Debería buscar obtener más pines de gpio o hay una manera mejor y más eficiente de realizar la tarea de recibir datos de posición de una cuadrícula de 10x10 (piense a1, b2, c3, etc.)?

Mientras buscaba en Google un poco, me topé con un método que utilizaba resistencias y pines analógicos para obtener información de varios botones. Los tutoriales siempre parecen usar 5 botones. ¿Es esto una limitación de los tutoriales o del método? ¿Podría usarse el mismo método para unir 10 conmutadores? enlace al ejemplo de múltiples botones

    
pregunta Bms85smb

1 respuesta

4

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:

    
respondido por el Ricardo

Lea otras preguntas en las etiquetas