Hola, otra vez yo, (el post anterior lo pude solucionar pero no me deja borrarlo) perdonen por hacer tantas preguntas pero es que estoy haciendo un proyecto que para mi es bastante dificil y bueno.
Mi duda ahora es, estoy "replicando" un proyecto ya echo que usa unas librerias que parecen creadas para ese proyecto, las adjunto.
el tema es que, las librerias son para un teclado, y dice por lo que veo que los teclados matriciales(que es para lo que supuestamente está configurado) tienen 12 patas cuando enrealidad tienen 7(el de 4x3), tendría que modificar eso para yo poder usar esa libreria sin cambiar muchas cosas del codigo, el tema es como hacerlo, si me pueden dar una mano se los agradeceria
Los archivos se llaman Teclado, y vienen con dos archivos: Teclado.h y Teclado.cpp
Les adjunto el codigo que hay dentro de cada uno y los respectivos archivos
Teclado.h :
#ifndef Teclado_h
#define Teclado_h
#include "Arduino.h"
#define NO_TECLA 0
#define DELAY_TECLA 500L
const char PINES[12] = {'0', '1', '2', '3', '4', '5', '6', '7', '8', '9', '*', '#'};
struct InfoTecla{
unsigned long Millis;
int Estado;
};
class Teclado {
public:
Teclado(byte Pines[12]); //0123456789*#
char LeerTecla();
char EsperarTecla();
private:
byte PinesAsignados[12];
InfoTecla EstadoPines[12];
char LeerEstadoTeclas();
};
#endif
Teclado.cpp
#include "Teclado.h"
Teclado::Teclado(byte Pines[12]){
for(byte i = 0; i < 12; i++){
PinesAsignados[i] = Pines[i];
pinMode(Pines[i], INPUT_PULLUP);
}
};
char Teclado::LeerTecla(){
for (int i = 0; i < 12; i++)
if (digitalRead(PinesAsignados[i]) == LOW)
return PINES[i];
return NO_TECLA;
};
char Teclado::EsperarTecla(){
char Tecla1;
char Tecla2;
boolean Salir;
do{
Tecla1 = LeerTecla();
delay(10);
Tecla2 = LeerTecla();
Salir = ((Tecla1 == Tecla2) && (Tecla1 != NO_TECLA));
}while (!Salir);
return Tecla1;
};
Por lo que observo a simple vista es como dije, declara como si el teclado ocupa 12 pines cuando solo ocupa 7 (en mi caso)
Se puede modificar?
Teclado.cpp (600 Bytes)
Teclado.h (516 Bytes)