Reporte Practicas 11 y 12 Digital METP

Descargar como docx, pdf o txt
Descargar como docx, pdf o txt
Está en la página 1de 22

Reporte practicas 11 y 12:

(Contadores ascendentes y
descendentes) (Teclado matricial)

Profesor: Mendoza Patiño Francisco


Javier
Materia: Electrónica Digital
Alumno: Medrano Téllez Polo Eduardo
Carrera: Mecatrónica
No. de control: 20240840
Objetivos
Práctica 11: Contadores ascendentes y descendentes

Objetivo general
Implementar el uso de registros con flip flop y una placa de Arduino

Objetivos Particulares
 Armar circuitos contadores
 Entender y comprender el funcionamiento de los circuitos practica y
teóricamente

Práctica 12: Teclado matricial

Objetivo general
Implementar el uso de un teclado matricial para diferentes circuitos

Objetivos Particulares
 Armar circuitos que incluyan teclado matricial
 Crear y comprender el código de Arduino para las practicas
 Comprender el funcionamiento de cada circuito de manera teórica.
 Comprender el funcionamiento de cada circuito de manera práctica.

Resumen (Abstract)
Práctica 11 y 12
En el siguiente trabajo quise simplificar lo que es un contador y la manera de
trabajo del contador ascendente y descendente ya que cada uno contiene una
ejecución de manera más representados por cambios de nivel o impulsos, o
generar una secuencia de códigos particular en que el proceso va cambiando
según sea la ejecución del problema.
Por tanto, la capacidad de almacenamiento es una característica importante en
todos los contadores, por lo que generalmente se utilizan flip-flops para su
implementación y ya que teniendo más elementos se conocerá más sobre los
registros, memorias, discos que son los medios que nos ayudan al
almacenamiento para tener para tener la ejecución correctamente en los circuitos
deseados a trabajar que generalmente se basa con una señal determinada.
Por otro lado, también nos entraremos en el tema de los microcontroladores tanto
para hacer circuitos contadores, como para implementar otros componentes como
el teclado matricial y la pantalla LCD los cuales requieren de un código de
programación para hacer funcionar los componentes y el circuito en si.

Introducción teórica
Práctica 11 Contadores ascendentes y descendentes
Qué es Arduino

Arduino es una plataforma de creación de electrónica de código abierto, la cual


está basada en hardware y software libre, flexible y fácil de utilizar para los
creadores y desarrolladores. Esta plataforma permite crear diferentes tipos de
microordenadores de una sola placa a los que la comunidad de creadores puede
darles diferentes tipos de uso.
Para poder entender este concepto, primero vas a tener que entender los
conceptos de hardware libre y el software libre. El hardware libre son los
dispositivos cuyas especificaciones y diagramas son de acceso público, de
manera que cualquiera puede replicarlos. Esto quiere decir que Arduino ofrece las
bases para que cualquier otra persona o empresa pueda crear sus propias placas,
pudiendo ser diferentes entre ellas pero igualmente funcionales al partir de la
misma base.
El software libre son los programas informáticos cuyo código es accesible por
cualquiera para que quien quiera pueda utilizarlo y modificarlo. Arduino ofrece la
plataforma Arduino IDE (Entorno de Desarrollo Integrado), que es un entorno de
programación con el que cualquiera puede crear aplicaciones para las placas
Arduino, de manera que se les puede dar todo tipo de utilidades. ¿Sabes qué es un
Arduino y para qué sirve? (2017, febrero 27). Fundación Aquae.
https://www.fundacionaquae.org/wiki/sabes-arduino-sirve/

Cómo funciona Arduino


