Buenas tardes compañeros.
Como ya comenté en algún post anterior, estoy trabajando en mi trabajo fin de grado con arduino entre otras cosas. Me he propuesto en una de las fases de mi proyecto usar un shield ethernet v2 con el chip w5500. Con el pretendo generar una conectividad entre mi equipo y una red interna, pero antes prefiero avanzar en el uso de el lector de microSD que lleva incorporado.
Mi idea es hacer una llamada la la tarjeta microSD, en la cual tendré dos archivos txt. Uno de ellos será para generar registros en tiempo y hora de los usos de la máquina que tengo en mente, y el otro será una base de datos de usuarios que pueden acceder a la máquina. Esta segunda es la que me preocupa.
Tengo un teclado 4x4 conectado a arduino MEGA y un código para introducir contraseña. Mi idea es que esa contraseña, en vez de validarla por arduino, busque en la base de datos el número introducido (de 4 dígitos numéricos) y devuelva el nombre de la persona y un valor positivo (en el caso de ser correcto el número). El usar estos 4 dígitos para abrir o cerrar la entrada al sistema de dicha persona no me preocupa, lo que me preocupa es saber hacer una búsqueda por las más de 200 o 300 filas que habrá comparando cada valor hasta dar con el código completo.
Para ello he pensado que si por ejemplo introduzco 1234 como el código de 4 dígitos, sabiendo que los códigos estaran ordenados de menor a mayor, haré una búsqueda de cada fila en la columna 1 de los que coincidan con el valor 1, y si es correcto, pasar a la columna 2 para saber si coincide con el valor 2. Así sucesivamente hasta que sea capaz de encontrar los 4 valores correctos y me devuelva el nombre de la persona que esta en el archivo txt tras los 4 dígitos.
He buscado por internet y he encontrados muchas maneras de hacer cosas parecidas, pero la mayoría no me funcionan. No se si existirá una función en la librería SD.h que sea buscar o comparar, y tampoco se como hacer que avance la búsqueda de fila en fila o de columna en columna.
Obviamente entiendo que es con un bucle for, while etc, mi problema no reside ahí, está en que no conozco bien de que funciones puedo tirar. Entiendo que lo haré con un char[4] comparando cada valor, pero me cuesta avanzar.
Espero que algún compañero sepa orientarme, muchas gracias a todos y un saludo.