Está en la página 1de 9

El Uso de Arduino para la Programación de

Microcontroladores

Ana Sofía Barco Puentes Juan Esteban Malagón Palacios Samuel David Ovalle Rosas
Facultad de Ingeniería Facultad de Ingeniería Facultad de Ingeniería
Pontificia Universidad Javeriana Pontificia Universidad Javeriana Pontificia Universidad Javeriana
Bogotá, Colombia Bogotá, Colombia Bogotá, Colombia
ana-barcop@javeriana.edu.co juanemalagon@javeriana.edu.co sd-ovalle@javeriana.edu.co

I. INTRODUCCIÓN resultados obtenidos con base en distintas preguntas


previamente formuladas.
El uso de microcontroladores fue una enorme contribución
para la industria de la electrónica moderna, ya que ha II. OBJETIVOS
permitido la creación de dispositivos que no habrían sido
A. General
posibles hace décadas.
Comprender el funcionamiento de los microcontroladores
De esta manera, estos consisten en un circuito integrado
por medio de la programación del estado de distintas luces
programable (embebido), capaz de ejecutar las órdenes
LED, a través de la herramienta de Arduino.
grabadas en su memoria.
Asimismo, se compone de varios bloques funcionales, que B. Específicos
cumplen una tarea específica [1]. Por otra parte, una • Identificar las salidas de una señal digital.
herramienta muy popular en el mundo de los
• Aprender a identificar los pines de entrada y salida en
microcontroladores es Arduino, la cual es una plataforma de
Arduino Mega.
electrónica abierta para la creación de prototipos, basada en
• Comprender las funciones de void setup y void loop
software y hardware libre, flexibles y fáciles de usar, que
en la plataforma Arduino.
permite la ejecución de diferentes acciones a través de la
• Establecer estados de encendido y apagado, la
programación de un microcontrolador [1]. Un claro ejemplo
duración de LEDS con ayuda de Arduino Mega
de esto es el funcionamiento de las luces led.
Con el desarrollo de este laboratorio, se busca explorar y III. MATERIALES
comprender el uso de la herramienta Arduino, por medio de la Para el desarrollo del laboratorio se requirieron de los
programación del estado (encendido y apagado) de diferentes siguientes equipos y componentes:
luces led, incluyendo una RGB, Además, se analizarán los • Computador portátil.
• Arduino MEGA2560 o Arduino UNO + cable de • Señales: De su definición se puede destacar la división
conexión PC (cable USB tipo AB). y tipos. Existen las señales analógicas y también las
• Multímetro digital (Keithley 2110). digitales. Las digitales, son efectivas al ser usadas en
• Par de pinzas. programación y al ser esenciales en el funcionamiento
• Tablero de conexiones (protoboard) Un tablero de del circuito, estas señales se pueden considerar como
conexiones (protoboard) y cortos (cables) de valores expresados en el tiempo y solamente cuentan
conexión. con dos estados, HIGH y LOW, estos últimos toman los
• LED. valores de uno y cero respectivamente [1].

