Está en la página 1de 9

Profesor: José Daniel Pinzón Vivas

Alumnos:
Carlos Manuel Novelo Ferrer
Jesús Cuauhtémoc Que Verá
Ricardo Habid Chanona Lavalle
Jesús Roberto Moreno Montero

Materia: Programación estructurada de Microcontroladores

Práctica 5

Fecha:2/11/2022.
Marco teórico
Microcontroladores

El campo de la Ingeniería Electrónica es fundamental en los avances tecnológicos, cuyo


desarrollo y evolución se ha llevado a cabo de forma acelerada en las últimas décadas.

Los microcontroladores son uno de los dispositivos con más potencial para la solución
de problemáticas. Son pequeños chips o dispositivos que pueden ser programados
para realizar acciones o instrucciones que nosotros deseemos. Son de bajo costo,
prácticos y poderosos para circuitos que necesitan ahorrar espacio físico. Además, son
utilizados para mejorar la fiabilidad del funcionamiento y disminuir el consumo en los
circuitos.

Potenciometro
Un potenciómetro es un resistor eléctrico con un valor de resistencia variable y
generalmente ajustable manualmente. Los potenciómetros utilizan tres
terminales y se suelen utilizar en circuitos de poca corriente, para circuitos de
mayor corriente se utilizan los reóstatos. En muchos dispositivos eléctricos los
potenciómetros son los que establecen el nivel de salida. Por ejemplo, en un
altavoz el potenciómetro ajusta el volumen; en un televisor o un monitor de
ordenador se puede utilizar para controlar el brillo.

Display LCD 16x2

El LCD(Liquid Crystal Display) o pantalla de cristal líquido es un dispositivo empleado


para la visualización de contenidos o información de una forma gráfica, mediante
caracteres, símbolos o pequeños dibujos dependiendo del modelo.
Consta de 16 terminales las cuales podemos dividir en pines de alimentación, control y
bus de datos bidireccional.

Servomotor

El servomotor, es un actuador rotativo permite tener un control preciso en términos de


aceleración, velocidad y posición angular. Usa un motor normal combinado con un sensor
que nos permitirá la retroalimentación de posición. El servomotor se usa en aplicaciones
que necesitan variaciones rápidas de velocidad sin calentar el motor

Teclado matricial

El Teclado matricial de botones plásticos formado por 4 filas y 4 columnas para un total de 16 teclas
permite agregar una entrada de usuario a tus proyectos. El teclado es de tipo membrana, por lo que
entre sus ventajas se encuentra el poco espacio que requiere para ser instalado. Posee una cubierta
adhesiva y un cable flexible de conexión. Puede ser conectado a cualquier microcontrolador o
tarjetas de desarrollo como Arduino.

El teclado matricial 4x4 está formado por una matriz de pulsadores dispuestos en filas (L1, L2, L3,
L4) y columnas (C1, C2, C3, C4), con la intención de reducir el número de pines necesarios para su
conexión. Las 16 teclas necesitan sólo 8 pines del microcontrolador en lugar de los 16 pines que se
requerirían para la conexión de 16 teclas independientes. Para poder leer que tecla ha sido pulsada
se debe de utilizar una técnica de barrido y no solo leer un pin de microcontrolador.

La conexión del teclado matricial 4x4 con Arduino u otra plataforma de microcontroladores es
simple: se necesitan 8 pines digitales en total. Puede trabajar con microcontroladores de 3.3V o 5V
sin problema. Es necesario colocar resistencias pull-up entre los pines de las columnas y VCC o
activar por software las resistencias Pull-up internas en el Arduino. En cuanto a la programación, la
lectura de las teclas se debe realizar mediante un "barrido" de las filas. Si bien es posible realizar
este procedimiento dentro del loop principal del programa, es una mejor práctica realizar el barrido
utilizando interrupciones por TIMER y asi asegurar la lectura de las teclas en un intervalo conocido y
exacto, además de dejar al loop libre para realizar otras operaciones.
Materiales
● Arduino Uno R3
● Display LCD 16x2
● 1 Resistencia de 330Ω
● Protoboard
● Cables
● Potenciometro
● Teclado Matricial 4x4

Evidencias

Figura 1 y 2. Diseño del circuito en Físico


Figura 3. Diseño del circuito en Tinkercad

Link a youtube evidencia circuito fisico:

https://youtu.be/mC7xca9Ku6Q

Link a youtube evidencia Tinkercad:

