Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Alumnos:
Carlos Manuel Novelo Ferrer
Jesús Cuauhtémoc Que Verá
Ricardo Habid Chanona Lavalle
Jesús Roberto Moreno Montero
Práctica 5
Fecha:2/11/2022.
Marco teórico
Microcontroladores
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.
Servomotor
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
https://youtu.be/mC7xca9Ku6Q
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
https://www.electronicboard.es/que-es-un-servomotor-como-funciona/
de 2022, de https://microcontroladoress.com/
https://www.ingmecafenix.com/electronica/lcd/