Está en la página 1de 18

TECNOLÓGICO NACIONAL DE MÉXICO

INSTITUTO TECNOLÓGICO DE TIJUANA

DEPARTAMENTO DE INGENIERIA ELECTRICA Y ELECTRONICA


Semestre: 7mo

CARRERA
INGENIERÍA ELECTRÓNICA

MATERIA
Control Digital

PRÁCTICA con ARDUINO

UNIDAD 2

ALUMNOS:

Lizola Gomez Martin Rodolfo 19212308


Lomeli Arce Cesar Alan 19212309
Lopez Lopez Juan Carlos 19212312
Suárez Herrera José Manuel 19212350

DOCENTE
Daniel Escobedo Mitre
Tijuana, Baja California, México Diciembre de 2022

1
Índice

Índice 2

Introducción 3

Marco Teórico 4

Objetivo 10

Desarrollo 11

Conclusiones 16

Referencias 18

Carpeta 18

2
Introducción
Durante el curso del semestre en la materia de control digital se ha visto de manera
práctica y matemática el tema del muestreo de señales para visualizar su
comportamiento en la vida real. Como se ha mencionado en clase el muestreo de
señales se relaciona fuertemente con los temas que se han impartido por lo que una
forma de poder aplicar de una manera ese conocimiento es implementar una
práctica relacionada con el procesamiento de señales.

Para el caso del grupo se utilizaron las placas correspondientes a las que existen
dentro del laboratorio de electrónica y más específicamente, para el asignado para
este equipo, se hizo uso de la placa de arduino la cual funciona como la base de
todo el desarrollo que se presenta en los próximos puntos del documento.

3
Marco Teórico

Procesamiento de señales
Es el proceso, desarrollo y análisis de las mismas. Las señales pueden procesarse
de diferentes fuentes. Las señales son signos o símbolos que avisan o informan de
algo, además, puede ser el cambio de una corriente eléctrica que se usa para
transmitir datos.

● Procesamiento de señales digitales: se refiere a las señales digitalizadas


donde el procesamiento se hace por medio de circuitos digitales,
ordenadores y microprocesadores. La manipulación en este procesamiento
se hace de manera matemática para que una señal de información sea
modificada en cualquier sentido. Se caracteriza por estar representada en el
dominio de tiempo reservado, de frecuencia reservada u otro dominio
reservado de señales mediante un orden de símbolos o de números y el
proceso de esas señales.
Esto se puede alcanzar a través de un sistema basado en un ordenador o
microprocesador que provee un grupo de instrucciones, un software y un
hardware mejorados para aplicaciones que necesiten operaciones numéricas
con altas velocidades.
● Procesamiento analógico de señales: indica que las señales analógicas
son aquellas que son continuas o constantes en el tiempo. Una señal
analógica muestra una señal que se representa matemáticamente por un
grupo de valores continuos, que están representados normalmente en un
voltaje, una carga eléctrica o una corriente eléctrica en el contexto de los
elementos de los aparatos electrónicos. Un ruido o una falla que dañe estas
magnitudes físicas significa en una falla que corresponde a las señales
representadas por esas magnitudes físicas.Los procesamientos analógicos
de señales contienen, por ejemplo, el filtro pasa banda y bajos entre otros
filtros de señales para radio frecuencia y baja frecuencia, los controles de
volumen graves y agudos de los aparatos de música, además, los controles
de contraste y brillo de los televisores. También, contienen elementos tales
como resistencias, capacitores, transistores o inductores.
● Procesamiento de señales de audio: describen las señales electrónicas
que simbolizan sonidos.
● Procesamientos de señales de voz: se refiere a la interpretación de señales
de voz humana.

4
● Procesamientos de señales de video: son procesamientos para analizar los
movimientos en escenas que incluyen los videos.

Arduino Uno
El Arduino es una plataforma computacional física open-source basada en una
simple tarjeta de I/O y un entorno de desarrollo que implementa el lenguaje
Processing/Wiring. El Arduino Uno puede ser utilizado para desarrollar objetos
interactivos o puede ser conectado a software de tu computadora (por ejemplo,
Flash, Processing, MaxMSP). El IDE open-source puede ser descargado
gratuitamente (actualmente para Mac OS X, Windows y Linux).

Características:
● Microcontrolador ATmega328.
● Voltaje de entrada 7-12V.
● 14 pines digitales de I/O (6 salidas PWM).
● 6 entradas análogas.
● 32k de memoria Flash.
● Reloj de 16MHz de velocidad

