Calculadora Arduino
Componentes y suministros
| × | 1 | ||||
| × | 1 | ||||
| × | 1 | ||||
| × | 1 | ||||
| × | 1 |
Acerca de este proyecto
Al final de este proyecto, sabrá cómo usar una pantalla LCD de 16x2 y un teclado con Arduino y también lo fácil que es programarlos usando las bibliotecas disponibles. También comprenderá cómo programar su Arduino para realizar una tarea en particular.
Materiales necesarios:
- Arduino Uno (cualquier versión funcionará)
- Pantalla LCD de 16 × 2
- Teclado 4 × 4
- Batería de 9 V
- Tablero de pruebas y cables de conexión
D0
1er pin del teclado
D1
2do pin del teclado
D2
3er pin del teclado
D3
4to pin del teclado
D4
Quinto pin del teclado
D5
Sexto pin del teclado
D6
Séptimo pin del teclado
D7
Octavo pin del teclado
D8
Registre el pin seleccionado de la pantalla LCD (pin 4)
D9
Habilitar pin de LCD (pin 6)
D10
Pin de datos 4 (pin 11)
D11
Pin de datos 4 (pin 11)
D12
Pin de datos 4 (pin 11)
D13
Pin de datos 4 (pin 11)
+ 5V
Conectado al pin Vdd del LCD (pin 2)
Tierra
Conectado al pin Vss, Vee y RW del LCD (pin 1, 3 y 5)
Algunas placas Arduino pueden mostrar un error al cargar el programa si hay algo conectado al pin 0 y al pin1, por lo que si experimenta alguno, simplemente retire el teclado mientras carga el programa.
Una vez que haya realizado las conexiones, su hardware se verá así a continuación
Código
- Archivo sin título
Archivo sin título Arduino
* * Programa de calculadora de teclado Arduino * / # include// Archivo de encabezado para LCD de https://www.arduino.cc/en/Reference/LiquidCrystal#include // Encabezado archivo para teclado de https://github.com/Chris--A/Keypadconst byte ROWS =4; // Cuatro filas const byte COLS =4; // Tres columnas // Defina las claves de Keymapchar [ROWS] [COLS] ={{'7', '8', '9', 'D'}, {'4', '5', '6', ' C '}, {' 1 ',' 2 ',' 3 ',' B '}, {' * ',' 0 ',' # ',' A '}}; byte rowPins [ROWS] ={0, 1, 2, 3}; // Conecte el teclado ROW0, ROW1, ROW2 y ROW3 a estos pines de Arduino.byte colPins [COLS] ={4, 5, 6, 7}; // Conecte el teclado COL0, COL1 y COL2 a estos pines de Arduino. Teclado kpd =Teclado (makeKeymap (teclas), rowPins, colPins, ROWS, COLS); // Crea el Keypadconst int rs =8, en =9, d4 =10, d5 =11, d6 =12, d7 =13; // Pines a los que se conecta la pantalla LCD LiquidCrystal lcd (rs, en, d4, d5, d6, d7); long Num1, Num2, Number; char key, acción; resultado booleano =falso; configuración vacía () {lcd.begin (16, 2); // Estamos usando una pantalla LCD de 16 * 2 lcd.print ("Calculadora de bricolaje"); // Muestra un mensaje de introducción lcd.setCursor (0, 1); // coloca el cursor en la columna 0, línea 1 lcd.print ("- CircuitDigest"); // Mostrar un retraso en el mensaje de introducción (2000); // Espere a que la pantalla muestre información lcd.clear (); // Luego límpialo} void loop () {key =kpd.getKey (); // almacenar el valor de la tecla presionada en un charif (key! =NO_KEY) DetectButtons (); if (result ==true) CalculateResult (); DisplayResult (); } void DetectButtons () {lcd.clear (); // Luego límpialo if (key =='*') // Si se presiona el botón cancelar {Serial.println ("Botón Cancelar"); Número =Num1 =Num2 =0; result =false;} if (key =='1') // Si se presiona el Botón 1 {Serial.println ("Botón 1"); si (Número ==0) Número =1; más Número =(Número * 10) + 1; // Presionado dos veces} if (key =='4') // Si se presiona el Botón 4 {Serial.println ("Botón 4"); si (Número ==0) Número =4; más Número =(Número * 10) + 4; // Presionado dos veces} if (key =='7') // Si se presiona el Botón 7 {Serial.println ("Botón 7"); si (Número ==0) Número =7; más Número =(Número * 10) + 7; // Presionado dos veces} if (key =='0') {Serial.println ("Botón 0"); // Se presiona el botón 0 si (Número ==0) Número =0; más Número =(Número * 10) + 0; // Presionado dos veces} if (key =='2') // Se presiona el botón 2 {Serial.println ("Botón 2"); si (Número ==0) Número =2; más Número =(Número * 10) + 2; // Presionado dos veces} if (key =='5') {Serial.println ("Botón 5"); si (Número ==0) Número =5; más Número =(Número * 10) + 5; // Presionado dos veces} if (key =='8') {Serial.println ("Botón 8"); si (Número ==0) Número =8; más Número =(Número * 10) + 8; // Presionado dos veces} if (key =='#') {Serial.println ("Botón igual"); Num2 =Número; resultado =verdadero; } if (clave =='3') {Serial.println ("Botón 3"); si (Número ==0) Número =3; más Número =(Número * 10) + 3; // Presionado dos veces} if (key =='6') {Serial.println ("Botón 6"); si (Número ==0) Número =6; más Número =(Número * 10) + 6; // Presionado dos veces} if (key =='9') {Serial.println ("Botón 9"); si (Número ==0) Número =9; más Número =(Número * 10) + 9; // Presionado dos veces} if (key =='A' || key =='B' || key =='C' || key =='D') // Detectando botones en la columna 4 {Num1 =Number; Número =0; if (clave =='A') {Serial.println ("Adición"); action ='+';} if (key =='B') {Serial.println ("Resta"); acción ='-'; } if (clave =='C') {Serial.println ("Multiplicación"); action ='*';} if (key =='D') {Serial.println ("Devesion"); acción ='/';} retraso (100); }} void CalculateResult () {if (acción =='+') Número =Num1 + Num2; if (acción =='-') Número =Num1-Num2; if (acción =='*') Número =Num1 * Num2; if (acción =='/') Número =Num1 / Num2; } void DisplayResult () {lcd.setCursor (0, 0); // coloca el cursor en la columna 0, línea 1 lcd.print (Num1); lcd.print (acción); lcd.print (Num2); if (resultado ==verdadero) {lcd.print ("="); lcd.print (Number);} // Muestra el resultado lcd.setCursor (0, 1); // coloca el cursor en la columna 0, línea 1 lcd.print (Number); // Mostrar el resultado}
Esquemas
Proceso de manufactura
- Rodillo
- Pin de bolos
- Demostración y prevención de exploits del teclado Arduino (HID)
- Programación de la serie Atmel AT89 a través de Arduino
- Arduino Spybot
- Lectura de la señal PPM del receptor RC usando Arduino
- FlickMote
- Televisión casera B-Gone
- Reloj maestro
- Arduino + LED + Teclado MIDI + MuseScore =Tutor de piano
- Control de ventilador PWM de 4 pines y 25 kHz con Arduino Uno