bclose

Teclados matriciales

Arduino y los keypads de 4x4

Objetivos

 

 

    • Familiarizarnos con un teclado matricial de 4×4.
    • Usar otra librería externa: KeyPad.
    • Volver a revisar los arrays, esta vez de dos dimensiones.
 

Material requerido.

Imagen de Arduino UNOArduino Uno o similar.Esta sesión acepta cualquier otro modelo de Arduino.
Protoboard conexionesUna Protoboard más cables.
ComponenteUn teclado matricial 4×4

 

Como funciona un teclado matricial

 

Un teclado no es más que una colección de botones, a cada uno de los cuales le asignamos un símbolo o una función determinada. Pero botones al fin y al cabo.

Leer botones es algo que ya no tiene secretos para nosotros, pero si conectáramos cada tecla a un pin digital de nuestro Arduino, pronto estaríamos en apuros.

El teclado de nuestro ordenador suele ser de alrededor de 106 teclas, así que el método de fuerza bruta va a entrar en apuros rápidamente. Necesitamos otra solución.

Y como el mundo está lleno de gente ingeniosa se les ocurrió una solución de lo más elegante, una matriz de teclas.

Vamos a ver un ejemplo con un pequeño teclado numérico de 16 teclas tipo los de los teléfonos móviles o los de los cajeros automáticos.

Esquema de conexiones

Diagrama electrico

 

Para que nuestro Arduino pueda saber que tecla se pulsa, basta con poner tensión en las filas de forma secuencial y luego leer las columnas para ver cuál de ellas tiene HIGH.Los teclados matriciales usan una combinación de filas y columnas para conocer el estado de los botones. Cada tecla es un pulsador conectado a una fila y a una columna. Cuando se pulsa una de las teclas, se cierra una conexión única entre una fila y una columna.

Por ejemplo, ponemos HIGH en la primera fila (hilo 8 en el diagrama de la derecha) y después leemos sucesivamente los hilos correspondientes a las columnas (hilos 4, 3, 2,1). Si ninguno está en HIGH es que no se ha pulsado ninguna tecla de la primera fila.

Pasamos a la segunda fila (hilo 7) y ponemos HIGH, si al leer los hilos 4, 3, 2,1 encontramos que el hilo 1 está en HIGH, es que se ha pulsado la tecla correspondiente a la “B”.

De este modo, para leer un teclado matricial de 4×4 necesitamos 8 hilos en lugar de 16, aunque nos dará un poco más de guerra a la hora de programar. Para un teclado de PC 106 teclas bastaría una matriz de 10×11 o sea 21 hilos en vez de 106.

 

Diagrama de conexión

 

Lo más práctico es conectar el teclado a Arduino directamente, podemos usar cables de protoboard, o bien con un peine de pines para que no se suelte nada.

Teclado matricial 4x4

Esta es otra de esas raras ocasiones en que un esquema electrónico tendría poco sentido, así que pasaremos rápidamente a ver el tema del programa.

 
  • Un apunte rápido: Por comodidad en el diagrama, y porque en los ejemplos que vienen con Arduino utilizan estos mismos números de pines del 0 al 7, los hemos mantenido. Pero conviene saber que Arduino usa los pines 0 y 1 para comunicarse a través del USB, por lo que no es buena usarlos para otra cosa cuando vayamos a usar el puerto serie.
 

El Programa de lectura

 

Como ya dijimos, el programa ha de consistir en ir dando tensión consecutivamente a los pines de las filas 8, 7, 6, 5 y después ir leyendo los valores de las columnas para detectar que teclas se han pulsado.

No es un programa complicado, pero antes de que el pánico se apodere de los que siguen la sesión con creciente temor (y recuerden que tienen algo urgente e ineludible que hacer)  comentaremos que alguien ha tenido este problema antes que nosotros y amablemente ha puesto a nuestra disposición una librería llamada KeyPad ideal para leer este tipo de matrices sin complicaciones,.

 
  • Lo que no quita para que podáis escribir un programa que lea directamente la matriz y reconozcáis las pulsaciones. Animo, no es difícil y el ejercicio siempre es bueno. 
 

