Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
PROCESAMIENTO
DIGITAL DE SEALES
ANALIZADOR DE ESPECTROS
INTEGRANTES:
EDGAR MACAS
ALEXIS ORMAZA
ALEX ZURITA
ESCUELA POLITECNICA NACIONAL
ENUNCIADO
A) Generar una seal compuesta por 3 tonos puros de 100,200 y 300 Hz puede
hacerlo mediante el puerto de audio.
B) En Hardware realizar :
Adquirir la seal mediante un Pin A/D
Mostrar la seal en una LCD
Disear e implementar un filtro de modo que solo pase el tono de 100
Hz.
Verificar mediante anlisis espectral de modo que se muestre en la LCD
el espectro de Potencias.
Repita lo mismo para los otros dos tonos.
MATERIALES
ARDUINO MEGA 2560
Arduino es una marca de microcontroladores mundialmente conocida por los amantes
de la electrnica, la programacin y la robtica. El Arduino Mega 2560 es una placa con
un microcontrolador Atmega2560.
Cuenta con 54 pines entradas/salidas digitales (de los cuales 14 se pueden utilizar como
salidas PWM) y 16 entradas analgicas, 4 UARTs (puertos de hardware de serie), un
oscilador de cristal de 16 MHz, un puerto USB de conexin, un conector de alimentacin,
una cabecera de ICSP, y un botn de reinicio
Contiene todo lo necesario para apoyar al microprocesador, slo tiene que conectarlo a
un ordenador con un cable USB, o con un alimentador adaptador AC-DC o una batera
para comenzar.
GLCD
Los LCDs grficos (GLCD por sus siglas en ingls) son pantallas de cristal lquido cuya
resolucin es medida en pixeles. A diferencia de los LCDs de texto, en los GLCDs, se
puede tener acceso a cada pixel disponible, potenciando con ello las posibilidades de
presentacin y manejo de informacin.
TABLA 1.
Caractersticas tcnicas del GLCD TS-12864A-2
FEATURES
El GLCD tiene pines de control y de datos. Los de control son: CS1, CS2, DI, RW, E y
Reset. Los de datos son del DB0 al DB7. Este GLCD se divide en 2 zonas de 64 * 64
pixeles. Con los pines de seleccin CS1 y CS2 seleccionamos que zona queremos usar.
Con los pines DI y RW nos sirven para controlar el display y decirle si queremos leer o
escribir datos desde o hacia el display, ejecutar alguna instruccin o leer el status del
GLCD.
El pin E (enable) sirve como forma de decirle al display que lea los otros pines de control
y ejecute lo que se le indica por medio de estos y el pin de Reset, pues ya se han de
imaginar para que sirve. Con los pines de datos se va poder enviar o recibir datos del
display y leer el status del chip de control del display.
DISTRIBUCION DE PINES
Configuracin en sumador, donde podemos sumar varias seales en la entrada para mandar la
seal en el arduino.
Datasheet LM358
CIRCUITO SUMADOR
5+
100 HZ
R2
10k U1:A
200 HZ
8
R3 3
10k 1
A
300 HZ 2
R4 B
4
10k R1 LM358 C
10k D
R5
10k
SIMULACION
Programacin
CIRCUITO IMPLEMENTADO
Para el circuito implementado se tuvo que realizar ciertos cambios al circuito pensado
originalmente, ya que se conto con ciertas limitaciones, como son:
10k
10k
R2
R1
1k
RV1
Seales de entrada
10k
R5
2
3
U1:A(V+)
4 8
1
10k
R4
LM358
U1:A
A6 PH4/OC4B
pin de decision
PF6/ADC6/TDO 6
A5 PH3/OC4A
PF5/ADC5/TMS 5
A4 PE3/OC3A/AIN1
PF4/ADC4/TCK 4
PG5/OC0B
3
A8 PE5/OC3C/INT5
ATMEGA1280
PK0/ADC8/PCINT16 2
ANALOG IN
A9 PE4/OC3B/INT4
PK1/ADC9/PCINT17 1
A10 TX PE1/TXD0/PDO
PK2/ADC10/PCINT18 0
A11 RX PE0/RXD0/PCINT8
PK3/ADC11/PCINT19
A12
PK4/ADC12/PCINT20 14
A13 TX3 PJ1/TXD3/PCINT10
PK5/ADC13/PCINT21 15
A14 RX3 PJ0/RXD3/PCINT9
PK6/ADC14/PCINT22 16
A15 TX2 PH1/TXD2
PK7/ADC15/PCINT23 17
RX2 PH0/RXD2
18
TX1 PD3/TXD1/INT3
19
RX1 PD2/RXD1/INT2
COMUNICATION
20
SDA PD1/SDA/INT1
21
SCL PD0/SCL/INT0
DIGITAL
PL3/OC5A
PL4/OC5B
PG2/ALE
PB0/SS/PCINT0
PB1/SCK/PCINT1
PB2/MOSI/PCINT2
PB3/MISO/PCINT3
PL0/ICP4
PL1/ICP5
PL2/T5
PD7/T0
PC0/A8
PC1/A9
PC2/A10
PC3/A11
PC4/A12
PC5/A13
PC6/A14
PC7/A15
PA7/AD7
PA6/AD6
PA5/AD5
PA4/AD4
PA3/AD3
PA2/AD2
PA1/AD1
PA0/AD0
PL6
PL7
PL5/OC5C
PG0/WR
PG1/RD
53
52
51
50
49
48
47
46
45
44
43
42
41
40
39
38
37
36
35
34
33
32
31
30
29
28
27
26
25
24
23
22
ARD1
ARDUINO MEGA1280
18
17
16
15
14
13
12
11
10
9
8
7
6
5
4
3
2
1
E
DI
V0
R/W
DB7
DB6
DB5
DB4
DB3
DB2
DB1
DB0
CS2
CS1
RST
VCC
GND
-Vout
LCD1
LGM12641BS1R
OSCILOSCOPIO
void setup()
{
GLCD.Init();// Inicializacin de la pantalla GLCD
void loop()
{
float fc=1000;//frecuencia de
corte
void setup()
{
pinMode(5,INPUT);// DECLARACION DE UN PIN DE ENTRADA PARA UTILIZARLO COMO
SELECCION ENTRE EL ESPECTRO DE POTENCIAS Y LAS COMPONENTES DESPUES DEL FILTRO
GLCD.Init(); // Inicializacin de la pantalla GLCD
GLCD.SelectFont(System5x7); //librera obligatoria , la cual define el tipo de fuente a utilizar
que para nuestro caso se utiliza una fuente del sistema, la cual utiliza 7 pixeles de alto y menos
de 500 bytes
// para el proyecto se utilizo la fuente del sistema , pudiendo utilizarse una fuente Arial 14
pero cual utilizara 1200 bytes de la memoria , cambiando el parmetro
GLCD.SelectFont(System12x7)
for (int z=0; z<64; z++) {lastpass[z]=0;}; // Creacion del array de ceros para la ftt, fill the
lastpass[] array with dummy dataGLCD.SelectFont(System5x7)
};
void loop()
{
if(digitalRead(5)==LOW){// ENTRADA DEL SWITCH SI PIN5 =0, ENTONCES GRAFICO EL
ESPECTRO DE POTENCIAS
for (i=0; i < 128; i++){ //ARRAY DE VALORES REALES E IMAGINARIOS 128 MUESTRAS
val = analogRead(0); // Adquirimos la seal analgica en el Pin A0, el cual hace una
conversion de 8 bits
data[i] = val/4-64; // Se divide el valor obtenido para un valor de 4 ya que las medidas
que se obtienen son gran valor y no entraran en la escala del lcd y se invierte la pantalla
im[i] = 0; // ya que la seal no posee componentes imaginarios se les da un valor de
cero
};
fix_fft(data,im,7,0);
GLCD.ClearScreen();// Limpiamos la
pantalla de cualquier basura
GLCD.print(" ANALISIS ESPECTRAL"); //
Se escribe un texto fijo dentro de la
pantalla
GLCD.CursorTo(0,1);GLCD.print(" 100");
// se nombra la primera frecuencia que
puede ser mostrada
GLCD.CursorTo(14,1);GLCD.print("4300");
// se nombra la ltima frecuencia que
puede ser mostrada
};
delay(1000);// se visualizara por mil milisegundos y refrescara la pantalla
GLCD.CursorTo(14,1);GLCD.print("4300");
// se nombra la ultima frecuencia que
puede ser mostrada
};
delay(1000); // se visualizara por mil milisegundos y refrescara la pantalla
}
};
Resultados
Circuito Implementado
Seal Original
Filtro a 100 Hz