Autor Tema: Consulta declaración!  (Leído 1146 veces)

0 Usuarios y 1 Visitante están viendo este tema.

Desconectado Cristobal Nicolas

  • PIC10
  • *
  • Mensajes: 3
Consulta declaración!
« en: 16 de Junio de 2018, 11:16:33 »
tal vez sea un poco básica mi pregunta pero me ha dado montón de problemas y no se como se hace en verdad
tengo estas líneas

Código: [Seleccionar]
//configure row pin modes and states

pinmode(rowPins[r],INPUT);
digitalwrite(rowPins[r],HIGH);

que vienen de acá

Código: [Seleccionar]
//private function
void Keypad_initializePins(){
u8 c,r;
for (r=0; r<keypad_rows; r++){
for (c=0; c<keypad_columns; c++){
//configure column pin modes and states


pinmode(columnPins[c],OUTPUT);
digitalwrite(columnPins[c],HIGH);
}
}

//configure row pin modes and states

pinmode(rowPins[r],INPUT);
digitalwrite(rowPins[r],HIGH);
}

es de un teclado matricial 4x4, el ejemplo que está en github de pinguino p8 keypad.c y keypad.h ... tomado como ejemplo el keypad32.pde, que en su interior dice que está sacado del p8 (vaya vuelta no?) y bueno , no he logrado habilitar la librería para hacer uso de ella
como debería declarar esa parte donde me dice que configure?

esto se supone que debería ser ?
Código: [Seleccionar]
//configure column pin modes and states

for(c=24;c<29;c++){
pinmode(columnPins[c],OUTPUT);
digitalwrite(columnPins[c],HIGH);
}
}
}


saludos, gracias. Cz.


Desconectado KILLERJC

  • Colaborador
  • DsPIC33
  • *****
  • Mensajes: 8242
Re:Consulta declaración!
« Respuesta #2 en: 16 de Junio de 2018, 19:30:55 »
Citar
no he logrado habilitar la librería para hacer uso de ella

A que te referis con habilitar la libreria?

------------------------

Por lo que veo del codigo, para aclarar voy a usar este (p8):

Código: C
  1. //private function
  2. void Keypad_initializePins(){
  3. u8 c,r;
  4. for (r=0; r<keypad_rows; r++){
  5. for (c=0; c<keypad_columns; c++){
  6. //configure column pin modes and states
  7.  
  8.  
  9. pinmode(columnPins[c],OUTPUT);
  10. digitalwrite(columnPins[c],HIGH);
  11. }
  12. }
  13.  
  14. //configure row pin modes and states
  15.  
  16. pinmode(rowPins[r],INPUT);
  17. digitalwrite(rowPins[r],HIGH);
  18. }

Tenes que definir (si es que no esta definido obviamente):

- la cantidad de columnas
- la cantidad de filas
- Que pines son las columnas
- Que pines son las filas
- Que queres que te devuelva al detectar la tecla, tu "mapa" de teclado.
- Y mas que obvio incluir a libreria keymap.h (asi tenes acceso a las funciones y no debes declararlas de nuevo como el p32 - archivo .pde)

Supongamos que tenes un teclado 4x4.
Los pines de las columnas, empezando desde la primera supongamos son: 4,6,8,9
Los pines de las filas , empezado desde la primera digamos que son: 1,2,5,7

Entonces en tu main.c creas lo siguiente

Código: C
  1. unsigned char filas = 4;      //Cantidad de filas
  2. unsigned char columnas = 4; // Cantidad de columnas
  3. unsigned char columnasPines[] = {4,6,8,9};  // Pines de las columnas
  4. unsigned char filasPines[] = {1,2,5,7};  // Pines de las filas
  5. char mapaTeclado[4][4] = {
  6.  
  7.   {'1','2','3','A'},
  8.   {'4','5','6','B'},
  9.   {'7','8','9','C'},
  10.   {'*', '0', '#','D'}
  11. };

Finalmente procedes a inicializar el teclado:

Código: C
  1. Keypad_init(mapaTeclado, filasPines, columnasPines, filas, columnas);

Y de alli lo usas con:

Código: C
  1. char tecla;
  2. tecla = Keypad_getKey()
  3. if (  tecla != NO_KEY)
  4. {
  5.         Serial.print("presionaste la tecla: %c",&tecla);
  6. }


------------------

El codigo que dice p32, si observas define todo eso, lo inicia y luego procede a usarlo en su archivo .pde, aunque parece tener algunas que otra opciones mas (elegir tiempo de anti-rebote, entro otras)
« Última modificación: 16 de Junio de 2018, 19:51:59 por KILLERJC »