El Arduino es una placa basada en un microcontrolador ATMEL. Los
microcontroladores son circuitos integrados en los que se pueden grabar
instrucciones, las cuales las escribes con el lenguaje de programación que puedes
utilizar en el entorno Arduino IDE. Estas instrucciones permiten crear programas
que interactúan con los circuitos de la placa.
El microcontrolador de Arduino posee lo que se llama una interfaz de entrada, que
es una conexión en la que podemos conectar en la placa diferentes tipos de
periféricos. La información de estos periféricos que conectes se trasladará al
microcontrolador, el cual se encargará de procesar los datos que le lleguen a
través de ellos.
El tipo de periféricos que puedas utilizar para enviar datos al microcontrolador
depende en gran medida de qué uso le estés pensando dar. Pueden ser cámaras
para obtener imágenes, teclados para introducir datos, o diferentes tipos de
sensores.
También cuenta con una interfaz de salida, que es la que se encarga de llevar la
información que se ha procesado en el Arduino a otros periféricos. Estos
periféricos pueden ser pantallas o altavoces en los que reproducir los datos
procesados, pero también pueden ser otras placas o controladores.
Código BCD
BCD (Decimal Codificado en Binario) es un código que representa valores
decimales en formato binario, para ello forma grupos de 4 bits para representar
cada valor del 0 al 9. El 9 es el valor máximo que se puede representar en un
dígito decimal, si recordamos los números binarios el 9 es un 10012, requiere 4
bits, es por eso que cada valor BCD se representa con 4 bits, del 00002 al
10012 (0 – 9). Hay que destacar que BCD es un código, no un sistema de
numeración, por lo que no está diseñado para hacer operaciones como sumas o
restas, solo para representar valores decimales en binario. Código BCD. (s/f).
Ecured.cu. Recuperado el 11 de octubre de 2023, de https://www.ecured.cu/C%C3%B3digo_BCD

Ejemplos de conversión de Decimal a BCD

En este ejemplo se muestra como un valor 52 decimal se puede codificar en


binario utilizando BCD simplemente convirtiendo cada dígito decimal a su
equivalente binario (un valor entre 00002 y 10012) y unir el resultado en un solo
valor binario, en el caso de la izquierda resultaría en 010100102. Hay que
destacar que no es equivalente a convertir 52 en binario, sino que es la unión del
valor binario de cada dígito. Para codificar en BCD el 283 decimal se realiza el
mismo proceso.

Ejemplo de conversión de BCD a Decimal

Para obtener el valor decimal de un valor BCD se separa en grupos de 4 bits y


cada valor se convierte a su equivalente en decimal (resultará un valor de 0 a 9),
se unen los valores resultantes para obtener el valor decimal final, en el ejemplo
de arriba resulta 926.
Display de 7 segmentos
El display de 7 segmentos es un arreglo de 7 LED’s rectangulares colocados
formando un 8 como se muestra en la siguiente imagen:
Formación de LED’s en un display de 7 segmentos

Cada uno de esos segmentos se identifica con una letra de la «a» a la «g» como se
muestra en la imagen, muchas veces se incluye un punto nombrado «dp», que
también es un LED pero circular. Con este arreglo se pueden formar los dígitos del
0 al 9 encendiendo la combinación de LED’s adecuada, por ejemplo los
segmentos a, b y c pueden mostrar un 7: Display 7 Segmentos ánodo y cátodo común.
(2018, enero 24). HeTPro-Tutoriales. https://hetpro-store.com/TUTORIALES/display-7-segmentos-
anodo-catodo-comun/

Display mostrando un 7

Recordando los LED’s (Diodo Emisor de Luz) tienen dos terminales llamadas
Ánodo (+) y Cátodo (-), si cada display tiene 7 LED’s para formar los dígitos y
además se tiene un LED adicional para un punto, se tendrían 8 LED’s, cada uno
con dos terminales, entonce el display debería tener en total 16 terminales, pero
no es así. ¿Cómo se podrían tener menos terminales si cada LED tiene 2? R: De
las dos terminales que tiene cada LED, se conectan juntos ya sean todos los
ánodos en un punto común y se dejan individuales los cátodos para encender
individualmente cada LED, o al revés, se conectan en un punto común todos los
cátodos y se dejan individuales todos los ánodos para poder encender
independientes. Esto genera entonces dos tipos de display: Display de ánodo
común y Display de cátodo común:
Todos los ánodos de los LED’s están juntos en un punto común (Display de ánodo común)

Todos los cátodos de los LED’s están juntos en un punto común (Display de cátodo común)

Existen diferentes modelos de display de 7 segmentos, cambian en tamaño y en la


distribución de las terminales, aunque todos deben ser de uno de estos dos tipos,
ya sea de ánodo común o cátodo común. La distribución de las terminales varía de
un modelo a otro, se tiene que consultar su hoja de datos para identificar cada
terminal. Un ejemplo de display típico es el DA-05 o DC-05:
Pines de un DC-05 y DA-05

