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

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...

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.

DISCO DE VINILO

Para elaborar un disco de vinilo, seguir las siguientes instrucciones, acceder al enlace dando click. Como actividad queda realizar un disco CD. LINK PARA ACCEDER AL MANUAL DEL DISCO DE VINILO