Ir al contenido principal

Práctica 2 Teclado Matricial // TETRIS

Haciendo una calculadora usando un teclado matricial en Tinkercad

En tinkercad hacer uso de los siguientes elementos:

  • Arduino UNO
  • Teclado matricial 4X4
  • 1 resistencia 220 K Ohms
  • LCD 16 x 2
Armar el circuito como se especifica en la siguiente imagen  y probar este código, el cual es una calculadora con las 4 operaciones básicas.



#include <Keypad.h>
#include <LiquidCrystal.h>

LiquidCrystal lcd(13, 12, 11, 10, 9, 8);

long first = 0;
long second = 0;
double total = 0;

char customKey;
const byte ROWS = 4;
const byte COLS = 4;

char keys[ROWS][COLS] = {
  {'1','2','3','+'},
  {'4','5','6','-'},
  {'7','8','9','*'},
  {'C','0','=','/'}
};
byte rowPins[ROWS] = {7,6,5,4}; // Asignamos a las filas los pinouts correspondientes
byte colPins[COLS] = {3,2,1,0}; //Asignamos a las columnas los pinouts correspondientes

//Instanciamos la clase NewKeypad
Keypad customKeypad = Keypad( makeKeymap(keys), rowPins, colPins, ROWS, COLS); 

void setup()
{
lcd.begin(16, 2);               // start lcd
lcd.setCursor(0,0);
  lcd.print("Calculadora CSI");
  lcd.setCursor(0,1);
delay(4000);
lcd.clear();
lcd.setCursor(0, 0);
}


void loop()
{

  customKey = customKeypad.getKey();
  switch(customKey) 
  {
  case '0' ... '9': // Seleccionamos los valores del 0 al 9 de nuestro teclado.
    lcd.setCursor(0,0);
    first = first * 10 + (customKey - '0');
    lcd.print(first);
    break;

  case '+':
    first = (total != 0 ? total : first);
    lcd.setCursor(0,1);
    lcd.print("+");
    second = SecondNumber(); // Obtengo el segundo numero
    total = first + second;
    lcd.setCursor(0,3);
    first = 0, second = 0; // Inicializamos los valores
    lcd.print(total);
    break;
    
  case 'C':
    total = 0;
    lcd.clear();
    break;
      
    case '-':
    first = (total != 0 ? total : first);
    lcd.setCursor(0,1);
    lcd.print("-");
    second = SecondNumber(); // Obtengo el segundo numero
    total = first - second;
    lcd.setCursor(0,3);
    first = 0, second = 0; // Inicializamos los valores
    lcd.print(total);
    break;
    
    case '*':
    first = (total != 0 ? total : first);
    lcd.setCursor(0,1);
    lcd.print("*");
    second = SecondNumber(); // Obtengo el segundo numero
    total = first * second;
    lcd.setCursor(0,3);
    first = 0, second = 0; // Inicializamos los valores
    lcd.print(total);
    break;

    case '/':
    first = (total != 0 ? total : first);
    lcd.setCursor(0,1);
    lcd.print("/");
    second = SecondNumber(); // Obtengo el segundo numero
    total = first / second;
    lcd.setCursor(0,3);
    first = 0, second = 0; // Inicializamos los valores
    lcd.print(total);
    break;
    

  }
}

long SecondNumber()
{
  while( 1 )
  {
    customKey = customKeypad.getKey();
    if(customKey >= '0' && customKey <= '9')
    {
      second = second * 10 + (customKey - '0');
      lcd.setCursor(0,2);
      lcd.print(second);
    }

    if(customKey == '=') break;  
  }
 return second; 
}





Comentarios

Entradas populares de este blog

Pasos a seguir ROBOT CAMINANTE

 Buen día chicos, les comparto los pasos a seguir para el armado de su ROBOT CAMINANTE, en caso de que hayan tenido alguna duda, contratiempo, etc.

Pasos a seguir araña Robot

 Buen día chicos, les comparto los pasos a seguir para el armado de su araña, en caso de que hayan tenido alguna duda, contratiempo, etc

Libros y Notas de Programación, S.O, Diseño Web y un poco de electrónica.

Buen día chicos... Tal y como se comentó la semana pasada, les comparto un enlace a mi nube de google drive, donde hallarán unos libros, dichos libros son de introducción a la programación, para aquellos que sigan interesados en formarse en el área de computación. Se llama "Como programar en C++" (portada de las hormiguitas) el autor es Deitel, consideren ustedes este libro como el siguiente paso de PSEINT, ya que pasamos de pseudocódigo a código; subí dos versiones, una en español y otra en inglés, considero que la versión en ingles les puede servir para repasar su vocabulario y formarse más en ese idioma, ya que todo lo de computación, o gran mayoría de ello viene en inglés. Para poner en práctica las actividades, deben usar el software DEV C++, si gustan saber como se instala puedo subir por este medio una guía en PDF o un link a un tutorial de YouTube. Además de ello les dejé unas notas para que se introduzcan a los Sistemas Operativos y estructuras básicas. Les deje 2 ar...