Professional Documents
Culture Documents
FACULTAD DE INGENIERÍA
INGENIERIA ELECTRÓNICA
PROYECTO FINAL
1
1. INTRODUCCIÓN
La implementación de la placa Arduino, como herramienta básica para el desarrollo de
sistemas de control, en los primeros cursos en electrónica se ha ido extendiendo a lo largo del
mundo, por su fácil asimilación y sencillo diseño.
La plataforma Arduino está compuesta de dos partes, un Hardware, que tiene diseños muy
diversos para la realización de distintos tipos de proyectos y un Software, que en el que se
implementa un lenguaje de programación propia de Arduino y un bootloader que se ejecuta en
la placa. Ambas partes de Arduino son completamente libres, lo que significa que pueden ser
utilizadas por todas las personas sin la necesidad de licencias u otros permisos, lo que permite
la difusión de proyectos al público en general para usarlos o mejorarlos.
El presente proyecto se centra en la modulación por ancho de pulso, mediante la
implementación de la placa Arduino (para este proyecto se usó el modelo Arduino UNO R3),
para el control de intensidad lumínica de un led, que empiece desde un estado bajo
(apagado), que vaya aumentando paulatinamente hasta llegar a un estado alto (máxima
luminosidad) y a continuación que disminuya.
Para la realización de este proyecto, la placa Arduino utiliza una interfaz que permite al
usuario realizar la programación deseada para la ejecución del trabajo. Este programa
también debe pedir el tiempo de estado bajo y estado alto, mediante teclado, además que
muestre el proceso de incremento y decremento de la intensidad lumínica del led.
Este documento describirá la realización el proyecto en sus distintas facetas, desde el
alcance que barca, los objetivos que se propusieron lograr, la metodología usada para la
realización del proyecto, un marco teórico donde se describirán teóricamente los componentes
utilizados en el proyecto, los resultados obtenidos con el proyecto, las conclusiones a las que
se llegaron.
3. OBJETIVOS
3.1. OBEJTIVO GENERAL
Implementar la plataforma Arduino para el desarrollo de un circuito que aumente y
disminuya la intensidad lumínica de un led, controlado desde una computadora personal,
que pida desde teclado el tiempo de estado alto y el tiempo de estado bajo
3.2. OBJETIVOS ESPECIFICOS
Investigar sobre los diferentes modelos de Arduino existentes, para elegir el adecuado
para el desarrollo del trabajo.
Armar el circuito adecuado para la realización del presente proyecto.
Desarrollar un programa en el entorno de Arduino, que realice la variación de la intensidad
lumínica del led y que además pida por teclado el tiempo de estado bajo y estado alto en
el led.
2
4. METODOLOGIA
Al tratarse de un proyecto en electrónica, la metodología implementada en este trabajo es la
metodología científica, donde aplicaremos el método deductivo, ya que se consultaran varios
libros, páginas de internet, blogs sobre Arduino, videos para llegar a los propósitos que se
desean cumplir.
La investigación se basara en conocer los componentes necesarios para el desarrollo del
proyecto (ya mencionados en el enunciado del trabajo), para comprender su funcionamiento
tanto teórico como práctico, donde se estudiará la forma adecuada de uso de estos
(especialmente la placa Arduino y su software), para, de esta manera, lograr los objetivos
planteados.
5. MARCO TEORICO
5.1. RESISTOR
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.
Existen resistores de valor manualmente ajustable, llamados potenciómetros, reostatos o
simplemente resistencias variables. También se producen dispositivos cuya resistencia
varía en función de parámetros externos, como los termistores, que son resistores que
varían con la temperatura; los varistores que dependen de la tensión a la cual son
sometidos, o las fotorresistencias que lo hacen de acuerdo a la luz recibida.
Para la identificación de los valores de los resistores, se emplea un código de colores
en los cuales se especifica con claridad el valor óhmico y su tolerancia, que se muestra
en la siguiente tabla:
5.3. PROTOBOARD
Es una de las placas de prueba más usadas. Está compuesta por bloques de plástico
perforados y numerosas láminas delgadas, de una aleación de cobre, estaño y fósforo,
que unen dichas perforaciones, creando una serie de líneas de conducción paralelas.
Las líneas se cortan en la parte central del bloque para garantizar que dispositivos en
circuitos integrados de tipo dual in-line package (DIP) puedan ser insertados
perpendicularmente y sin ser tocados por el proveedor a las líneas de conductores. En la
cara opuesta se coloca un forro con pegamento, que sirve para sellar y mantener en su
lugar las tiras metálicas.
Debido a las características de capacitancia (de 2 a 30 pF por punto de contacto) y
resistencia que suelen tener los protoboard están confinados a trabajar a relativamente
baja frecuencia (inferior a 10 ó 20 MHz, dependiendo del tipo y calidad de los
componentes electrónicos utilizados).
Los demás componentes electrónicos pueden ser montados sobre perforaciones
adyacentes que no compartan la tira o línea conductora e interconectada a otros
dispositivos usando cables, usualmente unifilares. Uniendo dos o más protoboard es
posible ensamblar complejos prototipos electrónicos que cuenten con decenas o cientos
de componentes.
6
5.4. ARDUINO UNO
Arduino / Genuino Uno es una placa microcontroladora basada en ATmega328P
(datasheet). Tiene 14 pines digitales de entrada / salida (de los cuales 6 se pueden
utilizar como salidas PWM), 6 entradas analógicas, un cristal de cuarzo de 16 MHz, una
conexión USB, un conector de alimentación, una cabecera ICSP y un botón de reinicio.
Contiene todo lo necesario para soportar el microcontrolador, simplemente conéctelo a
un ordenador con un cable USB o con un adaptador AC-DC o batería para empezar.
"Uno" significa uno en italiano y fue elegido para marcar el lanzamiento de Arduino
Software (IDE) 1.0. El tablero Uno y la versión 1.0 de Arduino Software (IDE) fueron las
versiones de referencia de Arduino, ahora evolucionaron a versiones más recientes. La
placa Uno es la primera de una serie de placas USB Arduino, y el modelo de referencia
para la plataforma Arduino.
Especificaciones Técnicas
Microcontrolador ATmega328P
Tensión de funcionamiento 5V
Tensión de entrada (recomendado) 7-12V
Tensión de entrada (límite) 6-20V
Pines de E / S digitales 14 (de los cuales 6 proporcionan salida
PWM)
Pines de E / S digitales PWM 6
Pines de entrada analógica 6
Corriente CC por Pin de E / S 20 mA
Corriente CC para 3.3V Pin 50 mA
Memoria Flash 32 KB (ATmega328P) De los cuales 0,5
KB utilizados por bootloader
SRAM 2 KB (ATmega328P)
EEPROM 1 KB (ATmega328P)
Velocidad de reloj 16 MHz
LED_BUILTIN 13
Longitud 68.6 mm
Ancho 53,4 mm
Peso 25 g
Tabla 2. Especificaciones Técnicas del Arduino UNO
7
La placa Arduino trabaja solo con señales digitales, por lo que cuando se quiere trabajar
con señales analógicas tanto en entrada como en salida se realizan los procedimientos
descritos a continuación:
Una señal eléctrica analógica es aquella en la que los valores de la tensión o voltaje
varían constantemente y pueden tomar cualquier valor. En el caso de la corriente
alterna, la señal analógica incrementa su valor con signo eléctrico positivo (+) durante
medio ciclo y disminuye a continuación con signo eléctrico negativo (–) en el medio ciclo
siguiente.
Un sistema de control (como un microcontrolador) no tiene capacidad alguna para
trabajar con señales analógicas, de modo que necesita convertir las señales analógicas
en señales digitales para poder trabajar con ellas.
La señal digital obtenida de una analógica tiene dos propiedades fundamentales:
Valores, valor en voltios para 0 y 1. En nuestro caso es tecnología TTL (0 – 5V)
Resolución analógica: nº de bits que usamos para representar con una notación
digital una señal analógica:
En el caso de un Arduino Uno, el valor de 0 voltios analógico es expresado en digital
como B0000000000 (0) y el valor de 5V analógico es expresado en digital como
B1111111111 (1023). Por lo tanto todo valor analógico intermedio es expresado con un
valor entre 0 y 1023, es decir, sumo 1 en binario cada 4883 mV.
Arduino Uno tiene una resolución de 10 bits, es decir, unos valores entre 0 y 1023.
Como hemos dicho Arduino Uno tiene entradas analógicas que gracias a los
conversores analógico digital puede entender ese valor el microcontrolador, pero no
tiene salidas analógicas puras y para solucionar esto, usa la técnica de PWM.
Las Salidas PWM (Pulse Width Modulation) permiten generar salidas analógicas desde
pines digitales. Arduino Uno no posee salidas analógicas puras.
8
La modulación por ancho de pulsos (también conocida como PWM, siglas en inglés de
pulse-width modulation) de una señal o fuente de energía es una técnica en la que se
modifica el ciclo de trabajo de una señal periódica (una senoidal o una cuadrada, por
ejemplo), ya sea para transmitir información a través de un canal de comunicaciones o
para controlar la cantidad de energía que se envía a una carga.
El ciclo de trabajo de una señal periódica es el ancho relativo de su parte positiva en
relación con el período. duty cycle = (tiempo que la salida está a uno o HIGH)/ (periodo
de la función).
En este ejemplo se ve cómo simular con PWM una onda sinusoidal analógica.
En Arduino la frecuencia de PWM es de 500Hz. Pero es un valor que puede modificarse
en caso que lo necesitemos.
En la actualidad existen muchos circuitos integrados en los que se implementa la
modulación PWM, por ejemplo para lograr circuitos funcionales que puedan controlar
fuentes conmutadas, controles de motores, controles de elementos termoeléctricos,
choppers para sensores en ambientes ruidosos y algunas otras aplicaciones.
No confundir PWM con la función tone() que es utilizada para generar una onda
cuadrada de ciclo de trabajo 50% y frecuencia variable, con el fin de emitir sonidos
audibles, modificando la frecuencia.
9
Figura 6. Muestreo de una señal analógica
Al contrario que las señales analógicas, las señales digitales se pueden almacenar y
transmitir sin degradación. Los DAC se usan para los altavoces, amplificadores para
producir sonido. Ejemplo de la transmisión de la voz por las líneas telefónicas.
10
analogReference() – configura la referencia de voltaje usada para la entrada
analógica.
analogRead() – lee el valor del pin analógico especificado.
analogWrite() – escribe un valor analógico (onda PWM) al pin especificado. No
en todos los pines digitales se puede aplicar PWM.
Otras funciones interesantes con entradas/salidas analóicas:
map(value, fromLow, fromHigh, toLow, toHigh)
constrain(x, a, b)
6. DISEÑO
6.1. CODIGO FUENTE
1. int led1=11;
2. float i;
3. int tiempo=100,tiempo2=100000;
4. int on;
5. int off;
6. float x;
7.
8. void setup() {
9.
10. Serial.begin(9600);
11. pinMode(led1, OUTPUT);
12. Serial.println("INGRESE LOS TIEMPOS PARA:");
13. Serial.println("> ESTADO ALTO");
14. Serial.println("> ESTADO BAJO");
15. Serial.println("NOTA: El tiempo esta en milisegundos");
16. }
17.
18. void encendido() {
19.
20. for(i=0; i<=255; i++){
21. analogWrite(led1, i);
22. x=i/2.55;
23. Serial.print("intensidad al: ");
24. Serial.print(x);
25. Serial.println('%');
26. if(x==100){
27. Serial.println("ESTADO ALTO");
28. }
29. delay(tiempo);
30. }
31. }
32.
33. void apagado() {
34.
35. for(i=255; i>=0; i--){
36. analogWrite(led1, i);
37. x=i/2.55;
38. Serial.print("intensidad al: ");
39. Serial.print(x);
40. Serial.println('%');
41. if(x==0){
11
42. Serial.println("ESTADO BAJO");
43. }
44. delay(tiempo);
45. }
46. }
47.
48. void loop(){
49.
50. if(Serial.available()){
51. on=Serial.parseInt();
52. Serial.setTimeout(tiempo2);
53. off=Serial.parseInt();
54. Serial.setTimeout(tiempo2);
55. encendido();
56. delay(on);
57. apagado();
58. delay(off);
59. Serial.println("FIN DE CICLO");
60. Serial.println("INGRESAR DATOS NUEVAMENTE");
61. digitalWrite(led1,HIGH);
62. }
63. }
12
6.3. LAYOUT
7. RESULTADOS
El proyecto obtuvo los siguientes resultados:
La investigación realizada acerca de la plataforma Arduino y los conocimientos
adquiridos en su implementación (uso adecuado de los diferentes modelos existentes)
y la comprensión de la forma de programar los microcontroladores según cada modelo,
significan un gran avance en la incursión a la electrónica, que servirá como base para
el uso de herramientas más complejas.
El desarrollo del programa necesario para la realización del control de luminosidad de
un led que pida por teclado el tiempo para estado alto y estado bajo, se logró de forma
óptima con todos los requerimientos deseados.
El armado del circuito, al ser básico, se lo armo de forma adecuada y rápida para su
implementación.
8. CONCLUSIONES
La aplicación de la plataforma Arduino para el desarrollo de sistemas de control, se
realiza de forma sencilla y rápida, conociendo ya la forma de programar los
microcontroladores que se estén usando.
La información existente sobre Arduino en Internet es muy extensa y variada, lo que
ayudo a una comprensión más rápida acerca del uso de esta plataforma, tanto en la
elección del modelo y en la forma de programar con Arduino.
La comprensión de la plataforma Arduino, sirve como una introducción al mundo de la
electrónica de control (de manera básica), tanto para estudiantes interesados como
para aficionados a esta, además servirá como base para sistemas más complejos
como el uso de PIC o PLC entre otros.
13
9. BIBLIOGRAFÍA
“Arduino. Curso práctico de formación”; Torrente Artero, Oscar; Primera edición;
Alfaomega Grupo Editor; Mexico, 2013
“Arduino. Manual de programación”; (traducción) Ruiz Martínez, José Manuel; (escrito y
compilado) Evans, Brian W.; Primera edición; USA, 2007
https://aprendiendoarduino.wordpress.com/2016/06/25/que-es-arduino-y-hardware-
libre/
https://es.wikipedia.org/wiki/Resistor
https://es.wikipedia.org/wiki/Led
https://es.wikipedia.org/wiki/Placa_de_pruebas
https://aprendiendoarduino.wordpress.com/2016/07/02/entradas-y-salidas-analogicas-
pwm-2/
14
15
ANEXO 1
ANEXO 2
16
ANEXO 3
Circuito armado
ANEXO 4
17