Pesquisar neste blog
26/09/2020
Sinais e Sistemas Lineares em tempo contínuo
Prova 2 de Sinais: 2020/1
2° avaliação de Sinais - Nota = 85%
1) Obtenha os coeficientes da série de Fourier em tempo discreto para o sinal x[n] dado abaixo. Desenvolver o problema passo a passo.
Resolução:
2) Para os sinais dados abaixo, obtenha a transformada de Fourrier de tempo discreto diretamente utilizando a definição. Assuma |y|<1.
Resolução:
3) Considere um sistema LIT descrito pela equação de diferenças abaixo:
y[n]+ 7y[n -1] + 12y[n - 2] = x[n] + 2x[n - 1], determine:
4) Assinale com V(verdadeiro) ou com F(falso) as seguintes afirmações:
A sequência correta das afirmações dadas de cima para baixo, é:
a) ( ) V, V, V, F, F, V
b) ( ) V, F, F, V, F, F
c) ( ) F, F, V, F, F, V
d) ( ) F, F, F, V, F, V
e) ( ) F, V, V, F, F, V
Resolução:
Resposta letra:
Lista 3: Transformada Z
Usando a definição de transformada Z, determine a transformada Z e a RDC para cada um dos seguintes sinais:
Resolução:
Lista 2: Série de Fourier Tempo Discreto
Sequências periódicas
19/09/2020
Timer1 com PIC 16F628A
Software Proteus 7.6 |
17/09/2020
PWM com PIC 16F628A
16/09/2020
PWM com PIC 16F628A
Código feito em CCS C Compiler
#include <16F628a.h>
#fuses intrc_io,nowdt,nomclr//configurando os fuses bits
#use delay(clock = 8M)
#use fast_io(a)
#use fast_io(b)
int valor;
void main(void){
set_tris_b(0x00);//todo port b como saída
setup_ccp1(CCP_PWM);//setando o canal PWM
//(corresponde pro escale: pode ser 1 ou 16 , carga do registrador que deixar o ciclo em 0 ,ciclo ativo: registrador ccpR1L)
setup_timer_2(T2_DIV_BY_16,255,1);//função que configura o PWM
while(true){
for(valor = 0; valor < 255; valor++){
set_pwm1_duty(valor);
delay_ms(100);
}
for(valor = 255; valor > 1; valor--){
set_pwm1_duty(valor);
delay_ms(100);
}
}
}
Motor DC usando PWM com PIC 18F4550
Software: Proteus versão 7.6 |
13/09/2020
Timer0 com interrupção usando PIC 16F628A
Código feito em CCS C Compiler
#include <16f628a.h>
#fuses intrc_io,nowdt, nomclr
#use delay(clock = 4MHz)
#use fast_io(a)
#use fast_io(b)
#define use_portb_lcd TRUE//configurando no port b
#include <lcd.c>
int cont, timer;
//diretiva de interrupção do timer 0
#INT_TIMER0
void contador(void){
lcd_putc("\fINTERRUPCAO \n ATIVADA");
for(cont = 0; cont < 5; cont++){
output_low(pin_a0);//nivel baixo no pino a0
output_high(pin_a1);//nivel alto no pino a1
delay_ms(500);
output_low(pin_a1);
delay_ms(500);
set_timer0(250);
}
lcd_putc("\fINTERRUPCAO \n FINALIZADA");
delay_ms(2000);
lcd_putc("\fVOLTANDO AO \nPROGRAMA");
delay_ms(2000);
lcd_putc("\fAGUARDANDO\NINTERRUPCAO");
delay_ms(100);
}
void main(void){
set_tris_a(0xf0);//1/2 como entrada e 1/2 como saída
set_tris_b(0x00);//port saida
output_b(0x00);
ENABLE_INTERRUPTS(GLOBAL);//chave geral da interupcao
ENABLE_INTERRUPTS(INT_TIMER0);//habilitando a interrupcao
SETUP_TIMER_0(RTCC_EXT_L_TO_H);//declarando oscilador xnterno e incremento atraves do RA4 , COLOCANDO A BORDA DE DESCIDA PARA SUBIDA
SET_TIMER0(250);//setando em 250
lcd_init();
lcd_putc("\fAGUARDANDO\nINTERRUPCAO");
while(true){
output_high(pin_a0);
delay_ms(500);
output_low(pin_a0);
delay_ms(500);
timer = get_timer0() + 6;//captura atraves da função e soma + 6
lcd_putc("\fAGUARDANDO\nINTERRUPCAO");
printf(lcd_putc," %u", timer);
}
}
Jogo da Quina com PIC 16F628A
#include <16f628a.h>
#fuses intrc_io,nowdt, nomclr
#use delay(clock = 4MHz)
#use fast_io(a)
#use fast_io(b)
#define use_portb_lcd TRUE
#include <lcd.c>
int cont = 1, timer, num[5];
void main(void){
set_tris_a(0xff);//todo port a como entrada
lcd_init();
setup_timer_0(rtcc_internal|rtcc_div_1);//definindo como oscilador interno e, escale como 1
lcd_putc(" QUINA \n");
delay_ms(200);
lcd_putc(" \f SORTEANDO:\n");
delay_ms(500);
set_timer0(1);
while(true){
while(cont <= 5){
timer = GET_TIMER0();
if(timer > 0 && timer < 81){
num[cont] = timer;
printf(lcd_putc,"%u ", num[cont]);
cont++;
}
delay_ms(331);
}
delay_ms(3000);
lcd_putc("\f SORTEANDO:\n");
cont = 1;
}
}
Créditos para: Alexandro Lima
Timer usando com PIC 16F628A
Código feito em CCS C Compiler
#include <16f628a.h>
#fuses intrc_io,nowdt, nomclr
#use delay(clock = 4MHz)
#use fast_io(a)
#use fast_io(b)
int cont, timer;
void main(void){
set_tris_a(0xf);//1/2 como entrada e 1/2 como saída
set_tris_b(0x00);//port saida
output_b(0x00);
SETUP_TIMER_0(RTCC_EXT_L_TO_H);//declarando oscilador xnterno e incremento atraves do RA4 , COLOCANDO A BORDA DE DESCIDA PARA SUBIDA
SET_TIMER0(0);
while(true){
timer = GET_TIMER0();//captura e armazena na variável timer
if(timer == 5){
for(cont = 0; cont < 5; cont++){
output_high(pin_b1);
delay_ms(500);
output_low(pin_b1);
delay_ms(500);
set_timer0(0);
}
}
}
}