Lo primero es descargar la librería e instalarla. La tenéis aquí  Descargar, o bien en la página de Arduino

http://playground.arduino.cc/Code/Keypad#Download

Id a la sección de “Download, install and import” donde encontrareis keypad.zip. Descargadlo y para instalarla recordad que basta con hacer:

Captura de pantalla

En la ventana que sale, buscad el fichero Keypad.zip que habéis descargado, seleccionadlo y listo.

Una vez instalada para usarla basta con que le indiquéis que deseáis usarla. SI hacéis Programa\Importar Librería \ Keypad  veréis que incluye la siguiente línea en vuestro programa:

#include <Keypad.h>

Vamos a ver como usamos esta librería. Lo primero es definir un par de contantes

const byte Filas = 4;          //KeyPad de 4 filas
const byte Cols = 4;           //y 4 columnas

Y ahora una par de arrays para indicarle a la librería que pines de Arduino corresponden a las filas y cuales a las columnas del keypad:

byte Pins_Filas[] = {7, 6, 5, 4};     //Pines Arduino para las filas.
byte Pins_Cols[] = { 3, 2, 1, 0};     // Pines Arduino para las columnas.

Recordad que un array es una colección de elementos que pasamos entre llaves y separados por comas. Es más cómodo que andar definiendo 8 variables.

Recordad lo que vimos en la sesión 9, que cuando definimos una array por enumeración de sus elementos, como en este caso, no necesitamos pasar entre corchetes el número de elementos (Los cuenta el mismo C++ solito).

Tendremos que definirle, además, que símbolos corresponden a cada posición de las teclas. Una nueva oportunidad  para disfrutar de los arrays, pero esta vez de 2 dimensiones en vez de una.

char Teclas [ Filas ][ Cols ] =
    {
        {'1','2','3','A'},
        {'4','5','6','B'},
        {'7','8','9','C'},
        {'*','0','#','D'}
     };
 
  • Definimos el array de 4×4 pasándole las dimensiones entre corchetes. Sus miembros van a ser 4 filas, cada una de las cuales es un array de 4 elementos, y después enumeramos los cuatro arrays de 4 miembros.
  • Fijaros en que cada array va entre llaves. Los elementos de un array se separan por comas, pero al final de las llaves exteriores va un punto y coma porque toda el conjunto es una asignación.
  • Los arrays siempre parecen complicados hasta que te acostumbras pero no es para tanto y este es un buen ejemplo para que comprendéis la idea de un array de 2 dimensiones.
 

Una de las curiosidades de leer una matriz de teclas y después asignar un carácter contenido en un array es que podemos redefinir el valor de las teclas sin más que cambiar el contenido del array.

 
  • Si por lo que sea hubiéramos conectado mal los pines del keypad al Arduino, podríamos redefinir los valores del array para que coincidan con lo que pone en las teclas. Puede ser más fácil que mover de sitio los cables.
  • De hecho es esa capacidad de mapear la representación de un carácter a una posición en una tabla, es lo que permite que podamos reconfigurar el mismo teclado a diferentes lenguas, sin más que cambiar los valores del array (aunque también ayudará mucho luego cambiar los símbolos rotulados en el teclado).
 

Por ultimo tendremos que crear una instancia de Keypad que llamaremos Teclado1

     Keypad Teclado1 = Keypad(makeKeymap(Teclas), Pins_Filas, Pins_Cols, Fils, Cols);