Para conectar correctamente estos display, al igual que cualquier LED, se debe
colocar una resistencia en serie con cada LED para limitar la corriente que circula
por cada uno de ellos, en total serían 7 resistencias. Si es un display de ánodo
común, el pin común se coloca a (+) y se tendría que poner (-) en los cátodos de
cada uno de los segmentos (a – g). Contrario si es un display de cátodo común, el
común tendría que ir a (-) y quedarían libres los ánodos que tendrían que
colocarse a (+) para encender los segmentos (a – g).
Circuito decodificador de BCD a 7 segmentos (74LS47 y 74LS48)
Existen circuitos decodificadores/controladores que simplifican la conexión y uso
de los display de 7 segmentos, se les puede dar una entrada en BCD (4 bits) y es
capaz de decodificarlo para encender y apagar los segmentos adecuados para
mostrar el dígito correspondiente. Existen dos modelos muy similares, el 74LS47 y
74LS48 que tienen el mismo funcionamiento y distribución de pines, varían solo en
que uno de ellos tiene las salidas negadas, por lo que uno de ellos se adecua para
ser utilizado en un display de ánodo común y el otro en uno de cátodo común. Se
trata de un circuito de 16 pines que tiene las 7 salidas para los 7 segmentos de un
display (a – g), tiene las 4 entradas para el valor en BCD, representadas con las
letras A, B, C y D. Funciona con 5 V en los pines 16 y 8 (Vcc y Gnd
respectivamente).
Datasheet 74LS47

Entradas y salidas de compuerta 74LS47

Adicionalmente tiene una entrada RBI que se activa en BAJO y está diseñada
para indicar si se muestra o no el Cero, que es útil cuando se tiene más de un
display, por ejemplo, para generar dos dígitos y evitar que se muestre un cero en
el dígito de la izquierda y solo se muestren los otros valores. Por ejemplo, con dos
display mostrando un 06, con esta entrada colocada en BAJO se puede lograr que
cuando el valor sea cero se apague el display, lo que resultaría en mostrar solo el
6 en el dígito de la derecha y no el 06. La entrada LT es útil para probar si la
conexión entre el display y el circuito decodificador es correcta, si se coloca un
valor BAJO en LT, entonces deberán encender todos los segmentos del display. Si
algún segmento no enciende, habrá que revisar la conexión.
Conexión interna de un 74LS47, similar al 74LS48 pero este último no tiene las salidas negadas

Salidas del decodificador para cada uno de los valores posibles a la entrada

Práctica 12 Teclado matricial

Teclado Matricial 4×4 es un simple arreglo de botones conectados en filas y


columnas, de modo que se pueden leer varios botones con el mínimo número de
pines requeridos. Teclado Matricial 4×4 son dispositivos que agrupan los
pulsadores en filas y columnas formando una matriz. Puede ser conectado a
cualquier microcontrolador o es compatible con Arduino sus aplicaciones van
desde sistemas de seguridad, selección de menús o ingreso de datos en un
sistema. (S/f-b). Uelectronics.com. Recuperado el 8 de noviembre de 2023, de
https://uelectronics.com/producto/teclado-matricial-4x4-numerico/

¿Cómo funciona?
El teclado matricial 4×4 está constituido por filas (A, B, C, D) y columnas (1,2,3,4).
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.

imagen 1 Diagrama de matriz

Especificaciones y características

 16 botones con organización matricial (4 filas x 4 columnas)


 Teclado tipo membrana
 Mayor resistencia al agua y al polvo
 Auto adhesivo en la parte de atrás
 Tiempo de rebote (Bounce time): ≤5 ms
 Máximo voltaje operativo: 24 V DC
 Máxima corriente operativa: 30 mA
 Resistencia de aislamiento: 100 MΩ (@ 100 V)
 Voltaje que soporta el dieléctrico: 250 VRMS (@ 60Hz, por 1 min)
 Expectativa de vida: 1.000.000 de operaciones
 Dimensiones del pad: 6.9 x 7.6 cm aprox.
 Cable de cinta plana de 8.5 cm de largo aprox. (incluido el conector)
 Conector tipo DuPont hembra de una fila y 8 contactos con separación
