Sunteți pe pagina 1din 21

LABORATORIO DE SEÑALES

SEMANA 5 - PRÁCTICA No. 03. PARTE 01


SEÑALES DIGITALES – INTRODUCCIÓN A MICROCONTROLADORES
INTEGRANTES PROFESOR
______________________________________________. __________________________________________.
______________________________________________. GRUPO: _________________________________.
______________________________________________. FECHA DE ENTREGA: _____________________.

OBJETIVOS
1. Identificar las características de una señal digital.
2. Distinguir entre una señal digital y una señal análoga.
3. Identificar un microcontrolador.
4. Identificar la función de configuración de parámetros
5. Identificar la función de ejecución del programa
6. Reproducir algunas instrucciones básicas de programación
7. Identificar algunas aplicaciones de entradas y salidas digitales
EQUIPOS Y COMPONENTES NECESARIOS
EQUIPOS Y ELEMENTOS SUMINISTRADOS POR EL LABORATORIO PARA EL PROFESOR:
1 Computador portátil
1 Arduino Uno/Mega2560 + cable de conexión PC (cable USB tipo AB)
1 Multímetro Digital GW GDM8135 o LEADER 852A
ELEMENTOS QUE DEBEN TRAER LOS ESTUDIANTES:
1 Tablero de conexiones (protoboard) 1 Cortafríos
1 Par de pinzas. 1 Pelacables
1 LED 1 Resistor de 10 kΩ
4 Resistores de 270 Ω 1 Pulsador para protoboard
1 LED RGB (De ánodo común de cuatro terminales)
1 20 cm de cable UTP (corto-circuito para montaje en protoboard)
DESARROLLO DE LA PRÁCTICA
I. INTRODUCCIÓN A MICROCONTROLADORES
Un microcontrolador es un circuito embebido (sistema de computación que incluye componentes adicionales
al microprocesador), el cual reúne en un encapsulado varios componentes electrónicos, así como los caminos
necesarios para interconectar estos componentes. El componente principal de un microcontrolador es un
microprocesador, el cuál comúnmente se referencia como CPU (unidad central de procesamiento).
Para que un procesador pueda cumplir su función de procesamiento requiere de memorias (de programa y
de datos), de buses (interconexiones), de un reloj y de un circuito de alimentación eléctrica.

Guía de laboratorio No. 03. Señales Digitales Introducción a Microcontroladores - Laboratorio de Señales - 2019-10 1
Además de embeber (Dicho de una cosa: Contener o encerrar dentro de sí a otra1) estos elementos, el
microcontrolador también incluye otros componentes electrónicos, que tienen funciones específicas, los
cuales le agregan versatilidad y flexibilidad al procesador.
Estos componentes son los periféricos. Los periféricos más comunes son: puertos digitales de Entrada/Salida,
temporizadores, contadores, conversores análogo-digital y digital-análogo e interfaces de comunicación.
Cada fabricante de microcontroladores, adiciona otros periféricos u otras funcionalidades concebidas para
ciertas aplicaciones, con el fin de promover y facilitar el uso de sus microcontroladores en áreas específicas
de la Electrónica.
Existen varios tipos de microcontroladores en el mercado, uno de ellos es el ATMEGA256 de Atmel, el cual
puede apreciarse en la Figura 1.
Este microcontrolador en particular tiene 100 pines (terminales), cada uno cumple con una función definida;
entre estas funciones están: la alimentación, el nivel de referencia (tierra), entradas y salidas digitales,
osciladores, conversión análoga digital, PWM, comunicación serial, etc.
Este microcontrolador es el que usa la plataforma Arduino Mega, la cual es de muy fácil uso y está pensada
para personas que no tengan conocimiento técnico (aficionados, diseñadores, artistas) pero que desean
realizar diferentes desarrollos o proyectos.
Por lo tanto, para la introducción a los microcontroladores se utilizará el sistema de desarrollo Arduino Mega,
que facilita la realización y comprensión de algunas operaciones básicas pero que posee un lenguaje de
programación limitado y que debido a su facilidad de programación, no permite acceder a varias funciones
necesarias en el desarrollo de proyectos más complejos o más eficientes, las cuales serán requeridas en el
proceso de diseño durante su evolución como estudiante de ingeniería electrónica y posteriormente como
ingeniero.

1
Tomado de la RAE.es