Que leído así asusta, pero que en realidad es una tontería. Traduciendo sería: Crea una instancia del tipo Keypad que llamaras Teclado1 y al que asignarás las teclas que tenemos en el array Teclas, y le decimos que hemos conectado las filas del keypad a los números de pines que te indico en el array Pins_Filas y las columnas al array Pins_Cols.

 
  • MakeKeymap (Teclas) es una función disponible en la librería y que nos permite asignar un array de valores a una matriz. Se hace solo una vez al principio salvo que por lo que sea nos interese cambiarlo sobre la marcha.
 

Por ultimo para leer el keypad hacemos una llamada a otra función de la librería:

char pulsacion = Teclado1.getKey() ;

Por ultimo enviamos a la consola el carácter pulsado. Aquí tenéis el programa en versión completa:Descargar

     #include <Keypad.h>            // Prog_19_1
     const byte Filas = 4;          //Cuatro filas
     const byte Cols = 4;           //Cuatro columnas

     byte Pins_Filas[] = {7, 6, 5, 4};     //Pines Arduino para las filas
     byte Pins_Cols[] = { 3, 2, 1, 0};     // Pines Arduinopara las columnas
     char Teclas [ Filas ][ Cols ] =
          {
              {'1','2','3','A'},
              {'4','5','6','B'},
              {'7','8','9','C'},
              {'*','0','#','D'}
          };
     Keypad Teclado1 = Keypad(makeKeymap(Teclas), Pins_Filas, Pins_Cols, Filas, Cols);
 
     void setup()
        {             Serial.begin(9600) ; }

     void loop()
        {       char pulsacion = Teclado1.getKey() ;
                if (pulsacion != 0)              // Si el valor es 0 es que no se
                    Serial.println(pulsacion);   // se ha pulsado ninguna tecla
        }

Por cierto, en C++ y en otros lenguajes es muy frecuente escribir la instrucción:

if (pulsación != 0)

De esta otra manera (más elegante) completamente equivalente:

if (pulsación )

Porque la condición del if debe evaluarse a TRUE o FALSE y para los ordenadores un 0 es FALSE sin remisión, pero cualquier otro valor que no sea 0 es TRUE, incluyendo un carácter.

 

Resumen de la sesión

 

 

    • Hemos usado nuestro primer keypad hexadecimal
      • Son prácticos y muy sencillos de usar en cuanto le pilléis el tranquillo.
      • Están disponibles en múltiples formatos y tipos, Aquí hemos usado uno típico de 4×4, pero también los hay 4×3 y en diferentes materiales y acabados
      • Un antiguo teléfono móvil roto se puede desmontar y usar su teclado además de otras cosas, y se puede utilizar de la forma que hemos descrito.
    • Hemos usado la excusa del teclado para volver sobre los arrays. Vale la pena de que les dediquéis un poco de tiempo pues os ayudaran a resolver cómodamente más de un problemas de programación, y no se merecen la fama de malotes que tienen.
    • Hemos conocido otra librería externa, KeyPad. Os vendrá muy bien en vuestros proyectos. Más adelante confío en que podamos hacer algún ejemplo más sofisticado con un keypad como hacer que una cierta combinación abra una cerradura de servo por ejemplo.
 

 

 

 

 