Fig 1. Placa Arduino UNO

El microcontrolador que lleva la placa Arduino UNO es el modelo ATmega328P de la


marca Atmel. La “P” del final significa que este chip incorpora la tecnología
“Picopower” (propietaria de Atmel), la cual permite un consumo eléctrico
sensiblemente menor comparándolo con el modelo equivalente sin “Picopower”, el
Atmega328 (sin la “P”). De todas formas, aunque el ATmega328P pueda trabajar a

5
un voltaje menor y consumir menos corriente que el Atmega328 (especialmente en
los modos de hibernación), ambos modelos son funcionalmente idénticos.

Fig 2. Microcontrolador ATmega328P

Las memorias del microcontrolador


Otra cosa que hay que saber de los microcontroladores son los tipos y cantidades
de memoria que alojan en su interior. En el caso del ATmega328P tenemos:

Memoria Flash:
Memoria persistente donde se almacena permanentemente el programa que ejecuta
el microcontrolador (hasta una nueva reescritura si se da el caso). En el caso del
ATmega328P tiene una capacidad de 32KB.

Memoria SRAM:
Memoria volátil donde se alojan los datos que en ese instante el programa (grabado
separadamente en la memoria Flash, recordemos) necesita crear o manipular para
su correcto funcionamiento. Estos datos suelen tener un contenido variable a lo
largo del tiempo de ejecución del programa y cada uno es de un tipo concreto (es
decir, un dato puede contener un valor numérico entero, otro un número decimal,
otro un valor de tipo carácter… también pueden ser 24 Capítulo 2 Marco Teórico
cadenas de texto fijas u otros tipos de datos más especiales). Independientemente
del tipo de dato, su valor siempre será eliminado cuando se deje de alimentar
eléctricamente al microcontrolador. En el caso del ATmega328P esta memoria tiene
una capacidad de 2KB.

6
Memoria EEPROM:
Memoria persistente donde se almacenan datos que se desea que permanezcan
grabados una vez apagado el microcontrolador para poderlos usar posteriormente
en siguientes reinicios. En el caso del ATmega328P esta memoria tiene una
capacidad de 1 KB, por lo que se puede entender como una tabla de 1024
posiciones de un byte cada una.

En los microcontroladores que vienen incluidos en la placa Arduino no


podemos usar toda la capacidad de la memoria Flash porque existen 512
bytes (el llamado “bootloader block”) ocupados ya por un código
preprogramado de fábrica (el llamado “bootloader” o “gestor de arranque”), el
cual nos permite usar la placa Arduino de una forma sencilla y cómoda sin
tener que conocer las interioridades electrónicas más avanzadas del
microcontrolador. Los ATmega328P que podamos adquirir individualmente
normalmente no incluyen de fábrica este pequeño programa, por lo que sí
que ofrecen los 32 KB íntegros, pero a cambio no podremos esperar conectarlos a
una placa Arduino y que funcionen sin más ya que les faltará tener grabada
esa “preconfiguración”.

Los registros del microcontrolador


Los registros son espacios de memoria existentes dentro de la propia CPU de un
microcontrolador. Son muy importantes porque tienen varias funciones
imprescindibles: sirven para albergar los datos (cargados previamente desde
la memoria SRAM o EEPROM) necesarios para la ejecución de las
instrucciones previstas próximamente (y así tenerlos perfectamente disponibles
en el momento adecuado); sirven también para almacenar temporalmente los
resultados de las instrucciones recientemente ejecutadas (por si se
necesitan en algún instante posterior) y sirven además para alojar las
propias instrucciones que en ese mismo momento estén ejecutándose.

Su tamaño es muy reducido: tan solo tienen capacidad para almacenar unos pocos
bits cada uno. Pero este factor es una de las características más importantes
de cualquier microcontrolador, ya que cuanto mayor sea el número de bits
que “quepan” en sus registros, mayores serán sus prestaciones, en cuanto a
poder de cómputo y velocidad de ejecución. En efecto, es fácil ver
(simplificando mucho) que un microcontrolador con registros el doble de
grandes que otro podrá procesar el doble de cantidad de datos y por
tanto,trabajar el “doble de rápido” aun funcionando los dos al mismo ritmo. De
hecho, es tan importante esta característica que cuando escuchamos que un