estándar 0.1″ (2.54mm)
 Temperatura de operación: 0 a 50 °C
Material y equipo empleado
Practica 11 y 12
 Arduino 1
 Teclado matricial
 LCD
 Leds
 Resistencia 1/2W 100KΩ
 Resistencia 1/2W 220Ω
 Dip switch de 4
 Protoboard
 Puntas caimán
 Fuente de voltaje
 Cables jumpers macho-macho
 Compuerta flip flop JK (74LS76)
 Compuerta (74LS47)
 Compuerta flip flop D (74LS74)

Desarrollo
Desarrollo Práctica 11 Contadores ascendentes y
descendentes
Contador ascendente 0-9
Para comenzar con este circuito, se realizó de manera virtual en el software
Proteus para tener una mejor visualización del circuito, también se hizo con el fin
de poder simularlo y verificar que esté conectado de la manera correcta, así
también como para conocer y entender el funcionamiento del circuito por medio de
la simulación que nos permite realizar el software

Diagrama 1.1 Contador ascendente 0-9 en Proteus


Para iniciar la conexión de este circuito primero colocamos nuestras compuertas
Flip Flop KJ 7476 las cuales alimentaremos sus pines 5 y 13’s los cuales son el
Vcc y GND respectivamente, después hicimos los puentes que van desde el pin
15 (Q) al pin 6 (CLK), también energizaremos nuestras compuertas 74 y 08 con
14’s Vcc, y 7’s GND. En la siguiente Foto 2.1 se presentan las conexiones que van
desde alimentar todos nuestros pines PR’s los cuales son los pines 2 y 7, así
también como nuestros pines K’s los cuales son los pines 1 y 12, por otro lado,
también alimentaremos nuestros pines J’s los cuales son el 4 y el 9 así también
como nuestras compuertas.
Por último, conectamos nuestros leds con sus respectivas resistencias de 330 a
tierra, los cuales salen desde un nodo del pin (Q) 15 y 11 en los 2 flip flops, ,
también hacemos la conexión de 2 y 5 al pines 14 y 9 (Q testada) respectivamente
y los pines 3 y 6 irán al pin 13 y 12 respectivamente, el pin 11 de este ira al pin 1
de la compuerta 7404, para terminar el pin 2 (CLR) de esta ira al pin 3 y 8’s.
Para hacer funcionar nuestro circuito ocuparemos de un generador de funciones
con una onda cuadra la cual será de 1Hz, el cual conectaremos el positivo en el
pin (CK) 1 del primero flip flop, con el negativo a tierra.
Analizando la conexión de este circuito podemos deducir que se repite como un
bucle al conectar los pines mencionados ya que cada uno de ellos se conectaban
de igual manera que el anterior mismo.

Foto 1.1 Circuito contador 0-9

Resultados
En las siguiente foto 1.2 nos muetra como de forma satisfactoria se completo el
circuito, y como podemos ver cuenta de forma ascendente de 0-9, por lo que
verificamos el funcionamiento del circuito.
Foto 1.2 Circuito ascendente de 0 a 9 Funcionando

Contador descendente 0-9


Para comenzar con este circuito, se realizó de manera virtual en el software
Proteus para tener una mejor visualización del circuito, también se hizo con el fin
de poder simularlo y verificar que esté conectado de la manera correcta, así
también como para conocer y entender el funcionamiento del circuito por medio de
la simulación que nos permite realizar el software

Diagrama 2.1 Contador ascendente 0-9 en Proteus

Para comenzar con la conexión de este circuito conectamos el display de 8


segmentos a nuestras entradas digitales del Arduino, en el pin de 5 volts del
Arduino lo conectaremos a una resistencia que estará conectada al display, así
como alimentar este a tierra el cual ira al GND del Arduino, como se muestra en la
foto 2.1.
Foto 2.1 Circuito contador 0-9 armado
Resultados
En las siguiente foto 2.2 nos muetra como de forma satisfactoria se completo el
circuito, y como podemos ver cuenta de forma descendente de 0-9, por lo que
verificamos el funcionamiento del circuito.

Foto 2.2 Circuito contador 0-9 armado funcionando

Contador ascendente 0-59