https://youtu.be/WUrewmHs8yU
Código:
1. #include <Keypad.h>
2. #include <LiquidCrystal.h>
3.
4. #define RS 1
5. #define EN 0
6. #define d4 10
7. #define d5 11
8. #define d6 12
9. #define d7 13
10.
11. const byte rows = 4; //four rows
12. const byte cols = 4; //three columns
13.
14. char keys[rows][cols] = {
15. {'1','2','3','+'},
16. {'4','5','6','-'},
17. {'7','8','9','C'},
18. {'*','0','=','/'}
19. };
20.
21. byte rowPins[rows] = {9, 8, 7, 6}; //connect to the row pinouts of the keypad
22. byte colPins[cols] = {5, 4, 3, 2}; //connect to the column pinouts of the keypad
23. Keypad teclado = Keypad( makeKeymap(keys), rowPins, colPins, rows, cols );
24. LiquidCrystal lcd(RS, EN, d4, d5, d6, d7);
25.
26. float num1=0;
27. float num2=0;
28. bool operation=LOW;
29. bool result=LOW;
30. char op=' ';
31.
32. void setup(){
33. lcd.begin(16,2);
34. lcd.print("CASIO:");
35. lcd.setCursor(0,1);
36. }
37.
38. void loop(){
39. char key = teclado.getKey();
40. if (key != NO_KEY){
41.
42. switch(key){
43. case '+':
44. lcd.print(key);
45. operation=HIGH;
46. op = key;
47. //lcd.setCursor(0,1);
48. break;
49. case '-':
50. lcd.print(key);
51. operation=HIGH;
52. op = key;
53. break;
54. case '*':
55. lcd.print(key);
56. operation=HIGH;
57. op = key;
58. break;
59. case '/':
60. lcd.print(key);
61. operation=HIGH;
62. op = key;
63. break;
64. case '=':
65. lcd.print(key);
66. switch(op){
67. case '+':
68. lcd.print(num1+num2);
69. break;
70. case '-':
71. lcd.print(num1-num2);
72. break;
73. case '/':
74. lcd.print(num1/num2);
75. break;
76. case '*':
77. lcd.print(num1*num2);
78. break;
79. default:
80. lcd.print(num1);
81. break;
82. }
83. op=' ';
84. operation=LOW;
85. result=HIGH;
86. num1=0;
87. num2=0;
88. break;
89. case 'C':
90. operation=LOW;
91. lcd.setCursor(0,1);
92. lcd.print(" ");
93. lcd.setCursor(0,1);
94. result=LOW;
95. num1=0;
96. num2=0;
97. break;
98. default:
99. if(result==HIGH){
100. lcd.setCursor(0,1);
101. lcd.print(" ");
102. lcd.setCursor(0,1);
103. result=LOW;
104. }
105. if(operation==LOW){
106. num1 = num1*10+key-'0';
107. }else{
108. num2 = num2*10+key-'0';
109. }
110. lcd.print(key);
111. break;
112. }
113.
114. }
115. }

Conclusión

Al finalizar esta práctica, pudimos aprender a manejar un elemento adicional para


poder hacer nuestro proyectos el cual fue el teclado matricial, ahora somos capaces de
complementarlo con un displays LCD, igual aprendimos el manejo y programación del
teclado matricial y los tipos de comunicaciones que puede manejar y cómo podemos
hacer una comunicación con el LCD, gracias a esta práctica igual somos capaces de
poder implementarlo en cualquiera de nuestros proyectos más adelante, comprendimos
cómo desde su uso básico, hasta el más complejo de los teclados el cual es la
comunicación y a cómo controlar más elementos a partir de lo que pongamos en el
teclado, estoy seguro de que más adelante nos ayudará a poder implementar esto a
otros proyectos. Aparte de que este proyecto nos ayudó a entender mejor todos los
conceptos y técnicas que vimos a lo largo de todas las clases previas a la práctica, por
eso consideramos que esta práctica nos ayudó mucho, pues aprendimos a
implementar varios componentes, programarlos y hacerlos funcionar dependiendo de la
situación y para complementar un poco , también es importante recalcar el uso de
librerías para poder usar de manera correcta tanto el teclado matricial como el display
LCD.
Referencias

● ¿Qué es un servomotor? ¿Cómo funciona? •. (2022, 25 enero). Electronic

Board. Recuperado 10 de octubre de 2022, de

https://www.electronicboard.es/que-es-un-servomotor-como-funciona/

● 🥇 ¿Qué es un MICROCONTROLADOR? Tipos, aplicaciones, etc. (2022, 8

septiembre). Todo Sobre Microcontroladores. Recuperado 12 de septiembre

de 2022, de https://microcontroladoress.com/

● Mecafenix, I. (2022, 15 junio). ¿Qué es un LCD de 16×2? Ingeniería Mecafenix.

Recuperado 29 de septiembre de 2022, de

https://www.ingmecafenix.com/electronica/lcd/

También podría gustarte