P á g i n a | 84
IMAGEN 127: ARDUINO UNO, UBICACIÓN DEL BOTÓN DE RESETEO
Conector o Plug para Fuente externa de alimentación
Se utiliza para conectar una fuente de voltaje o una batería, en especial cuando se implementa un
sistema en el cual la tarjeta no estará conectada directamente a una PC. El voltaje requerido por la
tarjeta debe estar entre los 6V y los 12 V.
IMAGEN 128: ARDUINO UNO, UBICACIÓN DEL PLUG DE ALIMENTACIÓN EXTERNA
LED’s indicadores
Para verificar el funcionamiento de las funciones básicas de la tarjeta, ésta cuenta con una serie de
LED’s indicadores:
ON: Indicador de Encendido
P á g i n a | 85
L: LED de prueba conectado directamente con el pin 13
TX: Indicador de Transmisión Serial
RX: Indicador de Recepción Serial
IMAGEN 129: ARDUINO UNO, UBICACIÓN DE LEDS INDICADORES
Pines de Suministro de Energía y Tierra
Estos pines son un suministro constante de voltaje para elementos como sensores, módulos de
expansión, etc. Una Arduino UNO tiene los siguientes pines de suministro de energía:
1 pin de 5V
1 pin de 3.3 V
3 pines de tierra o referencia (GND)
Estos se identifican con la leyenda “POWER”, o con los indicativos de voltaje o “GND”.
P á g i n a | 86
IMAGEN 130: ARDUINO UNO, UBICACIÓN DE LOS PINES DE SUMINITRO DE ENERGÍA
Pines Digitales Bidireccionales
Estos 14 pines (0 al 13) son pines que pueden ser configurados como entradas o salidas digitales, es
decir, que entregan o leen señales con estado ALTO o BAJO, HIGH o LOW, o 1 y 0 binarios,
respectivamente. La tarjeta funciona con lógica TTL, por lo que un 1 se representa con una señal de
5V y un 0 con valores entre 0 V y 0.4 V. En el código se configuran qué pines funcionarán como
entradas o como salidas. Se identifican con una línea y la leyenda “DIGITAL”.
IMAGEN 131: ARDUINO UNO, UBICACIÓN DE PINES DIGITALES
P á g i n a | 87
Pines Analógicos de Entrada
Estos 6 pines (0 al 5) son pines de entrada que reciben señales analógicas provenientes de sensores,
por lo regular. Éstos están conectados directamente al conversor Analógico/Digital (ADC) del
ATMega 328P. Se identifican por tener la leyenda “ANALOG IN” o bien por la letra “A” y un número.
IMAGEN 132: ARDUINO UNO, UBICACIÓN DE LOS PINES ANALÓGICOS
Pines Analógicos de Salida por Modulación por Ancho de Pulsos (PWM)
Estos 6 pines (3, 5, 6, 9, 10 y 11) son para entregar un voltaje analógico que puede estar entre 0V y 4.9
V con la técnica de Modulación por Ancho de Pulso (PWM). Ésta Modulación modifica el ciclo de
trabajo de una señal cuadrada, o bien el ancho de los pulsos para generar un voltaje. Éstos pines se
identifican por la leyenda “PWM” o por una tilde (~) que antecede al número.
IMAGEN 133: ARDUINO UNO, UBICACIÓN DE PINES CON PWM
P á g i n a | 88
Pines de Comunicación Serial TTL
Estos dos pines (0 y 1) se utilizan para comunicarse mediante protocolo serial TTL, el cual representa
los 1’s de una cadena de datos como señales de 5 V y los 0’s como 0 V. La tarjeta sólo tiene un par
serial, que se identifican con las letras TX, para el pin de transmisión y RX para el pin de recepción.
Otras tarjetas de gama alta tienen hasta 4 pares de transmisión serial. Una vez configurados para
comunicación serial, no pueden funcionar como pines digitales.
IMAGEN 134: ARDUINO UNO, UBICACIÓN DE PINES PARA COMUNICACIÓN SERIAL TTL
PRUEBA 2 PRUEBAS A EJECUTAR POR PARTE DEL ALUMNO
PRUEBA 3
PRUEBA 4 Identificación de elementos de una Arduino® MEGA
PRUEBA 5 Investigar las especificaciones de una Arduino® MEGA y registrarlos en el formato de reporte de
prácticas. Posteriormente identificar pines digitales, analógicos y demás elementos con base en
las partes señaladas en los pasos anteriores en una imagen y registrarlas mediante fotografías.
Identificación de elementos de una Arduino® DUE
Investigar las especificaciones de una Arduino® DUE y registrarlos en el formato de reporte de
prácticas. Posteriormente identificar pines digitales, analógicos y demás elementos con base en
las partes señaladas en los pasos anteriores en una imagen y registrarlas mediante fotografías.
Identificación de elementos de una Arduino® NANO
Investigar las especificaciones de una Arduino® NANO y registrarlos en el formato de reporte de
prácticas. Posteriormente identificar pines digitales, analógicos y demás elementos con base en
las partes señaladas en los pasos anteriores en una imagen y registrarlas mediante fotografías.
Cuadro comparativo de tarjetas Arduino®
Una vez realizada la inspección de las tarjetas Arduino®, realizar una cuadro comparativo donde
se especifiquen las características más representativas, aplicaciones, capacidades, etc.
RESULTADOS Y CONCLUSIONES
Al término de la práctica, el alumno podrá conocer y generar juicios de valor sobre las tarjetas de
desarrollo Arduino® disponibles en el mercado, sus características, capacidades, así como sus
ventajas y desventajas ante diferentes aplicaciones o escenarios. Esto con el fin de seleccionar el
mejor dispositivo de acuerdo a sus necesidades de entradas y/o salidas de datos, comunicación, al
P á g i n a | 89
igual que presupuestos establecidos o requerimientos de espacio, consumo de energía, o
compatibilidad con dispositivos de expansión. Se recomienda ampliamente brindarle material de
consulta, bibliográfica o como recurso en línea, sobre las diferentes aplicaciones de la tecnología
embebida en el campo de la informática, proyectos desarrollados con la plataforma y las
herramientas de hardware y software que permiten el intercambio de datos entre dispositivos
electrónicos y sistemas informáticos.
EVALUACIÓN
CRITERIOS/INDICADORES EXCELENTE BUENO SUFICIENTE INSUFICIENTE
(21 Puntos) (0 Puntos)
IDENTIFICACIÓN DE (25 Puntos) (18 Puntos)
COMPONENTES El alumno realiza la El alumno no realiza la
ELEMENTALES El alumno realiza identificación de al menos el El alumno realiza la identificación de los
correctamente la identificación entre el 90% componentes mostrados
IDETIFICACIÓN DE identificación de TODOS los 90% de los componentes en el procedimiento, o
COMPONENTES componentes mostrados en mostrados en el y el 80% de los bien lo realiza en las 4
PARTICULARES el procedimiento en todas las componentes mostrados tarjetas pero en forma
tarjetas Arduino indicadas en procedimiento en al menos 3 en el procedimiento en al
CUADRO de las 4 tarjetas Arduino menos 2 de las 4 tarjetas incorrecta.
COMPARATIVO DE las pruebas. indicadas en las pruebas. Arduino indicadas en las
El alumno no identifica los
TARJETAS El alumno investiga e El alumno identifica algunos pruebas. componentes que no se
ARDUINO® identifica correctamente los de los componentes que no
El alumno se limita a la muestran en el
REPORTE DE componentes que no se se muestran en el identificación de los procedimiento, pero que
PRÁCTICA muestran en el procedimiento, pero que forman parte de las tarjetas
forman parte de las tarjetas componentes que no se de gama alta (MEGA Y
procedimiento, pero que de gama alta (MEGA y DUE) muestran en el
forman parte de las tarjetas y especifica algunas de sus DUE)
de gama alta (MEGA y DUE) funciones y/o aplicaciones procedimiento, pero que
y especifica sus funciones y/o forman parte de las El cuadro comparativo
El cuadro comparativo cubre al menos del 84% de
aplicaciones. cubre al menos el 90% de los tarjetas de gama alta los elementos del apartado
EL cuadro comparativo (MEGA y DUE).
muestra todos los elementos y elementos del apartado EXCELENTE.
parámetros de las tarjetas EXCELENTE. El cuadro comparativo
cubre al menos el 85% de El alumno utiliza el formato
Arduino: El alumno utiliza el formato de prácticas suministrado
Velocidad de de prácticas suministrado los elementos del
Procesamientos, Entradas y por el docente, al menos el apartado EXCELENTE. por el docente, pero
Salidas, Puntos de Suministro 80% las secciones están menos del 50% de las
de Energía, Pines Analógicos, El alumno utiliza el formato
No. de Interrupciones, correctamente de prácticas suministrado secciones están
Tamaño de Datos, CPU, documentadas, sus por el docente, al menos correctamente
Protocolos de Comunicación, evidencias y resultados son el 60% las secciones están documentadas, sus
Aplicaciones. claros y siguen las evidencias y resultados son
especificaciones de formato. correctamente imprecisos, y no se siguen
El alumno utiliza el formato de documentadas, sus las especificaciones de
prácticas suministrado por el evidencias y resultados son
docente, todas las secciones poco claros, aunque formato.
siguen las especificaciones
están correctamente
documentadas, sus de formato.
evidencias y resultados son
claros y siguen las
especificaciones del formato.
BIBLIOGRAFÍA
Arduino: Sitio Oficial. (27 de Junio de 2016). Obtenido de https://www.arduino.cc
Fitzgerald, S., Shiloh, M., & Igoe, T. (2013). Arduino Projects Book. Torino, Italia: Arduino LCC.
Lajarra Vizcaíno, J. R., & Pelegrí Sebastiá, J. (2014). Sistemas Integrados con Arduino (Primera ed.).
México, DF: Alfaomega.
Tojeiro Calaza, G. (2015). Taller de Arduino: Un Enfoque Práctico Para Principiantes. Mexico, DF:
Alfaomega.
Torrente Artero, Ó. (2013). Arduino: Curso Práctico de Formación. México, DF: Alfaomega.
P á g i n a | 90
PRÁCTICA 5: SEÑALES DIGITALES DE SALIDA
INTRODUCCIÓN
VOLTAJE O TENSIÓN
En el estudio del fenómeno de la electricidad existe un concepto fundamental que es el de voltaje
entre dos puntos de un circuito eléctrico (también llamado “tensión”, “diferencia de potencial” o
“caída de potencial”). Expliquémoslo con un ejemplo:
Si entre dos puntos de un conductor no existe diferencia de cargas eléctricas, el voltaje entre ambos
puntos es cero. Si entre esos dos puntos aparece un desequilibrio de cargas (es decir, que en un punto
hay un exceso de cargas negativas y en el otro una ausencia de ellas), aparecerá un voltaje entre
ambos puntos, el cual será mayor a medida que la diferencia de cargas sea también mayor. Este
voltaje es el responsable de la generación del flujo de electrones entre los dos puntos del conductor.
No obstante, si los dos puntos tienen un desequilibrio de cargas entre sí pero están unidos mediante
un material no conductor (lo que se llama un material “aislante”), existirá un voltaje entre ellos pero
no habrá paso de electrones (es decir, no habrá electricidad).
Generalmente, se suele decir que el punto del circuito con mayor exceso de cargas positivas (o dicho
de otra forma: con mayor carencia de cargas negativas) es el que tiene el “potencial” más elevado,
y el punto con mayor exceso de cargas negativas es el que tiene el “potencial” más reducido. Pero
no olvidemos nunca que el voltaje siempre se mide entre dos puntos: no tiene sentido decir “el voltaje
en este punto”, sino “el voltaje en este punto respecto a este otro”; de ahí sus otros nombres de
“diferencia de potencial” o “caída de potencial”.
Así pues, como lo que utilizaremos siempre serán las diferencias de potencial relativas entre dos
puntos, el valor numérico absoluto de cada uno de ellos lo podremos asignar según nos convenga.
Es decir, aunque 5, 15 y 25 son valores absolutos diferentes, la diferencia de potencial entre un punto
que vale 25 y otro que vale 15, y la diferencia entre uno que vale 15 y otro que vale 5 da el mismo
resultado. Por este motivo, y por comodidad y facilidad en el cálculo, al punto del circuito con
potencial más reducido (el de mayor carga negativa, recordemos) se le suele dar un valor de
referencia igual a 0.
La unidad de medida del voltaje es el voltio (V), pero también podemos hablar de milivoltios (1 mV =
0,001 V), o de kilovoltios (1 kV = 1000 V). Los valores típicos en proyectos de electrónica casera […] son
de 1,5 V, 3,3 V, 5 V... aunque cuando intervienen elementos mecánicos (como motores) u otros
elementos complejos, se necesitará aportar algo más de energía al circuito, por lo que los valores
suelen algo mayores: 9 V, 12 V o incluso 24 V. En todo caso, es importante tener en cuenta que valores
más allá de 40 V pueden poner en riesgo nuestra vida si no tomamos las precauciones adecuadas.
P á g i n a | 91
IMAGEN 135: REPRESENTACÓN GRÁFICA DEL VOLTAJE
INTENSIDAD DE CORRIENTE ELÉCTRICA
La intensidad de corriente (comúnmente llamada “corriente”) es una magnitud eléctrica que se
define como la cantidad de carga eléctrica que pasa en un determinado tiempo a través de un
punto concreto de un material conductor. Podemos imaginar que la intensidad de corriente es similar
en cierto sentido al caudal de agua que circula por una tubería: que pase más o menos cantidad de
agua por la tubería en un determinado tiempo sería análogo a que pase más o menos cantidad de
electrones por un cable eléctrico en ese mismo tiempo.
Su unidad de medida es el amperio O ampere (A), pero también podemos hablar de mili amperios (1
mA = 0,001 A), de micro amperios (1 μA = 0,001 mA), o incluso de nano amperios (1 nA = 0,001 μA).
IMAGEN 136: REPRESENTACIÓN GRÁFICA DE LA CORRIENTE ELÉCTRICA
RESISTENCIA ELÉCTRICA
Se le denomina resistencia eléctrica a la igualdad de oposición que tienen los electrones al moverse
a través de un conductor. La unidad de resistencia en el Sistema Internacional es el ohmio, que se
representa con la letra griega omega (Ω), en honor al físico alemán Georg Ohm, quien descubrió el
principio que ahora lleva su nombre. Descubierta por Georg Ohm en 1827, la resistencia eléctrica
tiene un parecido conceptual con la fricción en la física mecánica. La unidad de la resistencia en el
Sistema Internacional de Unidades es el ohmio (Ω). Para su medición, en la práctica existen diversos
métodos, entre los que se encuentra el uso de un ohmnímetro. Además, su cantidad recíproca es la
conductancia, medida en Siemens.
P á g i n a | 92
IMAGEN 137: REPRESENTACIÓN GRÁFICA DE LA RESISTENCIA ELÉCTRICA (DE IZQ. A DER. VOLTAJE, RESISTENCIA Y CORRIENTE)
SEÑAL DIGITAL
Señal digital es aquella que solo tiene un número finito de valores posibles (lo que se suele llamar
“tener valores discretos”). Un caso particular de señal digital es la señal binaria, donde el número de
valores posible solo es 2. Conocer este tipo de señales es importante porque en la electrónica es muy
habitual trabajar con voltajes (o intensidades) con tan solo dos valores. En estos casos, uno de los
valores del voltaje binario suele ser 0 – o un valor aproximado- para indicar precisamente la ausencia
de voltaje, y el otro valor puede ser cualquiera, pero lo suficientemente distinguible del 0 como para
indicar son ambigüedades la presencia de señal. De esta forma, un valor del voltaje binario siempre
identifica el estado “no pasa corriente” (también llamado estado “apagado” -“off” en inglés-, BAJO
-LOW en inglés-, o “0”) y el otro valor siempre identifica el estado “pasa corriente” (también llamado
estado “encendido” -“on” en inglés-, ALTO -HIGH en inglés-, o “1”).
IMAGEN 138: PULSO O SEÑAL DIGITAL
DIODO EMISOR DE LUZ (LED)
El LED, acrónimo de “Light Emitting Diode”, o diodo emisor de luz de estado sólido (solid state),
constituye un tipo especial de semiconductor, cuya característica principal es convertir en luz la
corriente eléctrica de bajo voltaje que atraviesa su chip. Desde el punto de vista físico un LED común
se presenta como un bulbo miniaturizado, carente de filamento o de cualquier otro tipo de elemento
o material peligroso, con la ventaja sobre otras tecnologías que no contamina el medio ambiente.
En sus inicios el principal uso del primer diodo LED de luz visible de color rojo que se comercializó estuvo
limitado a indicar solamente si un equipo o aparato eléctrico o electrónico se encontraba conectado
P á g i n a | 93
a la fuente de suministro de corriente eléctrica, o en funcionamiento. Posteriormente este diodo
comenzó a formar parte también de paneles informativos, aunque en sus inicios su uso estuvo muy
limitado a otras aplicaciones prácticas debido a la escasa variedad de colores disponibles y su baja
eficiencia lumínica.
En la actualidad los nuevos materiales desarrollados por los investigadores han permitido que se
puedan reproducir todos los colores del espectro electromagnético visibles al ojo humano incluyendo
el blanco, y los no visibles como el infrarrojo (IR) y el ultravioleta (UV). Al mismo tiempo se ha
incrementado en varias veces la eficiencia lumínica de los LED’s hasta tal punto que hoy en día
pueden llegar a superar en algunos casos la iluminación que normalmente proporciona una lámpara
incandescente de más potencia en Watts (W).
El color que emite cada diodo LED en particular depende principalmente del material semiconductor
que se haya empleado en su fabricación. Cada compuesto químico propio del material
semiconductor utilizado en la fabricación de un diodo LED permite la emisión de una luz de un color
específico, correspondiente a una determinada longitud de onda del espectro electromagnético.
IMAGEN 139: DIODOS EMISORES DE LUZ (LED) CONVENCIONALES
RESISTOR O RESISTENCIA
Se denomina resistor al componente electrónico diseñado para introducir una resistencia eléctrica
determinada entre dos puntos de un circuito eléctrico. En el propio argot eléctrico y electrónico, son
conocidos simplemente como resistencias. En otros casos, como en las planchas, calentadores, etc.,
se emplean resistencias para producir calor aprovechando el efecto Joule.
Es un material formado por carbón y otros elementos resistivos para disminuir la corriente que pasa. Se
opone al paso de la corriente. La corriente máxima y diferencia de potencial máxima en un resistor
viene condicionada por la máxima potencia que pueda disipar su cuerpo. Esta potencia se puede
identificar visualmente a partir del diámetro sin que sea necesaria otra indicación. Los valores más
comunes son 0,25 W, 0,5 W y 1 W.
P á g i n a | 94
IMAGEN 140: RESISTENCIA DE CARBÓN
BUZZER O PIEZOELÉCTRICO
Zumbador, buzzer en inglés, es un transductor electroacústico que produce un sonido o zumbido
continuo o intermitente de un mismo tono (generalmente agudo). Sirve como mecanismo de
señalización o aviso y se utiliza en múltiples sistemas, como en automóviles o en electrodomésticos,
incluidos los despertadores. Inicialmente este dispositivo estaba basado en un sistema
electromecánico que era similar a una campana eléctrica pero sin el badajo metálico, el cual
imitaba el sonido de una campana.
Su construcción consta de dos elementos, un electroimán o disco piezoeléctrico y una lámina
metálica de acero. El zumbador puede ser conectado a circuitos integrados especiales para así
lograr distintos tonos. Cuando se acciona, la corriente pasa por la bobina del electroimán y produce
un campo magnético variable que hace vibrar la lámina de acero sobre la armadura, o bien, la
corriente pasa por el disco piezoeléctrico haciéndolo entrar en resonancia eléctrica y produciendo
ultrasonidos que son amplificados por la lámina de acero.
IMAGEN 141: EJEMPLO DE BUZZER O ZUMBADOR
P á g i n a | 95
OBJETIVO:
Implementar sketches en Arduino® que permitan enviar señales digitales de salida y se reflejen en
componentes electrónicos emisores de luz, electromecánicos o piezoeléctricos.
METODOLOGÍA:
Analizar las estructuras básicas de un sketch de Arduino
o Función void setup
o Función void loop
o Comando para líneas y/o bloques comentados
Analizar las instrucciones básicas de configuración y establecimiento de señales digitales y
retardos
o Función pinMode
o Función digitalWrite
o Función delay
Programar un sketch de prueba elemental de encendido y apagado del led de testigo del pin
13.
Aplicar lo desarrollado anteriormente combinando distintos elementos
o Diodos Emisores de Luz
o Buzzer o Piezoeléctrico
Programar un sketch para configurar dos o más salidas de tipo digital
Realizar las anotaciones necesarias
Realizar las pruebas sugeridas
RECURSOS MATERIALES Y EQUIPO NECESARIO:
1 Arduino UNO REV 3 (Original o Genérica) con cable USB
2 LED (Cualquier color)
1 Buzzer o Piezoeléctrico
2 Resistores de 200 Ω
Protoboard (Cualquier Tamaño)
Cables Conductores (Dupont M-M) o alambre estañado calibre 22
IDE de Arduino
CORRESPONDENCIA CON LA ASIGNATURA:
UNIDAD NOMBRE TEMA(S) Y ACTIVIDADES, COMPETENCIAS U
5 SUBTEMA(S) OBJETIVOS
ARQUITECTURAS
EMBEBIDAS O 5.3 – Características Analizar el conjunto de terminales y
y uso de elementos sus señales de interfaz con que
MICROCONTROLADORES cuenta un microcontrolador
(MCU’s) del seleccionado.
microcontrolador
Realizar las configuraciones
necesarias para generar señales
digitales de salida
P á g i n a | 96
DESARROLLO DE LA PRÁCTICA
PRUEBA 1: ENCENDIDO Y APAGADO DEL LED DEL PIN 13
En esta prueba, se analizarán la estructura elemental de un sketch en Arduino, así como las funciones
de configuración de pines digitales y de activación/desactivación de señales de la misma naturaleza
sobre un pin designado. Para ello se requieren los siguientes materiales:
ARDUINO® UNO R3 CABLE USB A A USB B IDE DE ARDUINO
IMAGEN 142: MATERIALES PARA LA PRÁCTICA 2, PRUEBA 1
El programa a realizar deberá seguir el siguiente diagrama de flujo:
IMAGEN 143: DIAGRAMA DE FUJO DE LA PRUEBA 1
PASO 1: En una ventana nueva del IDE, realizar las configuraciones de tarjeta y de puerto COM
correspondientes a la tarjeta de trabajo al conectarla a u puerto USB.
P á g i n a | 97
La primera estructura a la vista es la siguiente:
IMAGEN 144: FUNCIÓN VOID SETUP ( )
La estructura void setup () es la encargada de indicar al bootloader o “intérprete” de las tarjetas
Arduino® la configuración que tendrán sus pines, su comportamiento, la inicialización de funciones
específicas, de objetos, etc. Ésta se ejecuta una sola vez, y cada vez que se un reseteo manual o se
conecte nuevamente la energía eléctrica por medio del plug.
NOTA: En la imagen 59, se escribieron una serie de líneas con doble diagonal (//); esto se hace con la
finalidad de que todo aquello después de ellas sea tratada como un “comentario” o línea
comentada. Son útiles para realizar anotaciones o descripciones del código, en especial cuando no
se tienen nociones básicas de programación; para no confundirlas con sentencias o funciones del
programa, se destacan en un color gris claro. Cuando se ejecuta la función de compilación, el IDE
ignora todo comentario escrito.
La siguiente estructura es la siguiente:
IMAGEN 145: FUNCIÓN VOID LOOP
P á g i n a | 98
La función void loop () es la equivalente de la función main de los lenguajes de programación
basados en C (como C++ o Java): indicar la función principal del programa o el cuerpo del mismo.
Dentro de ella todas las funciones que se desea que la tarjeta ejecute, realice o supervise se indican
o se escriben dentro de sus llaves. A diferencia de la función void setup (), ésta se ejecuta de forma
“infinita” (en realidad, es un ciclo infinito, dado que no tiene los elementos propios para indicar una
detención de la ejecución). Esto no significa una falla de fabricación o un error de programación, sino
que cumple con la naturaleza primordial de los microcontroladores: ejecutar pocas tareas de forma
repetitiva.
NOTA: En la imagen 60, se muestran una serie de líneas que describen las características de la función,
se hallan comentadas pero no se hace uso de “//” como en la imagen 59. Otro método para
comentar bloques de código o múltiples líneas es con el uso de diagonales y asteriscos (“/*” y “*/”,
inicio de bloque y fin de bloque, respectivamente). Mediante este método, se evita el uso de “//” de
forma múltiple.
PASO 2: Dentro de la función void setup () declarar la siguiente instrucción:
IMAGEN 146: FUNCIÓN PINMODE
La función pinMode () indica al bootloader o compilador qué pin vamos a configurar, sea de forma
numérica o mediante el uso de variables o constantes (consulte el FAQ para conocer diferentes
formas de declarar pines en Arduino®) y de qué naturaleza será. La estructura de la función se
muestra en la imagen siguiente:
IMAGEN 147: ESTRUCTURA Y ARGUMENTOS DE LA FUNCIÓN PINMODE
NOTA: Tanto la palabra pinMode, así como la palabra OUTPUT se marcan con colores específicos, esto
es para que el programador identifique si lo que escribe son FUNCIONES ESPECÍFICAS (que se destacan
en color NARANJA si son funciones reconocibles de Arduino, o VERDE LIMA OSCURO para algunas
funciones propias del lenguaje C) o si son PARÁMETROS (destacados en color TURQUESA) o si son líneas
de código regular (en color NEGRO); esto es útil sobre todo para evitar conflictos cuando se escriben
nombres para objetos, variables, constantes, llamados a función u otros que estén reservados
exclusivamente por el compilador. Preste atención a los colores que se lleguen a destacar en cada
una de las líneas o palabras que escriba para evitar problemas de compilación.
P á g i n a | 99
De acuerdo a la estructura indicada, damos instrucciones al compilador que el pin número 13 de la
tarjeta se comporte como SALIDA DIGITAL, por lo que únicamente mostrará valores lógicos como 1’s
y 0’s, VERDADERO o FALSO o ENCENDIDO o APAGADO.
IMAGEN 148: DECLARACIÓN DEL PIN 13 COMO SALIDA DIGITAL
IMAGEN 149: PIN A CONFIGURAR COMO SALIDA
PASO 3: Dentro de la función void loop () declarar la siguiente instrucción:
IMAGEN 150: FUNCIÓN DIGITALWRITE
P á g i n a | 100
La función digitalWrite() se traduce como ‘escritura digital’; en otras palabras, indica al compilador
que el pin que estamos indicando de forma numérica en el primer argumento se envíe un valor lógico
indicado en el segundo argumento. La estructura de la función se muestra a continuación:
IMAGEN 151: ESTRUCTURA Y ARGUMENTOS DE LA FUNCIÓN DIGITALWRITE
De acuerdo al formato, se está indicando que al pin número 13 se envíe un valor ALTO (HIGH: 1 lógico).
PASO 4: Escribir debajo de la función digitalWrite () la siguiente instrucción:
IMAGEN 152: FUNCIÓN DELAY
La función delay() es utilizada para inducir un ‘retardo’ entre la instrucción anterior y la instrucción
siguiente. Los retardos se colocan cuando interesa que un proceso o función se demore un periodo
de tiempo, y que éste se prolongue, en otros esto es indeseables y se procura que el retardo sea lo
menor posible. Esto va a depender del proceso, del sistema o el elemento, así como su velocidad de
lectura. Su estructura es la siguiente:
IMAGEN 153: ESTRUCTUTRA Y ARGUMENTOS DE LA FUNCIÓN DELAY
En este ejemplo indicamos al compilador que se detenga por un periodo de 500 milisegundos, es
decir, medio segundo se mantendrá el valor ALTO del pin 13.
P á g i n a | 101
NOTA: La función delay() detiene la ejecución del programa según el tiempo indicado, como se
mencionó anteriormente; esto implica que, mientras ese lapso no se acabe, no se pueden realizar o
ejecutar otras funciones en forma paralela. Esto se debe a que la programación y/o ejecución de los
programas de Arduino®, así como la de otros microcontroladores o plataformas basados en ellos, son
de tipo SECUENCIAL, es decir, no se puede leer y ejecutar una nueva instrucción hasta que no se
culmine la que esté en proceso. Tenga cuidado con los valores numéricos que se declaren dentro de
delay().
PASO 5: Escribir un nuevo digitalWrite() con el valor LOW y un nuevo delay() con el valor del anterior:
IMAGEN 154: PROGRAMA COMPLETO DE LA PRUEBA 1
Deduciendo la estructura del programa, enviaremos un valor ALTO al pin 13, se mantendrá medio
segundo activado, después se enviará un valor BAJO (0 Lógico o Apagado) y así se mantendrá así
por otro medio segundo. Esto quiere decir que el pin conmutará entre ALTO y BAJO una vez por
segundo.
P á g i n a | 102
IMAGEN 155: LED TESTIGO DEL PIN 13 AL MOMENTO DEL NIVEL ALTO
IMAGEN 156: LED TESTIGO DEL PIN 13 AL MOMENTO DEL NIVEL BAJO
PRUEBA SUGERIDA: Experimente reduciendo o aumentando el valor de las funciones delay() dentro
del programa y observe lo que ocurre.
PRUEBA 2: CONECTANDO UN LED AL PIN 13
En esta prueba, se utilizará el programa de la Prueba 1, y se adicionará un LED conectado en un
protoboard. Los materiales son los siguientes:
P á g i n a | 103
ARDUINO® UNO R3 CABLE USB A A USB B LED (CUALQUIER COLOR)
RESISTOR DE 220 Ω O 330 Ω PROTOBOARD CABLES DUPONT (JUMPERS) DOBLE MACHO
IDE DE ARDUINO
IMAGEN 157: MATERIALES PARA LA PRUEBA 2
PASO 1: Implementar el siguiente diagrama:
IMAGEN 158: DIAGRAMA 1, PRUEBA 2
P á g i n a | 104
NOTA: En el esquema anterior se utilizó una resistencia de 220 Ω y un LED verde; la resistencia puede
ser sustituida de igual manera por una de 330 Ω, y el color del LED es indistinto.
Los elementos del circuito son los siguientes:
El protoboard luce de la siguiente manera:
IMAGEN 159: EJEMPLO DE PROTOBOARD CONVENCIONAL
Los protoboards, tablillas de experimentación o DE prototipado permiten conectar circuitos
electrónicos sin necesidad de soldarlos. Dentro de ellos existen una serie de placas metálicas que
permiten las conexiones en serie o paralelo, y éstas se hallan distribuidas uniformemente: como se
muestra en la imagen 76:
IMAGEN 160: DISTRIBUCIÓN DE LAS LÁMINAS DE CONEXIÓN DE UN PROTOBOARD: PLACAS DE ENERGÍA (POWER RAILS) Y
LÁMINAS DE COMPONENTES (COMPONENT RAILS)
P á g i n a | 105
PASO 2: Mediante un cable dupont o Jumper, conectar uno de los pines GND de la tarjeta desde uno
de los puntos de GND de la tarjeta hacia la línea de energía azul, como se muestra en la imagen 78:
IMAGEN 161: SUMINISTRO DE TIERRA (GND) DE LA TARJETA HACIA EL PROTOBOARD
La resistencia limitadora puede tener las siguientes combinaciones de colores:
IMAGEN 162: RESISTENCIAS LIMITADORAS ÚTILES (IZQ: 220 Ω, DER: 330 Ω)
La resistencia limitadora evitará que el LED se dañe al ser conectado directamente al pin de salida
del pin 13; las resistencias son elementos pasivos que no tienen polaridad, es decir, que no importa el
sentido de la conexión al conectarlo. Consulte la sección de ANEXOS para consultar los valores de
resistencias comerciales y el código de colores de resistencias para conocer más detalles de cómo
determinar el valor resistivo nominal.
P á g i n a | 106
El símbolo de las resistencias en norma ANSI y norma IEC son los siguientes:
IMAGEN 163: SÍMBOLOS ELÉCTRICOS PARA RESISTENCIAS, NORMA ANSI (IZQ.) Y NORMA IEC (DER.)
Para el LED, la distribución de sus terminales y sus nombres se designan de la siguiente manera:
IMAGEN 164: SÍMBOLO ELÉCTRICO DE UN LED, TERMINALES Y FORMA FÍSICA
El LED es un componente semiconductor capaz de emitir luz cuando se le conecta a la corriente
eléctrica. Derivado de ello, es un componente activo polarizado, es decir, tiene una terminal que
debe conectarse hacia positivo (llamada Ánodo [Anode]) y otra que debe conectarse a negativo
(llamada Cátodo [Cathode]). El ánodo se conectará en serie con la resistencia para evitar que la
unión semiconductora del LED (que permite la conducción y la emisión de luz) se dañe o se queme.
PASO 3: Mediante otro cable dupont conectar desde el pin 13 hacia a una pista cualquiera, para
que haga conexión con la resistencia y el LED. El circuito conectado, o llamado formalmente como
prototipado, se muestra en la imagen 82:
P á g i n a | 107
IMAGEN 165: PROTOTIPADO DEL DIAGRAMA 1, PRUEBA 2
P á g i n a | 108
Al conectar el cable USB a la PC nuevamente, el mismo comportamiento observado en el LED de
testigo 13 se verá reflejado en el LED que acaba de conectar. Consulte el FAQ para solucionar
problemas comunes de conexión.
IMAGEN 166: LED ENCENDIDO ANTE EL NIVEL ALTO EN EL PIN 13
IMAGEN 167: LED APAGADO ANTE EL NIVEL BAJO EN EL PIN 13
P á g i n a | 109
PRUEBA 3: CONFIGURACIÓN DE DOS PINES DE SALIDA PARA UN LED Y UN BUZZER O ZUMBADOR
Para esta prueba, se requiere el siguiente material:
ARDUINO® UNO R3 CABLE USB A A USB B LED (CUALQUIER COLOR)
RESISTOR DE 220 Ω O 330 Ω PROTOBOARD CABLES DUPONT (JUMPERS) DOBLE MACHO
BUZZER O ZUMBADOR ACTIVO 5V IDE DE ARDUINO
IMAGEN 168: MATERIALES PARA LA PRUEBA 3
El diagrama de flujo a implementar será el siguiente:
INICIO
ENCENDER Y APAGAR
LED 2 VECES
ESPERAR 1
SEGUNDO
ENCENDER Y APAGAR
BUZZER 2 VECES
ESPERAR 1
SEGUNDO
IMAGEN 169: DIAGRAMA DE FLUJO, PRUEBA 3
P á g i n a | 110
PASO 1: Implementar el siguiente circuito:
IMAGEN 170: DIAGRAMA 2, PRUEBA 3
El elemento nuevo es el buzzer o zumbador. La forma física y los símbolos eléctricos se muestran en la
imagen 88:
IMAGEN 171: SÍMBOLOS ELÉCTRICOS COMUNES Y FORMA FÍSICA DE UN BUZZER O ZUMBADOR
NOTA: Todos los buzzers señalan cuál de sus pines es la terminal positiva, ya sea en la parte plástica o
mediante un cable de extensión rojo; si se conecta incorrectamente el componente se dañará.
Consulte el FAQ para conocer más detalles. El circuito conectado se muestra en la imagen 89:
P á g i n a | 111
IMAGEN 172: PROTOTIPADO DEL DIAGRAMA 2, PRUEBA 3
P á g i n a | 112
La intermitencia puede realizarse de diferentes formas y a cualquier velocidad. Como ejemplo, se
utilizarán dos ciclos for, uno que controla al LED y otro que controla al buzzer.
Un ciclo tipo for es una función de bucle o repetición de un fenómeno finito si una condición de
repetición se cumple. Los elementos y argumentos del ciclo son los siguientes:
IMAGEN 173: ESTRUCTURA DE UN CICLO FOR
El código en el IDE de Arduino utilizando ciclos for puede ser ejecutado de la siguiente manera:
P á g i n a | 113
IMAGEN 174: EJEMPLO DE CÓDIGO PARA EJECUTAR EL DIAGRAMA DE FLUJO DE LA PRUEBA 3
El comportamiento en la tarjeta debe ser similar a lo mostrado en la imagen siguiente:
IMAGEN 175: IMPLEMENTACIÓN DE LA PRUEBA 3, LED ENCENDIDO
IMAGEN 176: IMPLEMENTACIÓN DE LA PRUEBA 3, BUZZER ENCENDIDO
P á g i n a | 114
En las imágenes 92 y 93, se muestran el encendido del LED en un instante. En la segunda imagen se
agregó un LED para mostrar la activación del buzzer, el cual debe emitir un sonido cuando se le envía
la señal correspondiente.
PRUEBAS A EJECUTAR POR PARTE DEL ALUMNO
PRUEBA 4 Semáforo simple con vuelta a la izquierda
PRUEBA 5 Realizar un sketch en Arduino que permita encender tres LED’s con la lógica de
PRUEBA 6 funcionamiento de un semáforo simple y el indicador de vuelta a la izquierda. El proceso
inicia con el encendido del VERDE.
Semáforo doble con vuelta a la izquierda
Realizar un sketch en Arduino que permita encender 8 LED’s con la lógica de dos semáforos con
cruce con indicador de vuelta a la izquierda. Uno de ellos encenderá con la lógica normal
mientras que el otro se mantiene en ROJO. Cuando el primero encienda el color ROJO, el
segundo iniciará el ciclo normal y el primero debe mantenerse en ROJO.
Semáforo doble con cruces peatonales
Realizar un sketch en Arduino que permita encender 10 LED’s con la lógica de dos
semáforos con cruce y, adicionalmente, con cruce de peatones; cuando uno de ellos
esté en ROJO, un LED debe indicar el paso peatonal en VERDE. Previo a que el semáforo
de paso a los automóviles, el cruce de peatones debe parpadear 4 veces; al colocarse
el semáforo en verde, el cruce peatonal debe estar en ROJO; dicho comportamiento
debe replicarse en el segundo semáforo.
RESULTADOS Y CONCLUSIONES
Al término de la práctica, el alumno será capaz de configurar y manipular salidas de tipo digital, útiles
para la activación y desactivación de indicadores de luz, sonoros o cualquier dispositivo actuador
mediante componentes electrónicos como transistores, relevadores, etc. Además, le servirá de base
para entender, desarrollas e implementar problemas referentes a circuitos combinacionales de uso
específico o de acuerdo a un problema concreto, aplicables en asignaturas de la carrera como
Matemáticas Discretas o Sistemas Electrónicos para Informática, Además, podrá trasladar los
conocimientos adquiridos y desencadenar acciones de acuerdo a la información vertida por
sensores, módulos de comunicación o de expansión.
P á g i n a | 115
EVALUACIÓN
CRITERIOS/INDICADORES EXCELENTE BUENO SUFICIENTE INSUFICIENTE
(20 Puntos) (17 Puntos) (14 Puntos) (5 Puntos)
EJECUCIÓN DE
PRUEBAS DE Se ejecutan Se ejecutan Se ejecutan Se ejecutan de forma
correctamente TODAS las adecuadamente adecuadamente parte regular o errónea buena
CONFIGURACIÓN pruebas de configuración TODAS las pruebas de parte de las pruebas de
BÁSICA de las pruebas de
solicitadas. configuración configuración configuración
solicitadas. solicitadas. solicitadas.
EJECUCIÓN DE La prueba se ejecuta
PRUEBA 4 correctamente y conforme La prueba se ejecuta La prueba se ejecuta La prueba presenta
adecuadamente, adecuadamente, múltiples fallas en la
a la lógica o lógica o requerimientos
requerimientos solicitados conforme a la lógica o aunque se presentan 3
requerimientos fallas en la lógica o solicitados en el
en el problema. solicitados en el requerimientos problema o no se lleva a
solicitados en el
EJECUCIÓN DE La prueba se ejecuta problema, presentado problema. cabo.
PRUEBA 5 correctamente y conforme al menos 2 fallas La prueba se ejecuta
adecuadamente, La prueba presenta
a la lógica o La prueba se ejecuta múltiples fallas en la
requerimientos solicitados adecuadamente, aunque se presentan 3 lógica o requerimientos
fallas en la lógica o
en el problema. conforme a la lógica o requerimientos solicitados en el
requerimientos solicitados en el problema o no se lleva a
EJECUCIÓN DE La prueba se ejecuta solicitados en el problema.
PRUEBA 6 correctamente y conforme La prueba se ejecuta cabo.
problema, presentado adecuadamente,
a la lógica o al menos 2 fallas La prueba presenta
requerimientos solicitados aunque se presentan 3 múltiples fallas en la
La prueba se ejecuta fallas en la lógica o lógica o requerimientos
en el problema. adecuadamente, requerimientos
solicitados en el solicitados en el
REPORTE DE El alumno utiliza el formato conforme a la lógica o problema. problema o no se lleva a
PRÁCTICA de prácticas suministrado requerimientos El alumno utiliza el
por el docente, todas las solicitados en el formato de prácticas cabo.
suministrado por el
secciones están problema, presentado docente, al menos el El alumno utiliza el
correctamente al menos 2 fallas formato de prácticas
documentadas, sus 60% las secciones están
evidencias y resultados son El alumno utiliza el correctamente suministrado por el
claros y siguen las formato de prácticas docente, pero menos
especificaciones del documentadas, sus del 50% de las secciones
suministrado por el evidencias y resultados están correctamente
formato. docente, al menos el son poco claros, aunque
80% las secciones están documentadas, sus
siguen las evidencias y resultados
correctamente especificaciones de son imprecisos, y no se
documentadas, sus
evidencias y resultados formato. siguen las
son claros y siguen las especificaciones de
especificaciones de
formato.
formato.
BIBLIOGRAFÍA
Arduino: Sitio Oficial. (27 de Junio de 2016). Obtenido de https://www.arduino.cc
Fitzgerald, S., Shiloh, M., & Igoe, T. (2013). Arduino Projects Book. Torino, Italia: Arduino LCC.
Lajarra Vizcaíno, J. R., & Pelegrí Sebastiá, J. (2014). Sistemas Integrados con Arduino (Primera
ed.). México, DF: Alfaomega.
Tojeiro Calaza, G. (2015). Taller de Arduino: Un Enfoque Práctico Para Principiantes. Mexico,
DF: Alfaomega.
Torrente Artero, Ó. (2013). Arduino: Curso Práctico de Formación. México, DF: Alfaomega.
P á g i n a | 116
PRÁCTICA 6: SEÑALES DIGITALES DE ENTRADA
INTRODUCCIÓN
BOTONES
Un botón o pulsador es utilizado para activar alguna función. Los botones son por lo general
activados al ser pulsados, normalmente con un dedo. Un botón de un dispositivo electrónico
funciona por lo general como un interruptor eléctrico, es decir en su interior tiene dos
contactos, si es un dispositivo NA (normalmente abierto) o NC (normalmente cerrado), con lo
que al pulsarlo se activará la función inversa de la que en ese momento este realizando.
IMAGEN 177: MODELOS DE BOTONES PULSADORES Y SÍMBOLOS ELÉCTRICOS
CONFIGURACIÓN DE RESISTENCIAS EN PULL – UP Y PULL DOWN
Muchas veces, los circuitos eléctricos tienen “entradas” por las que reciben una señal
eléctrica del exterior (de tipo binario) que no tiene nada que ver con la señal de alimentación
obtenida de la fuente. Estas señales externas pueden servir para multitud de cosas: para
activar o desactivar partes del circuito, para enviar al circuito información de su entorno, etc.
Las resistencias “pull-up” (y “pull-down”) son resistencias normales, solo que llevan ese nombre
por la función que cumplen: sirven para asumir un valor por defecto de la señal recibida en
una entrada del circuito cuando por ella no se detecta ningún valor concreto (ni ALTO ni
BAJO), que es lo que ocurre cuando la entrada no está conectada a nada (es decir, está “al
aire”). Así pues, este tipo de resistencias aseguran que los valores binarios recibidos no fluctúan
sin sentido en ausencia de señal de entrada.
En las resistencias “pull-up” el valor que se asume por defecto cuando no hay ningún
dispositivo externo emisor de señal conectado a la entrada es ALTO y en las “pull-down” es el
valor BAJO, pero ambas persiguen el mismo objetivo, así que la elección de una resistencia
de tipo “pull-up” o “pull-down” dependerá de las circunstancias particulares de nuestro
montaje. La diferencia entre unas y otras está en su ubicación dentro del circuito: las
resistencias “pull-up” se conectan directamente a la fuente de señal externa y las “pull-down”
directamente a tierra
P á g i n a | 117
IMAGEN 178: CONFIGURACIÓN DE BOTONES Y RESISTENCIAS PARA ENTRADAS DIGITALES
P á g i n a | 118
OBJETIVO:
Implementar sketches en Arduino® que permitan leer señales digitales por medio de botones
pulsadores u otras tarjetas, para desencadenar o reflejar comportamientos con salidas
digitales hacia diodos emisores de luz (LED) o piezoeléctricos.
METODOLOGÍA
Analizar las instrucciones básicas para leer señales digitales
o Función digitalRead
Aplicar los conocimientos adquiridos en la práctica anterior para implementar
problemas sencillos de electrónica digital combinacional.
o Entradas digitales
Con botones pulsadores
Con pines digitales de otra tarjeta Arduino®
o Compuertas lógicas
AND
OR
NOT
XOR
o Circuitos combinacionales básicos
Realizar las combinaciones necesarias
Realizar las pruebas sugeridas
RECURSOS MATERIALES Y EQUIPO NECESARIO
1 Arduino® UNO REV 3 (Original o Genérica) con cable USB
2 LED (Cualquier color)
1 Buzzer o piezoeléctrico
2 Resistores de 220 Ω O 330 Ω
2 Botones Pulsadores Normalmente Abiertos
2 Resistencias de 10KΩ
Protoboard (Cualquier Tamaño)
Cables Conductores (Dupont M-M) o alambre estañado calibre 22
IDE de Arduino®
CORRESPONDENCIA CON LA ASIGNATURA:
UNIDAD NOMBRE TEMA(S) Y ACTIVIDADES, COMPETENCIAS U
5 SUBTEMA(S) OBJETIVOS
ARQUITECTURAS EMBEBIDAS
O MICROCONTROLADORES 5.3 – Características Analizar el conjunto de terminales
y uso de elementos y sus señales de interfaz con que
(MCU’s) del microcontrolador
cuenta un microcontrolador
seleccionado.
Realizar las configuraciones
necesarias para generar señales
digitales de salida
P á g i n a | 119
DESARROLLO DE LA PRÁCTICA
PRUEBA 1: ENCENDIDO Y APAGADO DEL PIN 13 MEDIANTE UN BOTÓN PULSADOR
En esta prueba, vamos a encender o apagar un LED conectado al pin número 13
dependiendo del estado de un botón pulsador. Para ello se necesitan los siguientes
materiales:
ARDUINO® UNO R3 CABLE USB A A USB B LED (CUALQUIER COLOR)
RESISTOR DE 220 Ω O 330 Ω PROTOBOARD CABLES DUPONT (JUMPERS) DOBLE MACHO
BOTÓN PULSADOR NA RESISTOR DE 10 KΩ IDE DE ARDUINO
El programa a realizar deberá seguir el siguiente diagrama de flujo:
INICIO
NO LEER ESTADO DEL SÍ
BOTÓN
APAGAR ENCENDER
LED SI EL BOTÓN ESTÁ LED
PRESIONADO
IMAGEN 179: DIAGRAMA DE FLUJO, PRUEBA 4
P á g i n a | 120
PASO 1: Implementar el siguiente circuito:
IMAGEN 180: DIAGRAMA 1, PRUEBA 1
Nótese que la conexión del botón es con configuración pull down, para que la tarjeta detecte
un estado BAJO (0 lógico) cuando el botón no esté presionado y un estado ALTO (1 Lógico)
cuando sea lo contrario. Las presentaciones de los botones pulsadores pueden variar, en la
imagen 98, 99 y 100 se muestran diferentes formas de conectar algunas variantes de conexión,
tanto con botones pulsadores como con interruptores en módulo dip switch:
IMAGEN 181: CONEXIÓN EQUIVALENTE DE BOTONES DE DOS TERMINALES
P á g i n a | 121
IMAGEN 182: CONEXIÓN EQUIVALENTE DE BOTONES DE CUATRO TERMINALES
IMAGEN 183: CONEXIÓN EQUIVALENTE DE BOTONES CON MÓDULO DIP SWITCH
P á g i n a | 122
El esquema de prototipado de acuerdo al diagrama es el siguiente:
IMAGEN 184: PROTOTIPADO DEL DIAGRAMA 1, PRUEBA 1
P á g i n a | 123
PASO 2: Implementar y configurar el código requerido de acuerdo al diagrama de flujo:
IMAGEN 185: SEGMENTO DE CÓDIGO DE CONFIGURACIÓN, PRUEBA 1
De acuerdo a la imagen 64, en el código dentro de la función void setup se están ocupando
los dos modos de pinMode: se declara el pin 7 como entrada mediante la palabra reservada
INPUT y el pin 12 como salida mediante la palabra correspondiente OUTPUT. Adicionalmente
se indica que al pin de salida se envíe un estado BAJO al inicio del código, el equivalente de
los valores de inicialización de variables o constantes utilizados en los lenguajes basados en C.
Previo al código principal, declarar la siguiente variable:
IMAGEN 186: VARIABLE DE ALMACENAMIENTO DE ESTADO DEL BOTÓN
Las variables tipo boolean o booleana soportan únicamente dos estados: true si el valor es un
1 lógico o false si el valor es un 0 lógico. Se pueden utilizar otros tipos de variables numéricas,
siendo la más recomendable una tipo int, la cual almacenaría el valor 1 o 0. Se mostrarán dos
ejemplos del código principal usando ambos tipos de variables.
Nota: dependiendo de dónde se declaren las variables en un programa, éstas se clasifican
en variables globales o variables locales. Tome especial cuidado en el sitio o segmento de
código en dónde declare variables.
P á g i n a | 124
IMAGEN 187: DECLARACIÓN DE LA VARIABLE DE ALMACENAMIENTO COMO GLOBAL
Posteriormente, en void loop colocar el siguiente código:
IMAGEN 188: SEGMENTO DE CÓDIGO PRINCIPAL DEL PROGRAMA DE LA PRUEBA 1
Analizando las funciones adicionales, la primera es digitalRead(), la cual es la solicitud para
leer el estado lógico de un pin digital designado en su argumento. La sintáxis de dicha función
es la siguiente:
P á g i n a | 125
IMAGEN 189: ESTRUCTURA Y SINTÁXIS DE LA FUNCIÓN DIGITALREAD
Se debe emplear un digitalRead por cada entrada digital que se deseé leer y todo de manera
consecutiva, es decir, cada función de lectura se debe hacer inmediatamente después de
otra y, como recomendación, las lecturas digitales de botones pulsadores, al ser de alta
prioridad en un proceso o evento, dado que no existe una sincronía o un momento definido
para que un accionamiento manual ocurra, se deben colocar al inicio del código.
Adicionalmente se ha agregado un delay después de haber hecho la lectura, con el fin de
brindar una demora pequeña para que al accionar el botón se mantenga fijo un estado
lógico, dado que el microcontrolador es capaz de detectar las pequeñas variaciones del
accionamiento mecánico.
La siguiente función a la vista es if y su complemento else; éstas son las funciones de tipo
condicional básicas en lenguaje C; la función de la primera es comparar una o varias
variables conforme condición simple o múltiple declarada en sus argumentos y, en caso de
cumplirse, se ejecuta el código dentro de sus llaves. La segunda función es una alternativa en
caso de que una condición de un if no se cumpla. Los diferentes modos y argumentos de una
función if y else se muestran a continuación:
P á g i n a | 126
IMAGEN 190: ESTRUCTURA Y SINTÁXIS DE LA FUNCIÓN IF
Cabe señalar que la función else se utiliza para ejecutar una acción cuando una o varias
condiciones no se cumplen a modo de “última alternativa”; a diferencia de if, no se abren
paréntesis dado que no contiene argumentos. En otros casos se utiliza la combinación else
if(), que forza a evaluar una condición cuando una o varias no se cumplen. Durante este
manual se utilizarán estas formas o variantes.
PASO 3: Subir el código a la tarjeta y observar lo que ocurre cuando se presiona el botón y
cuándo se suelta:
IMAGEN 191: LED ENCENDIDO AL PRESIONAR EL BOTÓN (IZQ.); BOTÓN APAGADO AL SOLTAR EL BOTÓN (DER.)
Es recomendable dejar un retardo de al menos 20 milisegundos inmediatamente después de
la función digitalRead(). Entre más grande sea su valor, más tiempo tardará la respuesta.
PRUEBA 2: PROGRAMACIÓN DE COMPUERTAS LÓGICAS
Para esta prueba se requiere los siguientes materiales:
ARDUINO® UNO R3 CABLE USB A A USB B LED (CUALQUIER COLOR)
P á g i n a | 127
RESISTOR DE 220 Ω O 330 Ω PROTOBOARD CABLES DUPONT (JUMPERS) DOBLE MACHO
2 BOTONES PULSADORES NA 2 RESISTORES DE 10 KΩ IDE DE ARDUINO
Las compuertas lógicas son la base de la electrónica digital combinacional, que incluye
aquellas operaciones cuyo resultado depende de las entradas que se le suministren y la lógica
booleana de su diseño. El esquema siguiente funcionará para todas las compuertas:
IMAGEN 192: DIAGRAMA 2, PRUEBA 2
PASO 1: Implementar el esquema de prototipado que se muestra a continuación:
P á g i n a | 128
IMAGEN 193: ESQUEMA DEL DIAGRAMA 2, PRUEBA 2
P á g i n a | 129
PASO 3: Implementar la función AND, que tiene el siguiente comportamiento:
IMAGEN 194: COMPUERTA LÓGICA AND, SÍMBOLO (IZQ.) TABLA DE VERDAD (CENTRO) Y FUNCIÓN BOOLEANA
(DER.)
El código en la tarjeta será siguiente:
IMAGEN 195: CÓDIGO PARA PRUEBA 2, FUNCIÓN AND
El comportamiento debe ser exactamente igual que la tabla de verdad mostrada en la
imagen 114 de la compuerta AND:
IMAGEN 196: PRUEBA DEL CÓDIGO DE LA PRUEBA 2, FUNCIÓN AND (AL MENOS UNA ENTRADA EN 0, IZQ., Y TODAS
EN 1, DER.)
P á g i n a | 130
PASO 4: Implementar la función OR, que tiene el siguiente comportamiento:
IMAGEN 197: COMPUERTA LÓGICA OR, SÍMBOLO (IZQ.) TABLA DE VERDAD (CENTRO) Y FUNCIÓN BOOLEANA (DER.)
El código en la tarjeta será siguiente:
IMAGEN 198: CÓDIGO PARA PRUEBA 2, FUNCIÓN OR
El comportamiento debe ser exactamente igual que la tabla de verdad mostrada en la
imagen 115 de la compuerta OR:
IMAGEN 199: PRUEBA DEL CÓDIGO DE LA PRUEBA 2, FUNCIÓN OR (CON TODAS LAS ENTRADAS EN 0, IZQ, Y AL
MENOS UNA EN 1, DER.)
P á g i n a | 131
PASO 5: Implementar la función NOT, que tiene el siguiente comportamiento:
IMAGEN 200: COMPUERTA LÓGICA NOT, SÍMBOLO (IZQ.) TABLA DE VERDAD (CENTRO) Y FUNCIÓN BOOLEANA
(DER.)
El código en la tarjeta será siguiente:
IMAGEN 201: CÓDIGO PARA PRUEBA 2, FUNCIÓN NOT
El comportamiento debe ser exactamente igual que la tabla de verdad mostrada en la
imagen 118 de la compuerta NOT:
IMAGEN 202: PRUEBA DEL CÓDIGO DE LA PRUEBA 2, FUNCIÓN NOT (AL ESTAR LA ENTRADA CON VALOR 1, IZQ., Y
AL ESTAR LA ENTRADA EN VALOR 0, DER.)
P á g i n a | 132
PASO 6: Implementar la función XOR, que tiene el siguiente comportamiento:
IMAGEN 203: COMPUERTA LÓGICA XOR, SÍMBOLO (IZQ.) TABLA DE VERDAD (CENTRO) Y FUNCIÓN BOOLEANA (DER.)
El código en la tarjeta será siguiente:
IMAGEN 204: CÓDIGO PARA PRUEBA 2, FUNCION XOR
El comportamiento debe ser exactamente igual que la tabla de verdad mostrada en la
imagen 120 de la compuerta XOR:
IMAGEN 205: PRUEBA DEL CÓDIGO DE LA PRUEBA 2, FUNCIÓN XOR (CUANDO LAS ENTRADAS SON IGUALES, IZQ, Y
CUANDO LAS ENTRADAS SON DIFERENTES, DER.)
P á g i n a | 133
PRUEBA 3: PRUEBA DE UN CIRCUITO COMBINACIONAL BÁSICO
Para esta prueba se requieren los siguientes materiales:
ARDUINO® UNO R3 CABLE USB A A USB B LED (CUALQUIER COLOR)
RESISTOR DE 220 Ω O 330 Ω PROTOBOARD CABLES DUPONT (JUMPERS) DOBLE MACHO
3 BOTONES PULSADORES NA 3 RESISTORES DE 10 KΩ IDE DE ARDUINO
Un circuito combinacional depende de sus entradas y la lógica booleana con la que esté
diseñado, sea para un propósito específico o bien de acuerdo a un comportamiento; en esta
prueba trabajaremos con la siguiente tabla de verdad, se simplificará con ayuda de un
software (Karnaugh Minimizer® ver 1.5 de ShurikSoft), se elaborará e circuito combinacional
con ayuda del software LogicLy® ver. 1.5.0 de Josh Tynjala) y por último se hará la
implementación en el IDE de Arduino®.
ABC f
000 0
001 0
010 0
011 1
100 0
101 1
110 1
111 0
TABLA 17: TABLA DE VERDAD PARA LA PRUEBA 3