Para comenzar con este circuito, se realizó de manera virtual en el software
Proteus para tener una mejor visualización del circuito, también se hizo con el fin
de poder simularlo y verificar que esté conectado de la manera correcta, así
también como para conocer y entender el funcionamiento del circuito por medio de
la simulación que nos permite realizar el software
Diagrama 3.1 Contador ascendente 0-59

Para la conexión practica de este circuito simplemente colocamos nuestras


resistencias de 330 las cuales salen de los displays de 8 segmento y entran en los
pines de estradas analógicas del Arduino, finalmente conectamos nuestro voltaje
del Arduino a los pines de VCC de los displays así también como nuestro GND,
como se muestra en la imagen 3.1

Foto 3.1 Circuito contador 0-59 armado


Resultados
En las siguiente foto 3.2 nos muetra como de forma satisfactoria se completo el
circuito, y como podemos ver cuenta de forma descendente de 0-9, por lo que
verificamos el funcionamiento del circuito.
Foto 3.2 Circuito contador 0-59 armado funcionando

Desarrollo Práctica 12 Teclado matricial


Para comenzar con este circuito, se realizó de manera virtual en el software
Proteus para tener una mejor visualización del circuito, también se hizo con el fin
de poder simularlo y verificar que esté conectado de la manera correcta, así
también como para conocer y entender el funcionamiento del circuito por medio de
la simulación que nos permite realizar el software

Diagrama 4.1 Teclado matricial con LCD en Proteus

Para la conexión de este circuito primero comenzamos con el teclado matricial el


cual conectamos en nuestras entradas analógicas, en la parte de la pantalla LCD
conectamos el pin VCC al pin de 5 volts del Arduino, el pin GND lo conectamos al
pin GND del Arduino, y en los pines de SDA y SCL en los pines A4 y A5
respectivamente del Arduino, como se muestra en la foto 4.1
Foto 4.1 Circuito con teclado matricial y LCD conectado

Por último, conectamos nuestro Arduino a nuestro ordenador para programar el


código de contraseña para nuestro circuito el cual fue hecho de la siguiente
manera.

#include <Keypad.h>; // Con esta linea llamamos a la librería Keypad para que
arduino reconozca el teclado
#include <Wire.h>
#include <LiquidCrystal_I2C.h>
//Crear el objeto lcd dirección 0x3F y 16 columnas x 2 filas
LiquidCrystal_I2C lcd(0x20,16,2); //

char contrasena[]="2222"; // En esta linea creamos la constante de cadena


llamada contraseña (elnumero 2222 puede ser cambiado)
char codigo[4]; // Creamos otra constante, en esta se guardaran los caracteres que
presionemosen nuestro teclado matricial 4x4
int cont=0; // Esta es una variable que nos servirá más adelante
int LedVerde=2;
int LedRojo=3;
const byte ROWS = 4; //Este código se estable para definir que nuestro teclado
tiene 4 filas
const byte COLS = 4; //Este código se estable para definir que nuestro teclado
tiene 4 columnas

char hexaKeys[ROWS][COLS] = //En el siguiente matriz se agregan en orden las


teclas que posee nuestro teclado
{
{'1','2','3','A'},
{'4','5','6','B'},
{'7','8','9','C'},
{'*','0','#','D'}
};

byte rowPins[ROWS] = {13, 12, 11, 10}; // Estos son los pines de conexión de
Arduino de lascolumnas
byte colPins[COLS] = {9, 8, 7, 6}; //Estos son los pines de conexión de Arduino de
las filas

Keypad customKeypad = Keypad(makeKeymap(hexaKeys), rowPins, colPins,


ROWS, COLS); //Eneste punto el teclado se inicia y realiza el mapeo de sus teclas
con respecto a la matriz colocada arriba

void setup()
{
// Inicializar el LCD
lcd.init();

//Encender la luz de fondo.


lcd.backlight();

// Escribimos el Mensaje en el LCD.


lcd.print("Ingrese Clave");

pinMode(LedVerde, OUTPUT); //El pin 2 sera nuestra salida digital


pinMode(LedRojo, OUTPUT); //El pin 3 sera nuestra salida digital
Serial.begin(9600); //Se inicia el puerto serial
}