• Cuatro resistores de 270Ω. • Arduino: Es una plaqueta que puede ejecutar diferentes
• Cortafríos. funciones como encender un LED o generar rotación a
• Pelacables. un motor, pero específicamente se puede sintetizar
• Un Resistor de 10 kΩ. como una plataforma electrónica la cual cuenta con un
• Un pulsador para protoboard. Software y Hardware incluido para proceder con la
• LED RGB (De preferencia de ánodo común de cuatro elaboración de códigos usando el programa Arduino
terminales. Cátodo común, también podría usarse). Uno. El Arduino se estructura a base de dos funciones
• 20 cm de cable UTP. cruciales, el void setup y el void loop, ambas permiten
realizar ejecuciones, sin embargo, el void setup solo se
IV. MARCO TEÓRICO
ejecuta una vez y es donde se pueden definir las
En este laboratorio se tomaron conceptos claves para variables iniciales o establecer parámetros dentro de la
realizar la práctica, de esta forma se podían desarrollar las programación. El void loop realiza un ciclo de las
conexiones pertinentes entre componentes para que así se instrucciones dadas y es por eso su ejecución es
visualizara un efecto resultante de la programación ejecutada considerada como repetitiva [1].
en el programa Arduino y los enlaces presentes en la protoboard
• LED: Este componente electrónico es uno de los más
[2]. A continuación, se encontrarán las definiciones de
usados en circuitos, ya que es el encargado de emitir luz.
temáticas y componentes que fueron solicitados para el
Cabe dentro de lo que se conoce como diodo y cuenta
laboratorio, cabe aclarar, que las fuentes consultadas son de
con polaridad positiva y también negativa. Para su
carácter científico con el fin de concretar una veracidad de
funcionamiento se requiere del flujo de corriente, sin
información optima desde el factor teórico y práctico:
embargo, es necesario tener precaución para no fundir
• Microcontrolador: Se le considera como un sistema o el componente por la cantidad de corriente que reciba.
dispositivo enfocado en realizar procesos lógicos que Para la prevención de incidentes que pueden afectar al
pueden ser ejecutados al mismo tiempo o en diferentes circuito debido a la enorme cantidad de energía que
lapsos dependiendo de la programación. Para su recibe el LED, se coloca una resistencia encargada de
funcionamiento, se necesita de un código en donde se oponer el flujo de corriente y controlar su luminosidad
encuentren instrucciones a realizar para un circuito. Uno al mismo tiempo. Su composición se encuentra
de los más usados y efectivos es el Arduino. Se establecida por los electrodos ánodo y cátodo. El ánodo,
componen por una CPU la cual está encargada del es aquel representante del polo positivo dentro del flujo
almacenamiento de memoria [3]. de corriente y el ánodo seria su opuesto, el polo
negativo[4]. Dentro de este componente se evidencia
uno bastante particular, el LED RGB, el cual cumple 4. En la función void loop, se escribe el pin de salida y
con la misma función de un LED común que es emitir el estado inicial del mismo, adicional de un delay de
luz, sin embargo, este cuenta con una serie de tres 5000 ms (5 s) y el pin de salida junto al estado luego
colores que permite la combinación entre estos al ser de los 5 segundos, es decir el void loop queda de la
programados con un código el cual permite el flujo de siguiente manera:
corriente a los colores rojo, verde y azul. También se
tiene en cuenta el polo a tierra puede ser de ánodo o void loop () {
cátodo comunes [5]. digitalWrite (53, HIGH);
delay (5000);
V. METODOLOGÍA
digitalWrite (53, LOW);
A continuación, se expondrá el proceso para poder
delay (5000);
desarrollar el laboratorio de manera adecuada.
}
Parte 3: LED RGB
Parte 1: Reconocimiento y configuración de material.
1. Inicialmente, se identifica si el led RGB es de ánodo
1. En primer lugar, se identifican todos los componentes
común o de cátodo común con la ayuda del
del Arduino MEGA, con el fin de configurar e
multímetro y los terminales positivos y negativos
identificar los pines de conexión, las entradas y las
hasta que el LED encienda, de esta forma se establece
salidas de manera efectiva.
si es Ánodo Común o Cátodo Común.
2. Posteriormente, se realiza la configuración y
2. Luego de conocer este dato, se realiza el siguiente
programación del microcontrolador; idnetificando el
montaje en la protoboard:
puerto de comunicación (COM) al que el Arduino
2.1 Al conector digital 49 del Arduino se conectó una
estaba conectado, para luego configurar el software
resistencia de 270 W en serie, que luego se conectó al
Arduino IDE con respecto al puerto de comunicación
primer terminal del RGB
de la tarjeta.
2.2 Al conector digital 51 del Arduino se conecta una
Parte 2: Parpadeo de LED
resistencia en serie de 270 W, que a su vez se conecta
1. En el conector de entrada/salida digital número 53 del
al tercer terminal del RGB
Arduino MEGA se realiza una conexión en serie a
2.3 Por otra parte, al conector de salida 53 del
una resistencia de 270 W, de igual forma, luego se
Arduino se conecta a otra resistencia en serie de 270
conectó el LED a la resistencia. por otro lado, en el
W que se conectó al último terminal del RGB
conector a tierra del Arduino (GND), se realiza la
2.4 Para el segundo terminal del LED, (terminal
conexión al terminal negativo (cátodo -) del led.
común) se realizó una conexión directa al positivo
2. Con ayuda del programa Arduino IDE, se realiza y
(5v) de Arduino, y se cerró el circuito con el polo a
ejecuta el código de programación para el circuito
tierra (GND) al negativo de la protoboard.
anterior de la siguiente manera.
3. Una vez terminado el circuito, se realizó el código de
3. Se configura como el pin de salida el pin53
programación para poder controlar el circuito de la
(pinMode (53, OUTPUT);) cabe resaltar que este se
siguiente manera:
realizó dentro de la funcion void setup ya que solo lee
e identifica los pines de salida.
void setup () { digitalWrite(53, LOW); //verde
pinMode(53, OUTPUT ); digitalWrite(51, HIGH); //azul
pinMode(51, OUTPUT); digitalWrite(49, LOW); //rojo
pinMode(49, OUTPUT); delay (1000);
} }
void loop () { Verde:
digitalWrite(53, HIGH); void setup () {
digitalWrite(51, LOW); pinMode(53, OUTPUT );
digitalWrite(49, HIGH); pinMode(51, OUTPUT);
delay (1000); pinMode(49, OUTPUT);
} }
void loop () {
De esta forma, el LED emitirá luz azul en digitalWrite(53, LOW); //verde
intervalos de un segundo. digitalWrite(51, HIGH); //azul
digitalWrite(49, HIGH); //rojo
4. Del mismo modo, para obtener los colores: rojo, delay (1000);
amarillo, verde, cian, magenta y blanco se usaron los }
siguientes códigos Cian:
void setup () {
Rojo: pinMode(53, OUTPUT );
void setup () { pinMode(51, OUTPUT);
pinMode(53, OUTPUT ); pinMode(49, OUTPUT);
pinMode(51, OUTPUT); }
pinMode(49, OUTPUT); void loop () {
} digitalWrite(53, LOW); //verde
void loop () { digitalWrite(51, LOW); //azul
digitalWrite(53,HIGH);//verde digitalWrite(49, HIGH); //rojo
digitalWrite(51, HIGH); //azul delay (1000);
digitalWrite(49, LOW); //rojo }
delay (1000); Magenta:
} void setup () {
Amarillo: pinMode(53, OUTPUT );
void setup () { pinMode(51, OUTPUT);
pinMode(53, OUTPUT ); pinMode(49, OUTPUT);
pinMode(51, OUTPUT); }
pinMode(49, OUTPUT); void loop () {
} digitalWrite(53, HIGH); //verde
void loop () { digitalWrite(51, LOW); //azul
digitalWrite(49, LOW); //rojo 0 = apagado
delay (1000); void setup() {
} pinMode(45, INPUT); //entrada (pulsador)
Blanco: pinMode(53, OUTPUT); //salida
void setup () { void loop() {
pinMode(53, OUTPUT ); pulsador = digitalRead(45); // Lee el estado del
pinMode(51, OUTPUT); pulsador
pinMode(49, OUTPUT); delay(50);
} if (pulsador == HIGH) {
void loop () {
digitalWrite(53, LOW); //verde estado_led = 1 - estado_led; // Cambia
digitalWrite(51, LOW); //azul el estado actual
digitalWrite(49, LOW); //rojo }
delay (1000); if (estado_led == 1) {
} digitalWrite(53, HIGH); // Se enciende
Parte 4: Encendido de un LED mediante un pulsador con el led
enclavamiento. }else {
5. Con el fin de poder controlar el encendido y apagado del digitalWrite(53, LOW); // Se apaga el
LED, se arma un circuito con un pulsador de la siguiente LED
manera: }
5.1 El pin digital número 53, es el pin de salida, este
se conecta con el ánodo del LED, y posteriormente, }
al LED (en serie) se conecta una resistencia de 270
VI. RESULTADOS
Ω.
5.2 El pin de entrada digital será número 45 que va PARTE 1:
conectado al pulsador, el cual a su vez tiene Por medio de la siguiente tabla se realizó el reconocimiento
una resistencia de 10 kΩ conectada en serie. de cada uno de los elementos del Arduino MEGA:
5.3 Por último se conecta el circuito en el GND para
el LED en el terminal negativo y el pulsador a 5 V TABLA 1
en el Arduino. Parte Número del recuadro
6. A continuación, se configura el software del circuito con
Conector de alimentación 7
un código que permita encender y apagar el LED de
Conector puerto USB 6
manera independiente el cual se muestra a continuación.
Botón de reinicio (reset) 5

Salidas digitales con opción PWM 2


// Laboratorio de Adquisición de Señales - Grupo 1
(Pulse Width Modulation o
Modulación por ancho de pulso)
int pulsador = 0; // Define la variable pulsador
LED de indicación de encendido 8
int estado_led = 0; // Define el estado actual del LED. (ON)
Entradas análogas 3 PARTE 3:

Entrada/salida digital 4 El código elaborado para permitir el cambio del LED


Microprocesador ATmega256 o 1 RGB de tipo Ánodo común es:
ATMega328P

Cristal del oscilador de 16 MHz 9 // Laboratorio de Adquisición de Señales - Grupo 1


void setup() {
pinMode(53, OUTPUT); //VERDE
Asimismo, la cantidad de pines GND identificados en el
pinMode(51, OUTPUT); //AZUL
Arduino MEGA 2560 es de 3.
pinMode(49, OUTPUT);//ROJO
PARTE 2: }
El código elaborado para permitir el parpadeo del LED es: void loop() {

// Laboratorio de Adquisición de Señales - Grupo 1 digitalWrite(53, HIGH);

// Encender y apagar un LED digitalWrite(51, LOW);


digitalWrite(49, HIGH);

void setup() { delay(1000);


}
pinMode(12, OUTPUT); // Configurar el pin 53 como salida Es necesario resaltar, que el funcionamiento del ánodo

} común va a ser inverso al del cátodo común. Por esta razón,

void loop() { en este caso un HIGH, funciona como un LOW y un LOW


digitalWrite(12, HIGH); // Poner un valor alto en el pin53 funciona como un HIGH.

delay(1000); // Establecer un tiempo de espera en ms


digitalWrite(12, LOW); // Poner un valor bajo en el pin53 También, el diagrama de flujo asociado a esta sección:

delay(1000); // Establecer tiempo de espera en ms


}
Por otra parte, el diagrama de flujo elaborado para esta
sección es:

FIGURA 1
FIGURA 2 // Cambiar el estado del LED
led_encendido = !led_encendido;

// Encender o apagar el LED según el valor de


"led_encendido"
digitalWrite(53, led_encendido);
}
}
}
Adicionalmente, el diagrama de flujo asociado a este
programa es:

FIGURA 3

PARTE 4:

El código elaborado para permitir encender un LED


mediante un pulsador con enclavamiento, evitando caer en el
efecto de rebote es:

// Laboratorio de Adquisición de Señales - Grupo 1


int pulsador = 0; // Define la variable pulsador
int led_encendido = 0;

void setup() {
pinMode(45, INPUT); //entrada (pulsador) VII. ANALISIS DE RESULTADOS
pinMode(53, OUTPUT); //salida
A continuación, se da respuesta a las preguntas problema,
}
o preguntas de reflexión que surgen a partir de la realización
practica del laboratorio.
void loop() {
• ¿Qué significa la sigla LED? ¿Es lo mismo qué un
pulsador = digitalRead(45);
diodo?
Las siglas LED hacen referencia a Diodo Emisor de Luz en
if (pulsador == HIGH) {
español. Una aclaración importante que hay que realizar es que
delay(20); // se espera un breve período de tiempo para
el LED pertenece a la familia de los diodos, sin embargo, el
eliminar el rebote
Led emite luminosidad a diferencia de un diodo que
únicamente permite el flujo de corriente en una dirección
// Verificamos si el botón todavía está presionado
especifica y también muestra una oposición al flujo de
después del período de espera
if (digitalRead(45) == HIGH) {
corriente en sentido contrario. Desde la etimología del diodo, Esto se puede validar con la ayuda del DMM (multímetro),
se dice que su prefijo es di y "odo" hace referencia a camino al conectar las puntas de tierra (-) o positiva (+), con el terminal
• ¿Cuáles son las diferencias qué hay entre un LED más largo del RGB cuando el LED encienda me indicará si es
y una bombilla? de ánodo o cátodo común.
Entre las diferencias más notables se pueden identificar • ¿Cómo debería modificarse el circuito, para
características como; la durabilidad, ya que los LED son obtener el color naranja?
conocidos por perdurar mayores periodos de tiempo que las Teniendo en cuenta que este color tiene una mayor
bombillas tradicionales. Además, los LED consumen menos complejidad de obtención, se requiere el siguiente ajuste a la
electricidad, aumentando su eficiencia en comparación a la codificación del software:
bombilla. Teniendo en cuenta todo lo anterior, los LED tienen
mayor costo en el mercado con respecto a una bombilla If (color==naranja) {
tradicional. analogwrite(redpin, 255);
• ¿Qué significa un “uno lógico” (1) o un “cero analogwrite(greenpin, 165);
lógico” (0), en valor numérico de la señal? analogwrite(bluepin, 0);
El “uno lógico” indica una señal HIGH es decir, una señal }
con voltaje igual 5 V y el cero lógico, una señal de tipo LOW • Al definir una variable, ¿Qué significa int?
que es contraria a HIGH y es equivalente a 0 V, esto se podría En programación, antes de ejecutar un código se deben
traducir en si la señal eléctrica está presente en un punto declarar todas las variables, las cuales se definen como un
determinado o no, adicionalmente, es importante resaltar que espacio de almacenamiento que va a guardar valores
la diferencia de 0 V a 5 V se conoce como flanco de subida. delimitados, para que el programa las lea con efectividad. En
• ¿Cuál es la razón por la cual se debe conectar una este orden de ideas, int hace referencia a los enteros.
resistencia en serie con el diodo? • ¿Existen otros comandos relacionados a int?
Teniendo en cuenta la ley de Ohm, que afirma que entre Los comandos relacionados a int son; double y float, los
más resistencia y menor voltaje habrá menor corriente cuales se usan para incluir números ya sean decimales o
eléctrica, se conecta una resistencia con el fin de proporcionar enteros. Están los comandos booleanos que determinan si una
valores óptimos de voltaje e intensidad de corriente para que afirmación es verdadera o falsa, y en código binario se
ni el LED ni los materiales implementados se dañen durante la representan con 1 y 0 respectivamente.
práctica. • ¿Por qué no cambia adecuadamente el estado del
• ¿Cuándo la señal sea un “uno lógico” (1), el LED LED con el código ?
se encenderá o se apagará? No funciona de manera adecuada, dado que se presenta lo
El Led se encenderá debido a que la señal de entrada está que se conoce como bounce o rebote en español. Este no
representada en HIGH lo que significa que su valor digital permite que el LED se quede encendido en la primera
estaría interpretado por 1. Al analizarlo con la placa de pulsación ya que genera señales falsas antes de encender
Arduino, se está representando un flujo de energía dado un
VIII. CONCLUSIÓN
voltaje igual a 5 V.
Los microcontroladores son dispositivos electrónicos muy
• ¿Cómo puede identificarse que un LED RGB es de
importantes utilizados en sistemas y aplicaciones ya que su
ánodo o cátodo común?
capacidad les permite procesar datos y controlar dispositivos
esenciales en la automatización de procesos.
De esta forma, gracias a herramientas como Arduino, las
personas tienen la facilidad de aprender a diseñar y programar
sistemas electrónicos, un claro ejemplo de esto, se puede ver
evidenciado en la codificación de los estados de un LED debido
a que permite establecer los parámetros de control (encendido
y apagado con respecto al tiempo) y, a la vez eliminar efectos
contraproducentes como el rebote.

Finalmente, estos dispositivos han revolucionado el último


siglo gracias a la versatilidad en el desarrollo de programas que
permiten ejecutar diferentes tareas o acciones.

REFERENCIAS

[1] G. Básica y D. E. Arduino, “Una guía práctica sobre


el mundo de Arduino”.
[2] B. Massimo y M. Shiloh, “La plataforma para
prototipos electrónicos de código abierto”.
[3] P. Aguayo, “INTRODUCCIÓN AL
MICROCONTROLADOR”, 2004. [En línea].
Disponible en: http://usuarios.lycos.es/sfriswolker
[4] O. Ok, “¿Qué son el Ánodo y el Cátodo?” [En línea].
Disponible en: https://www.lifeder.com/anodo-y-
catodo/
[5] H. Fillipo, H. Cano, y J. Chaves, “Aplicaciones de
iluminacion con LEDs”, Scientia et Technica Año
XVI, vol. 45, 2010, [En línea]. Disponible en:
http://es.wikipedia.org/wiki/Temperatura_de_color

También podría gustarte