7
microcontrolador es de “8 bits” o de “32 bits”, nos estamos refiriendo precisamente
a este
dato: al tamaño de sus registros.
Dependiendo de la utilidad que vayamos a darle al microcontrolador, será
necesario utilizar uno con un tamaño de registro suficiente. Por ejemplo, el control
de un electrodoméstico sencillo como una batidora no requiere más que
un microcontrolador de 4 u 8 bits. En cambio, el sistema de control
electrónico del motor de un coche o el de un sistema de frenos ABS se
basan normalmente en un microcontrolador de 16 o 32 bits.

Las entradas y salidas digitales


La placa Arduino dispone de 14 pines-hembra de entradas o salidas (según lo que
convenga) digitales, numeradas desde la 0 hasta la 13. Es aquí donde
conectaremos nuestros sensores para que la placa pueda recibir datos del entorno,
y también donde conectaremos los actuadores para que la placa pueda enviarles las
órdenes pertinentes, además de poder conectar cualquier otro componente que
necesite comunicarse con la placa de alguna manera. A veces a estos
pines-hembra digitales de “propósito general” se les llama pines GPIO (de “General
Purpose Input/Output”). Todos estos pines-hembra digitales funcionan a 5 V, pueden
proveer o recibir un máximo de 40 mA y disponen de una resistencia “pull-up”
interna de entre 20 KΩ y 50 KΩ que inicialmente está desconectada (salvo que
nosotros indiquemos lo contrario mediante programación software).

Las entradas analógicas


La placa Arduino dispone de 6 entradas analógicas (en forma de pines hembra
etiquetados como “A0”, “A1” ... hasta “A5”) que pueden recibir voltajes dentro de un
rango de valores continuos de entre 0 y 5 V. No obstante, la electrónica de la placa
tan solo puede trabajar con valores digitales, por lo que es necesaria una conversión
previa del valor analógico recibido a un valor digital lo más aproximado posible. Esta
se realiza mediante un circuito conversor analógico/digital incorporado en la propia
placa. El circuito conversor es de 6 canales (uno por cada entrada) y cada canal
dispone de 10 bits (los llamados “bits de resolución”) para guardar el valor del
voltaje convertido digitalmente.

Las salidas analógicas


La placa Arduino no dispone de pines-hembra de salida analógica propiamente
dichos (porque su sistema electrónico interno no es capaz de manejar este tipo de
señales), sino que utiliza algunos pines-hembra de salida digitales concretos para
“simular” un comportamiento analógico. Los pines-hembra digitales que son

8
capaces trabajar en este modo no son todos: solo son los marcados con la etiqueta
“PWM”. En concreto para el modelo Arduino UNO son los pines número: 3, 5, 6, 9,
10 y 11.

Las siglas PWM vienen de “Pulse Width Modulation” (Modulación de Ancho de


Pulso). Lo que hace este tipo de señal es emitir, en lugar de una señal continua, una
señal cuadrada formada por pulsos de frecuencia constante (aproximadamente de
490 Hz). La gracia está en que, al variar la duración de estos pulsos, se estara
variando proporcionalmente la tensión promedio resultante. Es decir: cuanto más
cortos sean los pulsos (y, por tanto, más distantes entre sí en el tiempo, ya que su
frecuencia es constante), menor será la tensión promedio de salida, y cuanto más
largos sean los pulsos (y por tantos, más juntos en el tiempo estén), mayor será
dicha tensión.

La alimentación del Arduino


El voltaje de funcionamiento de la placa Arduino (incluyendo el microcontrolador y el
resto de los componentes) es de 5 V.

Aplicaciones de Arduino
Actualmente tiene diferentes usos, como la aplicación de desarrolladores de diseños
artísticos e interactivos; de igual forma, muchas personas utilizan Arduino para
incursionar en aplicaciones tecnológicas, como la automatización y la robótica. Su
aplicación, aunque pudiera parecer limitada a áreas de la ciencia muy
especializadas, es en realidad común, al encontrarla en un cajero automático, un
calentador de agua, la pluma de un estacionamiento o las puertas de una plaza o
supermercado, y es que este tipo de herramientas, que facilitan nuestra vida diaria,
están basadas en un pequeño microcontrolador, cuya tarea está dictada por un
programa.

9
Objetivo

Realizar prácticas relacionadas con el muestreo/procesamiento de señales


utilizando la placa de trabajo asignada.

10
Desarrollo

Práctica #1 : Filtro de suavizado y pasa altos

En esta práctica se realizan 2 operaciones, un filtro de suavizado o paso bajo y un