Guía de laboratorio No. 03. Señales Digitales Introducción a Microcontroladores - Laboratorio de Señales - 2019-10 2
Figura 1. Configuración de pines del microcontrolador ATmega256. (Tomado de
https://www.arduino.cc/en/Hacking/PinMapping2560)

1. Lo primero que se hará será identificar los elementos que conforman la tarjeta Arduino MEGA, la cual ha sido
entregada dentro de su equipo necesario para realizar esta práctica, que además es mostrada en la Figura 2.

Figura 2. Tarjeta Arduino Mega 2560

Guía de laboratorio No. 03. Señales Digitales Introducción a Microcontroladores - Laboratorio de Señales - 2019-10 3
Preguntas de reflexión 1. Reconocimiento de las partes de la tarjeta.
A partir de los números indicados en los recuadros de la Figura 2, identifique las siguientes partes de la tarjeta:
Número del
Parte
recuadro
Conector de alimentación

Conector puerto USB al computador

Botón de reinicio (reset)


Salidas digitales con opción PWM
(Pulse-Width Modulation. Modulación
por ancho de pulso)
LED de indicación de encendido (ON)

Entradas análogas

Entrada/salida digital

Microprocesador ATmega256

Cristal del oscilador de 16 MHz

Preguntas de reflexión 2. Reconocimiento de la tarjeta


¿Logra identificar alguna otra parte dentro de la tarjeta?
¿Puede identificar los conectores de tierra (GND) en la tarjeta?

II. PROGRAMACION DEL MICROCONTROLADOR


2. Busque en el computador el logo del software (No abra aún el programa), mostrado en la Figura 3, que permite
escribir el código para programar el Arduino IDE. Si no encuentra este logo, puede descargarlo e instalarlo
desde: https://www.arduino.cc/en/Main/Software# y mientras se instala puede proceder con la realización
de la guía.

Figura 3. Logo de Arduino IDE

Guía de laboratorio No. 03. Señales Digitales Introducción a Microcontroladores - Laboratorio de Señales - 2019-10 4
3. Antes de ejecutar el programa, se debe conectar el Arduino a un puerto USB del computador mediante al
cable USB, como el mostrado en la Figura 4.

Figura 4. Cable USB.


4. Al conectar la tarjeta, el LED de indicación de encendido (ON) debe encenderse. De no ser así, consulte con su
profesor.
5. Una vez conectada la tarjeta al computador, se debe comprobar a qué puerto de comunicación (COM) está
conectada la tarjeta del Arduino.
6. Para esta comprobación se abre el Panel de control y se selecciona Hardware, tal y como se muestra en la
Figura 5.

Figura 5. Pantalla del Panel de control


7. De allí se selecciona la opción de Administración de dispositivos del menú Dispositivos e impresoras, tal y
como se muestra en la Figura 6.

Guía de laboratorio No. 03. Señales Digitales Introducción a Microcontroladores - Laboratorio de Señales - 2019-10 5
Figura 6. Acceso al Administrador de dispositivos
8. Al abrir la ventana de administración de dispositivos mostrado en la Figura 7, se puede observar en la sección
Puertos (COM y LPT) que en este ejemplo el Arduino MEGA 2560, está en el puerto COM3 del computador.

Figura 7. Ventana de Administración de dispositivos.


Preguntas de reflexión 3. Conexión del Arduino al computador
¿A qué puerto de su computador está conectada la tarjeta del microcontrolador?

Guía de laboratorio No. 03. Señales Digitales Introducción a Microcontroladores - Laboratorio de Señales - 2019-10 6
9. Ahora puede ejecutarse el programa con el cual se abre el ambiente de programación, Arduino IDE, del
microcontrolador, el cual es el logo mostrado en la Figura 3.
10. Al ejecutar este programa aparece una ventana como la mostrada en la Figura 8.
11. La primera acción que debe realizarse, es configurar este programa para que pueda comunicarse con la tarjeta
del microcontrolador. Para ello se debe seleccionar la tarjeta adecuada que se usará.

Figura 8. Ventana de inicio de Arduino IDE

12. Se elige del menú superior la opción Herramientas (Tools) y luego de la lista desplegada se selecciona la opción
Placa (Board), con lo cual se despliega de nuevo una lista con las tarjetas disponibles y se elige la tarjeta
Arduino Mega 2560, tal y como se muestra en la Figura 9.
Herramientas → Placa → Arduino Mega 2560

13. Una vez ha sido seleccionada la tarjeta con la cual se va a trabajar, se debe seleccionar el puerto con el cual
se comunica la tarjeta con el computador. Para ello, se elige del menú superior la opción Herramientas (Tools)
y luego de la lista desplegada se selecciona la opción Puerto (Port) y allí se selecciona el puerto observado en
la figura 7. En nuestro ejemplo fue el COM3.
Herramientas → Puerto → COM3.

14. Luego de haber elegido la placa y seleccionado el puerto de comunicación, de tal forma que pueda efectuarse
la comunicación de forma adecuada, entre el computador y la tarjeta, se puede proceder a escribir el
programa que se quiere ejecutar desde el microcontrolador.

Guía de laboratorio No. 03. Señales Digitales Introducción a Microcontroladores - Laboratorio de Señales - 2019-10 7
Figura 9. Selección de la tarjeta del microcontrolador.

15. Como se observa en la Figura 8, en la ventana que se desplegó cuando se abrió el entorno de programación,
se tiene el siguiente texto:

void setup() {
// put your setup code here, to run once:
}

void loop() {
// put your main code here, to run repeatedly:
}

16. Este texto está compuesto por dos funciones: setup y loop, las cuales deben estar en cualquier código que
desee programarse en este microcontrolador. El código de estas funciones debe escribirse dentro de las llaves
({ }). El texto void que está al inicio de cada función, significa que estas funciones se ejecutan, pero que no
devuelven ningún parámetro (valor de regreso).
17. En la función setup, se escribe el código que se realizará solamente una vez, por ejemplo: iniciación de
variables, definición de parámetros, definición de configuración de pines.
18. En la función loop, se escribe el código que se estará ejecutando continuamente, de tal forma, que mientras
el microcontrolador este prendido el programa estaría en funcionamiento permanentemente.
NOTA: Observe que las palabras propias del lenguaje de programación se identifican con un color diferente al
del texto.

Guía de laboratorio No. 03. Señales Digitales Introducción a Microcontroladores - Laboratorio de Señales - 2019-10 8
III. SEÑALES DIGITALES DE ENTRADA Y DE SALIDA.
Como se mencionó anteriormente, los terminales (pines) digitales, pueden configurarse como entradas o salidas.
El primer proyecto de introducción a un lenguaje de programación se le suele llamar “Hola mundo”. En nuestro
caso, este primer proyecto deberá encender y apagar un LED.

Preguntas de reflexión 4. LED


¿Qué significa la sigla LED?
¿Cuáles son las diferencias que hay entre un LED y una bombilla?
¿Cuál es la diferencia entre un LED y un diodo?
19. Se debe realizar el montaje mostrado en la Figura 10. El pin o terminal Digital de salida será el número 53 y la
resistencia en serie a conectar es de 270 Ω.

Figura 10. Montaje para un LED intermitente.

20. La conexión y configuración de la tarjeta del microcontrolador con el tablero de conexiones (protobard) deben
ser así:

Pines del Arduino Mega 2560 Configuración Componente

53 Salida digital Terminal 2 del led (ánodo +)

GND Tierra Terminal 1 del led (cátodo -)

21. La forma de identificar los terminales de un LED correctamente, se muestra en la Figura 11.
22. Al tomar el LED, se puede palpar una parte plana, este será el lado del terminal del cátodo (negativo) y la
parte redonda será donde se encuentra el terminal del ánodo (positivo).
23. Como ya se ha mencionado, se debe configurar el pin 53 de la tarjeta del microcontrolador, como una salida
digital, la cual solo tiene dos posibles valores “uno lógico” (1) y “cero lógico” (0).
Preguntas de reflexión 5. Salida digital
¿Qué significa en valor de la señal de salida un “uno lógico” (1) o un “cero lógico” (0)?
¿Cómo podría conocerse a qué valor de voltaje equivaldría un “uno lógico” (1) en este circuito?
¿Cómo podría conocerse a qué valor de voltaje equivaldría un “cero lógico” (0) en este circuito?
¿Cuándo la señal sea un “uno lógico” (1), el LED se encenderá o se apagará?

Guía de laboratorio No. 03. Señales Digitales Introducción a Microcontroladores - Laboratorio de Señales - 2019-10 9
¿Cuál es la razón por la cual se debe conectar una resistencia en serie con el diodo?

Figura 11. Identificación de los terminales de un LED.


(Imagen tomada de: http://www.mcmajan.com/mcmajanwpr/wp-
content/uploads/2012/08/electronics_led_diagram.png)

24. Una vez terminada la conexión de los componentes (hardware), se puede proceder a la realización del código
(software) para que se ejecute la acción requerida.
25. En el programa debe configurarse como salida el pin53 de la tarjeta, para esto en la función setup, debe
escribirse lo siguiente: pinMode(53, OUTPUT);

Donde “pinMode” es el comando que configura el pin. Dentro del paréntesis, debe ir el nombre del pin
(número), luego separado por una coma “,” el valor de configuración, que puede ser salida (OUTPUT) o
entrada (IN).

NOTA: Observe que el comando termina con un “punto y coma” (;), el cual le indica al programa que este es
el fin del comando. De llegar a omitirse, se generará un error de formato de código (compilación).

26. Si se desea comentar esta instrucción puede escribirse: // Configura el pin digital 53 como salida

Los comentarios dentro del texto se escriben después de doble barra inclinada “//”, por esta razón si se escribe
alguna palabra propia del lenguaje después de esta notación, esta NO cambiará de color, porque es tomada
como texto y no como comando.
27. Se sugiere ponerle título al código, este puede ser por ejemplo:
// Hola mundo. Encender y apagar un LED
28. Ya realizada la configuración del pin53 como salida digital, dentro de la función setup (solo se realiza esta
configuración una sola vez en el programa), se debe escribir el código necesario para que la salida entregue
los valores necesarios para que se encienda y se apague el LED. Como esta acción se repetirá indefinidamente
mientras se ejecute el programa, los comandos deben escribirse dentro de la función loop.
29. Para esto se define que la salida del pin53 será alta (HIGH), lo que equivale a un “uno lógico” (1). Para tal fin
se debe escribir lo siguiente: digitalWrite(53, HIGH);

Guía de laboratorio No. 03. Señales Digitales Introducción a Microcontroladores - Laboratorio de Señales - 2019-10 10
Donde “digitalWrite” es el comando que escribe el valor en el pin (define el valor de salida digital el pin).
Dentro del paréntesis, debe ir el nombre del pin (número), luego separado por una coma “,” el valor a escribir,
que puede ser alto (HIGH) o bajo (LOW).
30. Si se desea comentar esta instrucción puede escribirse: // Pone un valor alto en el pin53.
31. Para que se pueda visualizar el encendido del LED, se debe dejar un tiempo el pin53 en alto, por esta razón,
se debe escribir la siguiente instrucción: delay(1000);
Donde “delay” es el comando que define el tiempo de espera para realizar la siguiente acción. Dentro del
paréntesis, debe ir el valor (en milisegundos) del tiempo a esperar.
32. Si se desea comentar esta instrucción puede escribirse: // Tiempo de espera en ms.
33. Ahora el LED debe apagarse, para tal fin se pone el pin53 en bajo (cero lógico), para esto se debe escribir la
siguiente instrucción: digitalWrite(53, LOW);
34. Si se desea comentar esta instrucción puede escribirse: // Pone un valor bajo en el pin53.
35. Finalmente se debe esperar un tiempo para poder visualizar adecuadamente el LED apagado. Para esto se
debe escribir la siguiente instrucción: delay(500);
36. De esta forma el texto escrito debe ser similar al que se muestra a continuación:

// Hola mundo. Encender y apagar un LED

void setup() {
// put your setup code here, to run once:
pinMode(53, OUTPUT);
// Configura el pin digital 53 como salida
}

void loop() {
// put your main code here, to run repeatedly:
digitalWrite(53, HIGH); // Pone un valor alto en el pin53.
delay(1000); // Tiempo de espera en ms.
digitalWrite(53, LOW); // Pone un valor bajo en el pin53.
delay(500); // Tiempo de espera en ms.
}

37. Una vez se termine de realizar esta última instrucción “delay(500);” concluye la función loop en su
recorrido, pero vuelve a iniciar de nuevo, ejecutando el comando “digitalWrite(53, HIGH);” y así
se repite el ciclo continuamente.
38. Al haber finalizado el código, se debe realizar una verificación del mismo. Para esto se selecciona el símbolo
de aprobación (chulo) que realiza la verificación, tal y como se muestra en la Figura 12.

La primera vez que se realiza la verificación, el programa pedirá que se almacene el archivo con algún nombre.
Seleccione el nombre del archivo y la carpeta donde se guardará. Se sugiere que el nombre sea indicativo de
la función del programa y para evitar que se confunda con otros programas similares de otras personas,
podría incluirse el número del grupo de laboratorio en el nombre del autor.
39. Este proceso de verificación tomará algún tiempo y al finalizar, el resultado de la verificación se mostrará en
la franja negra debajo del código, tal y como se muestra en la Figura 12.

Guía de laboratorio No. 03. Señales Digitales Introducción a Microcontroladores - Laboratorio de Señales - 2019-10 11
40. Si se presenta algún error, se debe verificar la escritura del código, de no aparecer ningún error, este programa
ya estará listo para cargarse al microcontrolador.

Figura 12. Selección para la verificación del código

41. Para cargar el programa al microcontrolador, se selecciona la flecha que indica hacia la derecha, del menú
superior, tal y como se muestra en la Figura 13.

Figura 13. Comando para cargar el programa al microcontrolador

42. En este instante se debería observar el parpadeo del LED. Si no es así, verifique la conexión del LED en el
circuito. Consulte a su profesor.

Guía de laboratorio No. 03. Señales Digitales Introducción a Microcontroladores - Laboratorio de Señales - 2019-10 12
Preguntas de reflexión 6. Salida digital
¿Cómo lograría que el LED parpadee con mayor velocidad?

43. Modifique el código de tal forma que aumente la frecuencia de parpadeo del LED.

IV. SEÑALES DIGITALES DE ENTRADA Y DE SALIDA.

44. A continuación se utilizará un LED RGB (Red-Green-Blue), que permite emitir luz roja, azul o verde, según el
usuario decida. Esta funcionalidad permite realizar diferentes combinaciones de intensidad de estos colores,
para así dar a nuestro sentido de la vista la percepción de diferentes colores más allá que estos tres
mencionados. Esto se logra mediante la combinación aditiva de colores.
45. La forma correcta para la conexión del led RGB se presenta en la Figura 14.

1: Rojo
2: Punto común (Terminal más larga)
3: Verde
4: Azul

2 3
4

Figura 14. Lectura de las terminales de un led RGB y composición de colores básicos

46. Los LED RGB pueden ser de ánodo común (los LED rojo, verde y azul tienen conectados su ánodo entre ellos)
tal y como se muestra en la Figura 15. También está la configuración de LED RGB de cátodo común (todos los
LED tiene conectados su cátodo a un punto en común, tal y como se muestra en la Figura 15.

Figura 15. Diagrama esquemático un de LED RGB de ánodo común y un de LED RGB de cátodo común

Ya que ambas configuraciones implican diferente tipo de conexión circuital, lo primero que debería hacerse
antes de proceder a montar el circuito es identificar si el LED RGB que se tiene, es ánodo común o cátodo
común.

Guía de laboratorio No. 03. Señales Digitales Introducción a Microcontroladores - Laboratorio de Señales - 2019-10 13
Preguntas de reflexión 7. LED RGB
¿Cómo puede identificarse que un LED RGB es de ánodo común o cátodo común?

47. Una vez identificado el tipo de LED RGB que se tiene, se procede a realizar el montaje del circuito. Si el LED es
de ánodo común, se debe realizar el montaje mostrado en la Figura 16. Los pines de salida Digital serán los
números 49, 51 y 53. Así mismo, el valor de cada una de las resistencias en serie a conectar con cada terminal
del led es de 270 Ω.

Figura 16. Montaje para el control de un led RGB Ánodo Común.

48. Las conexiones y configuración de la tarjeta del microcontrolador con el tablero de conexiones (protobard),
con un LED RGB de ánodo común, deben ser así:

Pines del Arduino Mega 2560 Configuración Componente


Resistencia 1 @ 270 Ω (al terminal 1
49 Salida digital
del LED. Rojo)
Resistencia 2 @ 270 Ω (al terminal 3
51 Salida digital
del LED. Verde)
Resistencia 3 @ 270 Ω (al terminal 4
53 Salida digital
del LED. Azul)
GND Tierra Bus interno inferior protoboard
Bus externo inferior protoboard
5V + 5V
y Ánodo del LED RGB. Terminal 4

49. Si el LED RGB que se tiene es cátodo común, se debe realizar el montaje mostrado en la Figura 17. Los pines
de salida Digital serán los números 49, 51 y 53. Así mismo, el valor de cada una de las resistencias en serie a
conectar con cada terminal del led es de 270 Ω.

Guía de laboratorio No. 03. Señales Digitales Introducción a Microcontroladores - Laboratorio de Señales - 2019-10 14
Figura 17. Montaje para el control de un led RGB Cátodo Común

50. Las conexiones y configuración de la tarjeta del microcontrolador con el tablero de conexiones (protobard),
con un LED RGB de cátodo común, deben ser así:

Pines del Arduino Mega 2560 Configuración Componente


49 Salida digital Resistencia 1 @ 270 Ω (al terminal 1 del LED. Rojo)
51 Salida digital Resistencia 2 @ 270 Ω (al terminal 3 del LED. Verde)
53 Salida digital Resistencia 3 @ 270 Ω (al terminal 4 del LED. Azul)
Bus interno inferior protoboard
GND Tierra
y Cátodo del LED RGB. Terminal 4
5V + 5V Bus externo inferior protoboard

51. Una vez terminada la conexión de los componentes (hardware), se puede proceder a la realización del código
(software) para que se ejecute la acción requerida.
NOTA: La siguiente guía de programación son para el caso de un LED RGB ánodo común. Si el LED RGB es cátodo
común invierta los valores de HIGH por LOW y LOW por HIGH.
52. Se desea que el LED RGB, cambie de color con la siguiente secuencia a intervalo de un segundo: rojo, verde,
azul y apagado.
53. Cree un archivo nuevo: Archivo (File) → Nuevo (New). Al hacer esto, salen de nuevo las funciones setup y loop.
54. Póngale un nombre al inicio del código, por medio de un comentario. A modo de ejemplo podría ser:
// LED RGB. Secuencia de colores primarios
55. En el programa debe configurarse como salida los pines 49, 51 y 53 de la tarjeta. Recuerde que esto se lleva
a cabo en la función setup. A modo de ejemplo se muestra la configuración del PIN53 y su respectiva
documentación:
pinMode(53, OUTPUT); // Configura el pin digital 53 como salida
56. Realice la configuración de los pines restantes. Una vez finalizada esta configuración, se procede a escribir el
código en la función loop.

Guía de laboratorio No. 03. Señales Digitales Introducción a Microcontroladores - Laboratorio de Señales - 2019-10 15
57. Ya que son tres salidas, se debe definir el valor para cada una de ellas. De esta forma, si solo desea activarse
el LED rojo (PIN49), este debe ponerse en bajo (LOW) y los otros dos PIN51 y PIN53 en alto (HIGH). Esto se
realiza así, ya que el LED RGB es ánodo común, es decir, se enciende con nivel bajo.
58. A modo de ejemplo se muestra la asignación de valores a los pines 49, 51 y 53 y su respectiva documentación:
// Cógigo para LED RGB Ánodo común
digitalWrite(49, LOW); // Encender el led rojo con el pin49.
digitalWrite(51, HIGH); // Apagar el led verde con el pin51.
digitalWrite(53, HIGH); // Apagar el led azul con el pin53.
delay(1000); // Tiempo de espera en ms.

59. Realice la programación de los estados siguientes del LED RGB para su respectivo cambio de color.

60. Verifique el código, cárguelo en el microcontrolador y compruebe el funcionamiento.

Preguntas de reflexión 8. LED RGB


¿Cómo debería modificarse el código, para que la secuencia de colores sea: amarillo, magenta (morado),
aguamarina (cyan) y blanco?
¿Cómo debería modificarse el circuito, para obtener el color naranja?

V. LECTURA DE VALORES DE ENTRADA.


61. Hasta el momento se ha realizado la programación para controlador el parpadeo de un LED, sin embargo, una
vez inicie a correrse el programa, el usuario no tiene control sobre el mismo. Ahora se desea poner una
entrada al microcontrolador, para que se pueda controlar el encendido o apagado del LED.
62. Se debe realizar el montaje mostrado en la Figura 18. El pin de salida Digital será el número 53, el pin de
entrada Digital será el número 45. Así mismo, se debe poner un pulsador y el valor de las resistencias en serie
a conectar es de 270 Ω (para el LED) y 10 kΩ (para el pulsador).

Figura 18. Montaje para el control de un led con de un pulsador

63. Las conexiones y configuración de la tarjeta del microcontrolador con el tablero de conexiones (protobard),
con el LED y el pulsador, deben ser así:

Guía de laboratorio No. 03. Señales Digitales Introducción a Microcontroladores - Laboratorio de Señales - 2019-10 16
Pines del Arduino Mega 2560 Configuración Componente
45 Entrada digital Pulsador
53 Salida digital Terminal + del led (ánodo)
GND Tierra Bus interno inferior protoboard
5V + 5V Bus externo inferior protoboard

NOTA: Se debe verificar con el multímetro digital en función de medidor de continuidad, los pines
correspondientes al pulsador, de tal forma que los que se conectan en el tablero de conexiones (protoboard) a la
resistencia de 10 kΩ y a la alimentación de 5V, estén normalmente abiertos y solo se conecten al presionar el
botón del pulsador.
64. Se probará la correcta conexión entre la tarjeta y los elementos del tablero de conexiones, mediante un
código que encienda el LED cuando se mantenga presionado el pulsador y se apague al momento de liberarlo.
65. Cree un archivo nuevo y póngale un nombre al inicio del código, por medio de un comentario.
66. En el programa debe configurarse como salida el PIN53 y como entrada el PIN45 de la tarjeta. Como ya se ha
mencionado, esto debe realizarse en la función setup. Para la configuración del PIN45 como entrada debe
escribirse lo siguiente:
pinMode(45, INPUT); // Configura el pin digital 45 como entrada. (pulsador)
67. Realice la configuración de los pines restantes. Una vez finalizada esta configuración, se procede a escribir el
código en la función loop. Se desea conocer el estado en el cual se encuentra el pulsador (presionado o
liberado), que está asociado al PIN45.
68. Lo que se debe hacer es leer el valor de entrada del pulsador (entrada digital). Si esta libre el valor será “cero
lógico”, debido a que el voltaje es de 0V, al no haber circulación de corriente por la resistencia. Si se oprime
el pulsador, el valor de entrada será un “uno lógico”, ya que en el terminal del pulsador habrá el mismo voltaje
que el otro terminal, es decir 5 V.
69. Por lo tanto, para conocer en qué estado se encuentra el pulsador, debe leerse el valor de la entrada en el
PIN43. Para tal fin se debe escribir lo siguiente: digitalRead(45);
Donde “digitalRead” es el comando que lee el valor en el pin (definido como entrada digital). Sin embargo,
esta lectura carece de utilidad tal y como está, porque este valor leído debería poder almacenarse en algún
lugar, para poder utilizarla más adelante. El espacio donde se debería almacenar este valor leído (o un valor
calculado) se llama variable, el cual como su nombre lo indica su valor puede cambiar en el proceso de
ejecución del programa.
Para poder utilizar una variable, debe primero definirse antes de la función setup. En nuestro caso llamaremos
a la variable “pulsador”, aunque se le puede poner cualquier otro nombre.
70. Para la definición de la variable debe escribirse lo siguiente:
int pulsador = 0; // Define la variable pulsador
Donde “pulsador” es el nombre dado a la variable, “int” es la definición del tipo de variable que se va a utilizar,
en este casi será una variable entera (integer), ósea, solo puede tomar valores de número enteros. Finalmente
a la variable se le asigna un valor inicial, en nuestro caso se le asigna el valor de cero “0”.
Por lo tanto, para que quede bien definida la instrucción de lectura del valor de entrada, el código que se
escribirá debe ser: pulsador = digitalRead(45); // Lee el estado del pulsador

Guía de laboratorio No. 03. Señales Digitales Introducción a Microcontroladores - Laboratorio de Señales - 2019-10 17
71. Al conocerse el valor de la variable “pulsador” que a su vez nos indica el estado (libre o presionado) de este
dispositivo, debe tomarse la decisión de encender o apagar el LED a partir de este valor. Para tal fin, se le debe
preguntar al microcontrolador por el valor de la variable y a partir de este ejecutar la acción requerida.
72. Para preguntar por el valor de la variable y tomar una decisión a partir de este valor, se utiliza una instrucción
llamada condicional, la cual tiene como estructura “SI condición, ENTONCES acción”. En nuestro caso, si el
pulsador esta oprimido (entrada digital en 1 lógico, ósea nivel alto –HIGH-), se enciende el LED y sino ósea el
pulsador esta liberado (entrada digital en 0, ósea nivel bajo –LOW-), se apaga el LED.
73. Por lo tanto, para preguntar por el estado de la variable y tomar la decisión correspondiente, se debe escribir
lo siguiente:

if (pulsador == HIGH) { // Se pregunta el estado del pulsador


digitalWrite(53, HIGH); // Se enciende el led en el pin53.
}
else {
digitalWrite(53, LOW); // Se apaga el led en el pin53.
}
74. De esta forma el texto escrito debe ser similar al que se muestra a continuación:
75. Verifique el código, cárguelo en el microcontrolador y compruebe el funcionamiento.

// Encender y apagar un LED con un pulsador

int pulsador = 0; // Define la variable pulsador

void setup() {
// put your setup code here, to run once:

pinMode(45, INPUT); // Configura el pin45 digital como entrada. (pulsador)


pinMode(53, OUTPUT); // Configura el pin digital 53 como salida
}

void loop() {
// put your main code here, to run repeatedly:
pulsador = digitalRead(45); // Lee el estado del pulsador
if (pulsador == HIGH) { // Se pregunta el estado del pulsador
digitalWrite(53, HIGH); // Se enciende el led en el pin53.
}
else {
digitalWrite(53, LOW); // Se apaga el led en el pin53.
}

76. Una vez se ha comprado el correcto funcionamiento de este código, podemos proceder a concluir el programa
tal y como se pidió, es decir, que al presionar el pulsador el LED cambie de estado. Para esto solo se debe
modificar el código como tal (software), sin realizar ninguna modificación en el montaje (hardware).

Guía de laboratorio No. 03. Señales Digitales Introducción a Microcontroladores - Laboratorio de Señales - 2019-10 18
Preguntas de reflexión 9. Algoritmo
Antes de escribir el código, escriba la descripción con sus propias palabras de lo que debe hacer el programa, paso
a paso, sin omitir detalles, por obvio que pueda parecer. Recuerde que el microprocesador se limita a realizar los
comandos que se le han escrito.
77. Escriba el código necesario, para que se realizar la función de cambio de estado en el LED cuando se ha
presionado el pulsador.
NOTA: Se sugiere crear otra variable que indique el estado actual del LED (puede llamarse “actual”), para que
una vez se lea este estado actual y coincida con el botón presionado, se produzca el cambio de estado.
78. Una vez que ha terminado de escribir el código, verifíquelo, cárguelo en el microcontrolador y compruebe su
funcionamiento.
NOTA: Puede comparar su código realizado con el siguiente mostrado en el recuadro. No existe una única
forma de solucionar el problema indicado
79. Al comprobar el funcionamiento del programa es posible que este no realice su trabajo correctamente, ya
que al presionar el pulsador, el LED no cambie adecuadamente de estado.
Esto se debe a que al presionar el pulsador, el microcontrolador realiza la lectura de esta presión muchas
veces (es decir, el LED se estaría prendiendo y apagando a muy alta frecuencia, por lo tanto para nuestros ojos
siempre permanecería encendido), así que al soltarlo, no se sabría exactamente por parte del usuario, si el
último estado fue encendido o apagado.

Guía de laboratorio No. 03. Señales Digitales Introducción a Microcontroladores - Laboratorio de Señales - 2019-10 19
// Cambiar de estado un LED al presionar un pulsador
int pulsador = 0; // Define la variable pulsador
int estado_led = 0; // Define el estado actual del LED. 0 = apagado

void setup() {
// put your setup code here, to run once:

pinMode(45, INPUT); // Configura el pin45 digital como entrada. (pulsador)


pinMode(53, OUTPUT); // Configura el pin digital 53 como salida
}

void loop() {
// put your main code here, to run repeatedly:
pulsador = digitalRead(45); // Lee el estado del pulsador

if (pulsador == HIGH) { // Se pregunta el estado del pulsador


estado_led = 1 – estado_led; // Cambia el estado actual
}

if (estado_led == 1) {// Pregunta por el estado al que debe pasar el LED


digitalWrite(53, HIGH); // Se enciende el led en el pin53.
}
else {
digitalWrite(53, LOW); // Se apaga el led en el pin53.
}
}

80. Para corregir este problema, se debe aplicar el cambio solamente cuando el pulsador haya pasado de estar
liberado a estar presionado. Para que esto pueda evaluarse se debe crear otra variable, que en este caso será:
int pulsador_anterior = 0; // Define el estado anterior del pulsador
Preguntas de reflexión 10. Modificación de Algoritmo
Antes de escribir el código, escriba la descripción con sus propias palabras de lo que debe hacer el programa, paso
a paso, sin omitir detalles, por obvio que pueda parecer. Recuerde que el microprocesador se limita a realizar los
comandos que se le han escrito.
81. Escriba el código necesario, para que se realizar la función de cambio de estado en el LED cuando se ha
presionado el pulsador.
82. Una vez que ha terminado de escribir el código, verifíquelo, cárguelo en el microcontrolador y compruebe su
funcionamiento.
NOTA: Puede comparar su código realizado con el mostrado en la siguiente página. No existe una única forma
de solucionar el problema indicado.
83. Se debería notar una mejora en el funcionamiento del programa, sin embargo aún no funciona
correctamente. Esto se debe a que al presionar el pulsador, su parte mecánica no hace un contacto
permanente entre sus terminales, sino que se presenta un rebote entre ellos (bouncing), lo que hace que a
veces haya contacto y otras veces no, lo que se traduce en un funcionamiento inadecuado de nuestro
programa.

Guía de laboratorio No. 03. Señales Digitales Introducción a Microcontroladores - Laboratorio de Señales - 2019-10 20
84. Para corregir este problema de bouncing (rebote) que se presenta en los dispositivos de contacto mecánico,
existen varias técnicas. Una de ellas, simple y económica, consiste en poner un tiempo de retardo posterior a
la lectura del valor del pulsador. Para esto, se utiliza la instrucción: delay(25);
Recuerde que delay mantiene un tiempo de espera en ms, antes de continuar ejecutando el programa, con
esto, se reduce la posibilidad de lectura de los rebotes debido a la presión del pulsador.
85. Una vez que ha terminado de escribir el código, verifíquelo, cárguelo en el microcontrolador y compruebe su
funcionamiento. En este caso debería funcionar mejor.

// Cambiar de estado un LED al presionar un pulsador


int pulsador = 0; // Define la variable pulsador
int pulsador_anterior = 0; // Define el estado anterior del pulsador
int estado_led = 0; // Define el estado actual del LED. 0 = apagado

void setup() {
// put your setup code here, to run once:

pinMode(45, INPUT); // Configura el pin45 digital como entrada. (pulsador)


pinMode(53, OUTPUT); // Configura el pin digital 53 como salida
}

void loop() {
// put your main code here, to run repeatedly:
pulsador = digitalRead(45); // Lee el estado del pulsador

if ( (pulsador == HIGH) && (pulsador_anterior == LOW) ){


// Se pregunta el estado actual y anterior del pulsador
estado_led = 1 – estado_led; // Cambia el estado actual
delay(25);
}

pulsador_anterior = pulsador; // Se actualiza el estado anterior

if (estado_led == 1) {// Pregunta por el estado al que debe pasar el LED


digitalWrite(53, HIGH); // Se enciende el led en el pin53.
}
else {
digitalWrite(53, LOW); // Se apaga el led en el pin53.
}
}

Preguntas de reflexión 11. Explicación del Algoritmo


A partir del código anterior, describa la función de cada instrucción y el funcionamiento completo del programa.

Guía de laboratorio No. 03. Señales Digitales Introducción a Microcontroladores - Laboratorio de Señales - 2019-10 21

S-ar putea să vă placă și