Calculadora con teclado del teléfono pregunta [cerrado]

-5

No soy una persona electrónica y encontré este sitio en mi búsqueda de la calculadora perfecta. Utilizo tanto el teléfono como la calculadora para los cálculos y encuentro la ida y vuelta para que cometa errores debido a la inversión del teclado. ¿A dónde iría para encontrar una calculadora portátil simple (+, _, *. /,% Y =) con un teclado que se parece a la configuración de un teléfono? No puedo llevar mi teléfono a los exámenes y cometo menos errores ya que uso el teclado del teléfono a diario. Una calculadora con el teclado de un teléfono parece ser una forma práctica de reducir el error humano.

En el caso de que la calculadora de mis sueños no esté en existencia, ¿es posible tomar una calculadora existente, mover las teclas y reprogramarla?

Gracias Tara

    
pregunta Tara DiD

2 respuestas

1

Es posible que puedas hacer esto, pero es posible que tengas que experimentar con unas pocas calculadoras baratas. Necesitará abrir la caja, por supuesto, y las calculadoras más baratas se pueden pegar juntas en lugar de unirlas con tornillos. Es posible que sea necesario cortar una capa del teclado de membrana y volver a ensamblarla, y es posible que tenga que realizar un trabajo de soldadura fina para cortar y volver a conectar el cableado entre el teclado y PCB COB / chip / blob. Necesitará un soldador de punta fina y un voltímetro como mínimo.

Consulte Easy Calculator Hack

    
respondido por el RedGrittyBrick
1

Otro enfoque es comprar un kit de calculadora basado en microprocesador como este bonito kit de calculadora compatible con Arduino reorganiza los botones y reprograma el chip en consecuencia.

El ensamblaje de este kit y la reprogramación de una calculadora compatible con Arduino ciertamente no es ciencia espacial y debería estar dentro de las capacidades de alguien con habilidades elementales de soldadura y programación.

El código está aquí listo para ser pirateado.

void decodeKeyPress()
{
  tempINT = 0;                                                        // New Dec 20th

  // KeyPad Layout
  //
  // Columns      Rows
  //   3 2 1 0
  //  
  //   7 8 9 /    0
  //   4 5 6 *    1
  //   1 2 3 -    2
  //   . 0 = +    3

  // Value mapping for decoding
  //     12  8  4  0
  //     13  9  5  1
  //     14  10 6  2
  //     15  11 7  3

  // commandType => 1="+", 2="-", 3="/", 4="*", 5="=", 6="Clear"

  for (i=0; i < 4; i++)                                                // This decodes the Rows
  {
    if(bitRead(rawKeys, i))
      //if(bitRead(rawKeyArray[column], i))   
    {
      tempINT = i;
      break;
    }
  } 

  currentKey = (column*4)+tempINT;

  if(KeyDown[currentKey] == false)
  {

    KeyOK = true;
    KeyDown[currentKey] = true;

    switch (currentKey) 
    {
    case 0:    
      KeyValue =  3;
      commandFlag = true;
      break;

    case 1:    
      KeyValue =  4;
      commandFlag = true;
      break;

    case 2:    
      KeyValue =  2;
      commandFlag = true;
      break;

    case 3:    
      KeyValue =  1;
      commandFlag = true;
      break;

    case 4:    
      KeyValue =  9;
      break;

    case 5:    
      KeyValue =  6;
      break;

    case 6:    
      KeyValue =  3;
      break;

    case 7:    
      KeyValue =  5;
      commandFlag = true;
      break;

    case 8:    
      KeyValue =  8;
      break;

    case 9:    
      KeyValue =  5;
      break; 

    case 10:    
      KeyValue =  2;
      break;

    case 11:    
      KeyValue =  11;
      decimalFlag = true;     
      break;  

    case 12:    
      KeyValue =  7;
      break;

    case 13:    
      KeyValue =  4;
      break; 

    case 14:    
      KeyValue =  1;
      break;

    case 15:    
      KeyValue =  0;
      break;  

      //    case 16:                                              // Clear
      //      KeyValue =  6;
      //      commandFlag = true;
      //      break; 
    default:                                                      // Should never get here
      KeyOK = false;
      KeyValue =  0;
      ErrorFlag = true;
      ErrorCode = 4; 
      //  KeyDown[currentKey] = false;
    }
  }
  else
  {
    KeyOK = false;                                                // Not a new key being pressed
  }
}
    
respondido por el RedGrittyBrick

Lea otras preguntas en las etiquetas