paso alto. El primero se llama media móvil exponencial también conocido como
EMA y es un filtro de primer orden muy utilizado para atenuar el ruido presente en
las señales.La EMA para una señal cualquiera puede calcularse recursivamente con
la siguiente fórmula:
𝐴𝑛 = α𝑀 + (1 − α)𝐴𝑛−1
Donde:
𝐴𝑛: 𝑉𝑎𝑙𝑜𝑟 𝑓𝑖𝑙𝑡𝑟𝑎𝑑𝑜
𝐴𝑛−1: 𝑉𝑎𝑙𝑜𝑟 𝑓𝑖𝑙𝑡𝑟𝑎𝑑𝑜 𝑎𝑛𝑡𝑒𝑟𝑖𝑜𝑟
𝑀: 𝑉𝑎𝑙𝑜𝑟 𝑚𝑢𝑒𝑠𝑡𝑟𝑒𝑎𝑑𝑜 𝑑𝑒 𝑙𝑎 𝑠𝑒ñ𝑎𝑙 𝑜𝑟𝑖𝑔𝑖𝑛𝑎𝑙
α: 𝐹𝑎𝑐𝑡𝑜𝑟 𝑑𝑒 0 − 1(𝑑𝑖𝑠𝑚𝑖𝑛𝑢𝑖𝑟𝑙𝑜 𝑎𝑢𝑚𝑒𝑛𝑡𝑎 𝑒𝑙 𝑠𝑢𝑎𝑣𝑖𝑧𝑎𝑑𝑜)

La segunda parte corresponde a un paso alto, restando la señal obtenida del filtro
paso bajo a la señal original es posible eliminar las frecuencias menores a una
frecuencia de corte, aunque esta operación es menos común de realizar.

Para las pruebas se tiene una resistencia y una fotoresistor conectada al pin A0
como se aprecia en la imagen, se modificara la cantidad de luz que recibe la
fotoresistor para ver las variaciones en la señal.

Fig 3 . Diagrama de conexiones

11
Las primeras líneas de código son importantes ya que se creará un objeto para
realizar la comunicación serial con arduino y si no se “limpia” antes de volver a
llamarlo puede causar un conflicto. El objeto llamado “a” se le asigna la función
arduino que automáticamente detecta todas las características de comunicación
serial y de la tarjeta.

Se declaro la variable “s” inicializada en 0, donde se almacenan los datos filtrados,


un valor de alpha escogido por el usuario y “m” que representa el número de
muestras.

El ciclo for se declara de 1 al número de muestras que se solicitan, en el valor Y(i)


se le pide que lea el voltaje del objeto a especificando el pin específico, en la línea
10 se utiliza la fórmula de EMA usando los valores con los que se están trabajando
y los datos que se vayan adquiriendo se guardan en S(i) mientras que en B(i) se
almacenan las frecuencias más altas. Las últimas lineas de codigo funcionan para
poder graficar las gráficas de Y,S y B en un límite en “y” de 0 a 5 y en “x” de 0 al
último número de muestras

En el gráfico se observa la señal original (rojo), la señal suavizada (azul) y los valores
eliminados de la original(negro). Si se multiplicaran las graficas azul y negro se obtendia
exactamente lo mis que en la grafica roja.

12
Fig 4. Gráfico con las señales obtenidas

13
Práctica #2 : control digital de un led mediante una señal de pulso

En esta práctica se busca mandar una señal digital de 5V mediante un botón en


configuración pull-down, hacia un arduino uno.

Fig 5. Diagrama de conexiones

En la primera parte de este código lo primero que se realizó fue declarar los pines del
arduino uno como variables, en este caso vamos a utilizar el pin 4 para el parpadeo del led
luminoso, y el pin 3 será utilizado para para el botón que nos va a dar la señal que parara el
parpadeo del led.

En la esta parte se realiza la configuración de los pines como entradas o salidas, para
nuestro caso en especifico solo tenemos dos pines, el del led y el del botón, para el uso del
led se pondrá como salida, debido a que la señal que lo hará parpadear vendrá
directamente del arduino, mientras que para el uso del botón se establecerá como entrada,
debido a que la señal del botón será comunicada al arduino, como anteriormente se
mencionó esta señal vendrá de una configuración pull-down, esto quiere decir que la
activación de la señal será cuando el botón sea presionado, a diferencia de la configuración
pull-up, la cual va a mantener la señal activa hasta que se presione el botón, lo que hará
que la señal se apague dado a la conexión a tierra de esta configuración.