void loop()
{
char customKey = customKeypad.getKey(); //esta linea indica que el carácter
presionado seguardara en la variable customKey
if (customKey != NO_KEY) //Con este siclo preguntamos si se presiono una tecla,
si se presionoentonce el ciclo continua
{
codigo[cont]=customKey; //se guardaran los caracteres presionados en
codigo[cont]
Serial.print(codigo[cont]); //Se imprime en nuestro monitor serial lo que este
guardado en codigo[cont]

cont=cont+1; //incrementamos la variable cont (esto con el fin de tener los 4 dígitos
querequerimos)
if(cont==4) //Ahora comienza otro siclo if, en el cual se pregunta si ya hay 4 datos
guardados y sies así entonce el siclo continua

if(codigo[0]==contrasena[0]&&codigo[1]==contrasena[1]&&codigo[2]==contrasena[
2]&&codigo[3]==contrasena[3])
{

digitalWrite(2,!digitalRead(2)); //si lo anterior es verdad entonces se encenderá el


led, si seingresa nuevamente la contraseña entonces se apagara
Serial.println("Clave correcta"); //si la contraseña es correcta entonces se imprime
""Passwordcorrecta")
lcd.setCursor(0,1);
lcd.print("Clave Correcta");

delay(10);
}
if(codigo!=contrasena) //empieza un nuevo ciclo, esta vez indicamos si el código
es diferente quela contraseña siga con el siclo
{
digitalWrite(3,!digitalRead(3)); //si lo anterior es verdad entonces se encenderá el
led, si se ingresa nuevamente la contraseña entonces se apagara
Serial.println("Clave incorrecta"); // se imprime que que la Password es incorrecta
lcd.setCursor(0,1);
lcd.print("Clave Incorrecta");
delay(10);
}

Resultados
En las siguiente foto 4.2 nos muetra el fucnionamiento de nuestro circuito el cual
sirve como candado el cual permite colocar una contraseña para obtener el
desbloqueo del programa, el cual fue conectado con el codigo anteriormente
mencionado.
Foto 4.2 Circuito con teclado matricial y LCD conectado al arduino

Conclusiones
Cuando se habla de contadores se tiene una definición exacta, pero conociendo y
leyendo se toma la manera del proceso que tiene cada uno en su forma de
ejecución para poder dar un circuito con los elementos adecuados para hacer un
trabajo limpio y exacto.
El trabajo de la ejecución de un contador ascendente y descendente es procesar
una dirección con una secuencia ya que todo tiene un orden y un registro de cómo
va la flecha de dirección en el proceso.
En otras palabras, los elementos de un proceso para guardad información o el
proceso de que se lleva en las memorias es la lógica secuencial, sin embargo, las
salidas están determinadas no sólo por las entradas sino también por la secuencia
de entradas que condujeron al estado existente, las que precedieron. En
conclusión, el circuito posee memoria

Referencias
CONTADORES. (s/f). Xunta.es. Recuperado el 11 de octubre de 2023, de
http://centros.edu.xunta.es/iesmanuelchamosolamas/electricidade/fotos/
contadores.htm
(S/f). Unican.es. Recuperado el 11 de octubre de 2023, de
https://personales.unican.es/manzanom/planantiguo/edigitali/CONTG1.pdf
(S/f-b). Recuperado el 11 de octubre de 2023, de
http://file:///C:/Users/usuario/Downloads/482668117-DIVISOR-DE-FRECUENCIA-
Flip-Flop-pdf.pdf
Código BCD. (s/f). Ecured.cu. Recuperado el 11 de octubre de 2023, de
https://www.ecured.cu/C%C3%B3digo_BCD
Display 7 Segmentos ánodo y cátodo común. (2018, enero 24). HeTPro-Tutoriales.
https://hetpro-store.com/TUTORIALES/display-7-segmentos-anodo-catodo-comun/
Divisores de frecuencia. (s/f). Slideshare.net. Recuperado el 13 de octubre de
2023, de https://es.slideshare.net/wilveraAAA/divisores-de-frecuencia
(S/f). Biada.org. Recuperado el 13 de octubre de 2023, de
http://personal.biada.org/~lescudero/varis/Tutoriales/Manuales/Electr%F3nica
%20Digital.pdf

(S/f-b). Uelectronics.com. Recuperado el 8 de noviembre de 2023, de


https://uelectronics.com/producto/teclado-matricial-4x4-numerico/

También podría gustarte