(78) Comments

  • Saludos Admin

    Me gustaría saber si dentro de la Librería existe una función asi al igual que Serial.println, Que me permita el numero que pulso lo pueda mostrar en Display, O como puedo tomar el carácter que imprime convertirlo en un valor Binario.
    Le Agradecería La Ayuda. estoy trabajando en una expedidora de combustible de proyecto. y me ha hecho de mucha ayuda este ejemplo de esta librería.

    • Hola Emmanuel no entiendo muy bien lo que nos preguntas

    • Mauricio urrutia

    Hola a todos que buena explicación sobre el teclado,, me ha servido de mucho, tengo una pregunta sobre un proyecto y no se como escribir el codigo, y pues acudo a ustedes si son tan amables y colaboran.

    el asunto es el siguiente. quiero ingresar un codigo por teclado 4×4 y mostrarlo en pantalla, el codigo debe tener 6 valores
    por ejemplo ingresar por teclado el codigo 2 5 4 1 1 4 ,los tres primeros equivalen a una validacion de clave y los tres ultimos variable referencia para un contador entero.
    me podrian explicar por favor como le hago para : por un lado validar los tres primeros coditos de clave; y por otro lado incluir los tres numeros (114) como numero entero para usarlo como referencia en un contador,,
    les agradezco mucho a todos los apacionados con el arduino y que me ayuden con este tema

    • Hola Mauricio,

      Supongo que nos preguntas como manejar la informacion que recibes y como programar la validacion que comentas.

      Si es asi, puedes montar una string con los digitos a medida que los vas recibiendo a una variable y despues puedes usar la funcion substring para comparar los 4 primeros digitos con lo que quieras y lo mismo con los 3 ultimos para convertirlos en un numero entero por ejemplo

      https://www.arduino.cc/en/Tutorial/StringSubstring

  • Hola buen dia y si no quisiera utilizar la libreria de Keypad, cual seria el metodo mas facil ?

    • Hola Susana, en vez de crear la instancia keypad con la que luego obtendrías directamente la tecla que se ha pulsado, tendrías que crear una función en la que buscar qué columna y qué fila se ha pusado para obtener la tecla. Si tienes dudas puedes mirar dentro de la librería a ver cómo funciona la función. Un saludo.

  • Excelente explicación saludos desde México 🙂

    • Lluís

    Buenas tardes,

    No has puesto resistencias como se hace con los pulsadores. ¿Es conveniente?, o bien ya lo maneja la biblioteca con las internas de arduino.

    Un saludo

    • Hola LLuis, por lo que parece la librería activa las resistencias internas pullup en los 4 pines de las columnas y declara los otros pines (los de las filas) como entradas. Un saludo.

    • Angel

    buenas noches tengo un key pad conectada a la pro micro y esta a la vez esta conectada a la compu mediante usb, lo que necesito es que en vez de que lo imprima en pantalla, pueda presionar cualquier tecla en el keypad y aparezca en el bloc de notas, o en Word, o en cualquier aplicación de Windows, me pueden apoyar por favor

    • Hola Angel,

      Si utilizas un pro micro con USB tu entrada al PC sera mediante una puerta comm. Para mandar una puerta COMM como si fuera una entrada de teclado en tu PC necesitas un programa para ello. Hay varios por ahi que podria servir y una busqueda rapida me ha sacado esto, aunque no lo he probado:
      http://joytokey.net/en/

      Otra forma es que uses un DUE que trae la emulacion de teclado de serie y programas de ejemplo

    • Sisat

    Buenas! Me encanta esta web, ya que me está ayudando mogollón con mis proyectos de Arduino, ahora me ha dado por probar esto de los teclados matriciales, pero me ha surgido una duda…
    Habría alguna forma de activar una interrupción al pulsar una tecla del teclado matricial? Al más puro estilo de “parada de emergencia”. He estado buscando pero con teclados matriciales no he encontrado nada por el estilo, y la verdad es que estéticamente quedan muy bien estos teclados.
    A ver si me podéis ayudar, muchas gracias!

    • Hola Sisat, una pregunta interesante, veamos: Para disparar una interrupcion hardware en tu arduino basta con llevar una señal a uno d elos pines que aceptan entradas de interrupcion, pero con el teclado no dispones directamente de un hilo por tecla sino que van multiplexadas por lo que no veo claro que se pueda hacer, en cambio seria de lo mas sencillo dispara ese boton de emergencia con cualquier boton y un pin dedicado

      • Si, así lo haré, o de esa forma o leyendo el teclado cada poco mientras ejecutó la acción a parar. Básicamente estoy haciendo un sistema de riego con electroválvulas y la opción más estética a nivel de caja pero “sucia” a nivel de código es leer el teclado cada poco miéntras tengo activado el “proceso del riego” , para si se pulsa el botón de paro del teclado (por ejemplo el “0”) cierre las electroválvulas, aunque tarde un máximo de 1 segundo en hacerlo no sería crítico en mi caso.
        Me reitero en lo dicho: fantástica página la tuya 🙂

  • Hola me interesa saber como saber si se preciono A o B en el teclado y por ejemplo si se selecciono A mande 1 a cierto pin y si fue B un 1 a otro pin

    • Hola! Sólo tienes que hacer un if con el valor de la pulsación, y si es la que buscas que active ese Pin.

    • hola JSK, es de lo mas sencillo. Mira un poco los condicionales if y en seguida lo veras claro

    • Fredi Pupiales

    Estimado
    Talvez me pueden ayudar con el lenguaje C de una calculadora Básica en e programa mikroc.

    • Hola Fredi, me temo que es un poco delicado opinar sobre el lenguaje de una calculadora que no conocemos, lo siento

    • Hades

    hola que tal, estoy haciendo un programa con doble funcion la primera es impedir el acceso sin contraseña para luego poder elegir entre varias funciones ya programada en arduino por de medio if, el problema es que después de acceder mediante la clave no me deja volver a utilizar el teclado cuando lo vuelvo a llamar y al hacer una prueba con el serialprint y no recoge ningún dato.

    • Hades, parece mas un problema de programa que otra cosa

  • Voy iniciando en esto… estoy llevando tu curso y he de decir algo… se vuelve adictivo, te hace querer saber y hacer mas cada dia. ya “instalé” un arduino uno, con un modulo de 2 relevadores, que van a acabar siendo un modulo de 4 relevadores, tienen 3 alarmas programadas solo para probarlas, le puse un reloj de tiempo real, y un teclado 4×4 de matriz el cual he conectado mediante un circuito integrado PCF8574P a fin de convertirlo exitosamente en I2C, asi que solo ocupo en mi arduino un par de entradas analogicas y 2 pines digitales para activar los relevadores.

    Todo esto lo estoy haciendo con la finalidad de automatizar el encendido y apagado de loas lamparas de un acuario plantado que tengo en casa.
    ya lo unico que me falta para cerrar el proyecto es poder modificar los horarios de las alarmas y/o reloj con el teclado 4×4. No se aun como ni donde agregar código para ello, este es mi codigo al momento, me falta el hacer el menu de opciones para activar/desactivar/modificar la hora de las 4 alarmas y en caso de ser necesario modificar la fecha y hora del sistema, me puedes orientar al respecto?

    Gracias de antemano desde Monterrey, N.L., México.

    ///********** Control lamparas acuario v1.0

    #include
    #include
    LiquidCrystal_I2C lcd(0x3f,16,2);
    #include
    #include
    #include
    #include
    byte zero = 0x00;

    byte caracter01[8] = {
    B01110,
    B10001,
    B10101,
    B10101,
    B10111,
    B10001,
    B10001,
    B01110
    };

    void setup() {
    Wire.begin();
    Serial.begin(9600);
    setSyncProvider(RTC.get);
    lcd.init();
    lcd.backlight();
    lcd.createChar(0, caracter01);
    Alarm.alarmRepeat(9,3,00, xuno);
    Alarm.alarmRepeat(9,4,00, xdos);
    Alarm.alarmRepeat(9,5,00, xtres);
    pinMode(7, OUTPUT);
    pinMode(8, OUTPUT);
    digitalWrite(7, HIGH);
    digitalWrite(8, HIGH);
    }

    void loop()
    {
    printDate();
    Alarm.delay(1000);
    }

    byte bcdToDec(byte val) {
    return ( (val/16*10) + (val%16) );
    }
    byte decToBcd(byte val){
    return ( (val/10*16) + (val%10) );
    }
    void xuno(){
    digitalWrite(7, LOW);
    }
    void xdos(){
    digitalWrite(8, LOW);
    digitalWrite(7, HIGH);
    }
    void xtres(){
    digitalWrite(7, HIGH);
    digitalWrite(8, HIGH);
    }
    void printDate(){
    Wire.beginTransmission(0x68);
    byte zero = 0x00;
    Wire.write(zero);
    Wire.endTransmission();
    Wire.requestFrom(0x68, 7);
    int second = bcdToDec(Wire.read());
    int minute = bcdToDec(Wire.read());
    int hour = bcdToDec(Wire.read() & 0b111111);
    int weekDay = bcdToDec(Wire.read());
    int monthDay = bcdToDec(Wire.read());
    int month = bcdToDec(Wire.read());
    int year = bcdToDec(Wire.read());
    int sp ;
    sp = hour*100 + minute;
    lcd.setCursor(0, 0);
    if(monthDay < 10)
    lcd.print('0');
    lcd.print(monthDay);
    lcd.print("/");
    if(month < 10)
    lcd.print('0');
    lcd.print(month);
    lcd.print("/20");
    lcd.print(year);
    lcd.setCursor(0, 1);

    lcd.write(0);
    lcd.print(" ");

    if(hour < 10)
    lcd.print('0');
    lcd.print(hour);
    lcd.print(":");
    if(minute < 10)
    lcd.print('0');
    lcd.print(minute);
    lcd.print(":");
    if(second < 10)
    lcd.print('0');
    lcd.print(second);
    lcd.print(" ");
    }

    • Hola German, me alegra ver que vas avanzando. En cuanto a poder programar la alarma, puedes usar el teclado y crear un programa. Por ejemplo cuando pulsas una tecla dad (Supongamos el #) el sistema entra en modo programacion y ahora espera 4 digitos que son la hora de la alarma por ejemplo.
      Pero para mas comodidad te recominedo que uses un reloj RTC para poder consevar la hora del sistema porque el click interno de arduino se resetea cada pocos dias, y ademas las librerias de reloj te ayudan a manejar fechas y horas d eforma comoda

      • Hola…. Si, de hecho tengo un RTC puesto y funcionado, ya le programe la hora y cada vez que entra el arduino sincroniza la fecha y hora del RTC hacia el arduino, porque descubri que la libreria TIME, y las alarmas no leen los RTC, solo leen los datos del interno de arduino…. Mhhh… creo tendre que incluir algun codigo para que cada semana se reinicie solo …..
        Ok… deja busco un poco sobre el tema de como meter los datos del teclado y almacenarlos al RTC y me imagino que a una variable que quede residente en memoria.
        Saludos

  • hola a mi me sale esto no saben como poder arreglarlo
    El Sketch usa 3,956 bytes (12%) del espacio de almacenamiento de programa. El máximo es 32,256 bytes.
    Las variables Globales usan 345 bytes (16%) de la memoria dinámica, dejando 1,703 bytes para las variables locales. El máximo es 2,048 bytes.
    avrdude: ser_open(): can’t open device “\\.\COM1”: El sistema no puede encontrar el archivo especificado.

    Problema subiendo a la placa. Visita http://www.arduino.cc/en/Guide/Troubleshooting#upload para sugerencias.

    • Hola Mickey, parece un problema de que no te encuentra el port comm1, lo que resulta extraño porque deberia buscar un puerto mas alto, pero en cualquier caso deberias reiniciar tu equipo y ver si asi se resuleve o es que tu arduino esta dañado

      • Gracias, ya quedo y solo era descargar los drivers.
        Una vez instalados te vas al arduino, de ahí a herramientas y seleccionas el puerto donde están ingresando el arduino

  • Hola Jesus, gracias por el mensaje.
    El teclado está perfectamente, lleva conectado varias horas mientras estoy programando (1555 lineas de código que llevo) y no da problemas.
    Lo programo normalmente en el salón o en mi cuarto…. pero ya os digo, es meterme en el taller y empieza a detectar pulsaciones aleatorias de todas las teclas….. aleatóriamente, incluso sin el teclado conectado por eso descarto el teclado.

    Tiene que ser algo de arduino y alguna interferencia electromagnética….

    Un saludo y gracias.

    PD: a ver si aprendo a hacer mis propias librerías para achicar contenido en el proyecto principal porque no veas para entenderme con el IDE de arduino sin marearme con tanta línea, ya que hasta ahora eclipse no me funciona correctamente y es muy trabajoso de configurar los plugins para android.

  • Hola Miguel.
    Yo lo usé en un principio, tirado por la mesa o en el aire, y no hizo nada raro. Ya luego, lo pegué a una carcasa de plástico para simular un panel y siguió trabajando igual. La única opción que queda por probar es mirar otro panel no sea que ese esté defectuoso y tenga alguna pista rota. Igualmente, otro Arduino, pero parece más lógico que se estuviera dañado el panel.

    Saludos.

  • Hola nuevamente, nada, ni ferrita ni papel de albal…. solo se calma si lo dejo suspendido en el aire… en cuanto lo tengo cerca de cualquier cuerpo, le mesa, el suelo, el sofá, la pared…. vuelve a montarme la feria…. estuve mirando la librería keypad y hasta donde entiendo activa las resistencias internas pullup en los 4 pines de las columnas y declara los otros pines (los de las filas) como entradas, es decir, arduino está trabajando con el teclado con lógica negativa puesto que al colocar los pines en pullup todos estos está derivados a 5v (en mi caso es un arduino mega) pasando por una resistencia y que cuando pulsas una tecla la tensión cae en el pin pullup y sube en el pin declarado como entrada y es donde se detecta que tecla está pulsada….
    Con todo este chorizo que os he soltado… significa que mi arduino deriva corriente por, digamos inducción….. y por eso pierden los pines pullop su estado de HIGHT…. pero lo que no explica es porqué se detecta tecla algna pulsada porque para eso se tendría que detectar los pines que están en INPUT con al menos 3.8v para que detecte un “1” cosa que no es posible creo yo.
    Bueno, seguiré investigando, un saludo y gracias

    • Miguel

    Buenas Admin,
    Una cosa curiosa que me trae últimamente de los nervios es que arduino detecta pulsasiones del teclado matricial sin pulsar ninguna tecla, (incluso sin estar conectado)

    Solo me pasa en una habitación…. ¿me hará falta algún tipo de caja de faraday, un núcleo de ferrita o algo parecido? ¿se puede solucionar por soft?

    Un saludo y muchas gracias por todo!

    • Hombre no entiendo mucho de fantasmas, pero seria cosa de probar a aislar el equipo forrandolo de albal por ejemplo a ver que pasa

    • Yeraypf

    Hola admin, quería saber si es posible conectar un teclado matricial a windows y lograr que pulsando una tecla suene un sonido específico, uno en cada tecla. como si fuera un piano. Gracias de antemano.

    • No veo problema en conectar un teclado usb a windows claro, pero u teclado matricial de los de 4×4, no es facil de conectar porque no dispones de pines de acceso sencillo desde tu PC

  • este teclado se puede adaptar para configurar un sensor de peso sin necesidad de tener una laptop? usando un lcd, el teclado y el sensor para que detecte cierto peso y despues cambiarlo y que detecte otro peso??

    • Desde luego que si Sergio, puedes leerlo con tu arduino tanto como el sensor de peso

  • disculpe admin necesito escribir una bibliografia sobre este post me pude ayudar con su nobre y la fecha en la cual fue publicado

    • Vaya va a ser la primera vez que sea citado, jajaja pero creo que inmerecidamente. Mi nombre es Juan Carlos Macho y segun wordpress fue publicada el 7/10/2014

Give a Reply

WordPress Anti-Spam by WP-SpamShield

¡Oferta!

Promoción especial de abril.

Tu robot educativo por

49,95

Ir al producto