14
Aquí entramos a la parte principal del código en donde se realizará la lectura del estado de
la señal del botón y también el parpadeo del led, en las primeras líneas de la programación
se encuentra una instrucción if-else, esta instrucción realizara una acción dependiendo de
una condición predefinida, en este caso, nos interesa que nuestro código detecte si estamos
pulsando el botón, es decir, si la señal de entrada es un 1 en binario, en caso contrario
continuará el parpadeo, se ha utilizado intervalos cortos de tiempo en el parpadeo del led y
en el tiempo de espera para la terminación del bucle del botón presionado, haciendo que
nuestra la respuesta del circuito sea rápida, de modo que nos permita observar con claridad
cuando estará encendido o cuando se apagará completamente.

De esta manera se podría dar como concluido el desarrollo del código de esta práctica, la
última parte consistirá en implementar el código en el arduino y comprobar su
funcionamiento, como se puede ver en las siguientes imágenes.

Fig 6. Fotos del proyecto

15
Conclusiones

Suárez Herrera José Manuel:

La implementación de una placa arduino es de gran utilidad ya que es una placa


multifuncional, que cuenta con puntos a su favor muy llamativos para quien desea
utilizarla, uno de las ventajas que se ven en esta placa es que es muy amigable con
el usuario, por lo que existen demasiados programas con el cual es compatible
arduino y así desarrollar proyectos que se puedan usar de manera práctica, al igual
que se de uso cotidiano, lidiando con problemas que se puedan tener en el dia a dia
como lo pueden ser algunos de los ejemplos que se mencionaron anteriormente en
este proyecto.

Lizola Gomez Martin Rodolfo:

En la realización de este proyecto se ha tenido la necesidad de realizar dos


prácticas que muestran una señal de entrada y una señal de salida afectada por un
proceso de control, en este caso, el proceso de control principal es realizado en
ambos casos por un arduino uno, el cual se utilizó en una práctica para poder
muestrear el comportamiento de una foto resistencia al quitarle o darle en su
defecto, luz, esto nos mostraba la señal original y filtrada en el programa de matlab,
mientras que en la siguiente práctica se optó por algo más simple, en este caso fue
una señal digital proveniente de un interruptor o push button que altera una señal de
temporización a la salida, siendo esta mostrada a través de un led, de modo que al
accionar el interruptor la señal de temporización se ve afectada negativamente al
punto de desaparecer, mientras que al soltarlo la señal de temporización continua
adecuadamente, el objetivo de estas prácticas fue de demostrar como un
controlador puede influir en el comportamiento de circuitos electronicos y como a
traves de el mismo controlador se puede lograr que cambie completamente el
mismo funcionamiento.

Lopéz Lopéz Juán Carlos:

El dispositivo arduino tiene múltiples opciones de trabajo y aplicación lo que la hace


una placa de trabajo bastante útil con respecto a otros modelos, la posibilidad de
conectar al computador y su amplio número de programas con los cuales es
compatible lo hace una herramienta multiusos para aquellos que quizás estén más
familiarizados con el uso de un software distinto al de la página de arduino. Para
adecuar el tiempo de cada uno de los miembros del equipo se eligieron varias
opciones de proyectos quedando como seleccionados los que se presentan en el
documento. Gracias a la participación de todos los compañeros del equipo fue
posible realizar esta práctica con éxito.

16
Lomeli Arce Cesar Alan:

El microcontrolador arduino es de gran importancia debido a que cuenta con una


gran facilidad y carácter libre por lo que cuenta con infinidad de facilidades de uso
en su lenguaje, también con facilidad me refiero a que el arduino no es un diseño
individual en concreto sino que se le puede agregar distintas placas con usos
distintos. Para programar en arduino se utiliza el IDE de arduino.El IDE es un
conjunto de herramientas de software que permiten a los programadores desarrollar
y grabar todo el código necesario para hacer que el Arduino funcione correctamente.
El IDE de Arduino permite escribir, depurar, editar y grabar nuestro programa
(llamados “sketches” en el mundo Arduino) de una manera sumamente sencilla. Las
prácticas que se realizaron fueron realizadas sin ningún problema y están más
detalladas en su apartado.

17
Referencias

[1] Artero Óscar Torrente (2013) Arduino: Curso práctico de formación. Primera.
México: Alfaomega.

Carpeta

https://drive.google.com/drive/folders/17rQapE1yNaLNdCo1cS8EsFdH_YHJTExn?u
sp=sharing

18

También podría gustarte