PROJETOS DE TÓPICOS ESPECIAIS 2º SEMESTRE 2015 Professor Dr. Amauri Amorin Assef. Iniciar enviando os caracteres para escrever UTFPR na tela do PC:

Documentos relacionados
UNIVERSIDADE TECNOLÓGICA FEDERAL DO PARANÁ CURSOS DE ENGENHARIA E TECNOLOGIA DAELT

Introdução do Arduino para aquisição de dados e controle de instrumentos

PSI3441 Arquitetura de Sistemas Embarcados

EL08D - MICROCONTROLADORES

Arduino. Introdução aos Componentes Básicos. Leonardo Mauro P. Moraes. Universidade Federal de Mato Grosso do Sul - UFMS.

CANAL ANALÓGICO

ENG-1450 Microcontroladores e Sistemas Embarcados. Lab02 Apresentação Kit PicGenios Interrupção e Timers

RTC Real Time Counter e Pinos do JM60

Enviando Dados Pela Porta Serial na placa LaunchPad MSP430 Utilizando o ambiente ENERGIA

Revisão Linguagem C Parte 1

Curso de robótica 2. Novos conceitos de programação

LCDs Inteligentes. LCD Inteligente. Gabriel Kovalhuk DAELN / UTFPR

Introdução à plataforma Arduino

2a Prova de ELT024 Programação para Sistemas Embarcados Prof. Rodrigo Maximiano Antunes de Almeida

LINGUAGEM C PARA O 8051

Prof. Adilson Gonzaga

Sistemas Embarcados:

LINGUAGEM C PARA O 8051

MSP430 Lab 06 Comunicação com display de 40 2 e análise das formas de onda no analisador lógico

LED RGB, PWM, Comunicação Serial, Acelerômetro

Manual Versão IP Extreme Tecnologia LTDA

Física Experimental VI

Plano de Aula. 1 o semestre. Aula número 010 Interrupções Internas Timers. Uso de interrupções internas produzidas pelos timers

KIT DIDÁTICO PIC-2377

Exemplos de Programas em C para o 8051 para o compilador crossware EEL Prof. Raimes Moraes

Lab2. Germano Maioli Penello IF-UFRJ aula 17.

Microcontroladores: Programação em C

Interrupção. Prof. Adilson Gonzaga

Plano de Aula. 1 o semestre. Aula número 011 Periféricos Display LCD, Conversor AD e conversor DA (PWM)

UNIVERSIDADE TECNOLÓGICA FEDERAL DO PARANÁ CURSOS DE ENGENHARIA E TECNOLOGIA DAELT

Comércio e Manutenção de Produtos Eletrônicos. Mapeamento de memória e conexões do Controlador CP-WS13/8DI8DO2AI2AO/USB/OEM. Versão 1.

CAPÍTULO VI DECODIFICAÇÃO DE I/O E MEMÓRIA ENTREGA 22/05/2017 (valor 0.2: 0.1 Organização e 0.1 solução) Material para prova P2

Curso introdutório de microcontroladores - Plataforma Arduino

Entender o problema Encontrar um algoritmo para resolvê-lo. Implementar o algoritmo numa linguagem de programação

UTFPR Departamento Acadêmico de Eletrônica Curso Técnico em Eletrônica Microcontroladores 1 - Prof. Cion nov/2010 (atualizado em jul 2015)

Sistemas de Controle 2

Funções dos Microcontroladores Microcontroladores e Microprocessadores Especialização em Automação Industrial

NOTAS DE AULA NE7720 SISTEMAS DIGITAIS - II AULA

MSP430 Lab 05 Biblioteca básica para comunicação com o Display do Nokia5110

Introdução ao Microcontrolador PIC

Programação do Arduino. Parte 1. IDE Wiring

Por Fernando Koyanagi

Microcontroladores: Programação em C

ENG-1450 Microcontroladores e Sistemas Embarcados. Lab03 Execução Experiência 01, Keypad, 7-seg, Exercícios

Temporização Interrupções. Prof: Evandro L. L. Rodrigues. Rotinas de Atraso

Resposta Senoidal em Circuito RC. Experiência 1 Arduino atuando como gerador de Onda Senoidal

INTRODUÇÃO AO ARDUINO DUE, CANAL DIGITAL, FUNÇÃO DELAY

Arduino Lab 17 Inversor de. microcontrolado Versão 1

O ARDUINO. Plataforma de prototipagem eletrônica; Open Source; Formada por duas partes básicas: hardware e software.

CONTROLE DE UM SERVO MOTOR

Programação Básica em Arduino Aula 2

Montagem do Robô. Especificações. domingo, 28 de agosto de 11

1. CONFIGURAÇÃO DO PINO

Bravas shield sample app 2017

Conversor Analógico Digital do MSP430G2553

Bravas shield light sample app 2017

Trabalho Prático Nº3 Porta Paralela

Manual Técnico Driver Chopper 5A Para Motor de Passo

Prof. Adilson Gonzaga

Programação ARM. Engenharia de Sistemas Embarcados Prof. Abel Guilhermino

Arduino. Conectores, Fonte, USB, LEDs. Compilador, Bibliotecas, Editor, Burner

Sistemas Embutidos Prática. Prof. Marcos Augusto Menezes DCC/ /UFMG

INF1007: Programação 2. 0 Revisão. 06/08/2015 (c) Dept. de Informática - PUC-Rio 1

Arduino. Conectores, Fonte, USB, LEDs. Compilador, Bibliotecas, Editor, Burner

Sistemas Operacionais de Tempo Real - Teclados Matriciais

3. Linguagem de Programação C

Projeto para interligação do Teclado Matricial 4X3 o módulo PIC PCI-208 Princípio de Funcionamento:

ecos - Gestores de dispositivos

Temporização da CPU SEL-433 APLICAÇÕES DE MICROPROCESSADORES I. Ciclos de Máquina. Ciclos de Máquina. Temporização Interrupções Rotinas de Atraso

29/03/2017. Temporização da CPU SEL-433 APLICAÇÕES DE MICROPROCESSADORES I. Ciclos de Máquina. Ciclos de Máquina

Revisão C++ - Parte 1

Tutoriais PET-Tele. Introdução à Amostragem de Sinais com o kit Arduino (Versão: A2016M06D21)

4º Trabalho de Laboratório Registos e Contadores

Por Fernando Koyanagi

Cerne Tecnologia e Treinamento

Aula 26 - Contadores

PSI2662 Projeto em Sistemas Eletrônicos Embarcados: Sensores e Atuadores. Temporizadores e Interrupção, AD/DA, Display, Integração com MatLab

O Pino P2.7 não está sendo usado e cada Display mostrará valores de 0 a 9.

LABORATÓRIO DE PROCESSAMENTO DIGITAL DE SINAIS II. Filtros FIR utilizando matlab e arduino duo LAB 4 (BRF)

Departamento de Engenharia Elétrica SEL 384 Laboratório de Sistemas Digitais I PRÁTICA Nº5B

Mapeamento de memória e conexões do Controlador CP-WS11/4DO4DI-USB

Sistemas Digitais e Microcontrolados

SEL PROGRAMAÇÃO EM C

CAPÍTULO XI TEMPORIZAÇÃO DO SISTEMA

Sistemas Embebidos I , Tiago Miguel Dias ISEL, ADEETC - Secção de Eletrónica e Telecomunicações e de Computadores

Programação em Linguagem C

LABORATÓRIO DE PROCESSAMENTO DIGITAL DE SINAIS II. Filtros FIR utilizando matlab e arduino duo LAB 1 (LPF)

Faculdade de Tecnologia SENAI Pernambuco - Unidade Santo Amaro Curso de Tecnologia em Mecatrônica Industrial

Temporizadores e Contadores (Timer/Counter)

Robótica com Arduino Professor: Paulo Marcos Trentin

Arquitetura Von Neumann Dados e instruções são obtidos da mesma forma, simplificando o desenho do microprocessador;

Sistemas Embebidos I , Tiago Miguel Dias ISEL, ADEETC - Secção de Eletrónica e Telecomunicações e de Computadores

Prá$cas Arduino. Manoel Neto

Implementando PWM por soft - um método simples. Por Renie S. Marquet reniemarquet.sites.com.br - versão

Projeto Final de Microcontroladores 2 Alarme de Temperatura

ISE com VHDL estrutural

ESCOLA DE ENGENHARIA DE SÃO CARLOS USP KELEN CRISTIANE TEIXEIRA VIVALDINI AULA 3 PWM MATERIAL COMPLEMENTAR

Transcrição:

1 PROJETOS DE TÓPICOS ESPECIAIS 2º SEMESTRE 2015 Professor Dr. Amauri Amorin Assef 1) Controlador PWM com frequência ajustável entre 20 khz e 50 khz (passo de 5 khz), razão cíclica entre 0 e 100% (passo de 5%), e sensor de temperatura LM35. A leitura e configuração dos parâmetros deverá ser realizada de forma serial através de comandos do PC da placa TWR-K60. Iniciar enviando os caracteres para escrever UTFPR na tela do PC: Enviar o título do projeto e o nome dos integrantes da equipe: Desenvolvimento de um controlador PWM com frequência ajustável (20 a 50 khz) e razao ciclica de 0 a 100% Equipe: Digite + para aumentar frequencia Digite - para diminuir Digite 1 para aumentar a razao de trabalho Digite 2 para diminuir a razao de trabalho Quando um valor for atualizado ou a cada 4s deve ser enviada pela placa uma mensagem com os valores atuais de temperatura, frequência e razão cíclica (utilizar interrupção para setar um flag de sinalização). Utilizar um LED da placa TWR-K60 com saída do sinal PWM (PTA10 FTM2_CH0 ou PTA11 FTM2_CH1). 2) Implementar um controlador de servo motor com posicionamento configurado através de valor lido de um trimpot (aumentar e diminuir razão de trabalho) da placa TWR- K60. Através de modulação PWM com período de 20 ms (f = 50 Hz), o posicionamento angular pode ser definido entre os parâmetros de largura mínima de (1 ms), que equivale ao deslocamento do eixo em -90º em relação a posição central, e largura máxima (2 ms), que equivale ao deslocamento do eixo em + 90º da posição central do pulso de controle, conforme exemplificado na Figura 1.

2 Utilizar um LED da placa TWR-K60 com saída do sinal PWM (PTA10 FTM2_CH0 ou PTA11 FTM2_CH1). VCC 0 V VCC 1 ms 20 ms t 0 V VCC 1,5 ms 20 ms t 0 V 2 ms 20 ms t Figura 1 Exemplo de sinais de controle para servo motor. 3) Com base nas rotinas a seguir, escrever as funções para gerar quatro formas de onda através do módulo DAC de 12 bits (0 a 4095) do K60 (registros DAC0_DAT0L e DACx_DAT0H para o DAC0), em função das duas chaves da placa TWR-K60. A chave SW1 (PTA19) incrementa e a chave SW2 (PTE26) decrementa o índice do tipo da onda. Alterar o programa para clock de 50 MHz para gerar uma onda de 60 Hz (período T igual 16,67ms) com 256 amostras de sinais, isto é, atualização do DAC a cada 65,1μs. Equação do DAC: Vout = Vin (1 + DACDAT0[11:0])/4096, onde Vin=3,3V Enviar o sinal de carga do DAC0 para um pino com saída PWM da placa TWR-K60 (PTA10 FTM2_CH0 ou PTA11 FTM2_CH1) O pino de saída do DAC0 está no TP8 (test point 8 - a serigrafia está no lado inferior da placa).

3 Tipo de onda Forma de onda 0 Senóide 1 Quadrada 2 Triangular 3 Dente de Serra Número de pontos Valor mínimo Valor máximo 256 0 4095 // Código exemplo: K60 Learning Modules Rochester Institute of Technology Department of Computer Engineering Authors: Dan Cheung, Josh Watts, Sam Skalicky Title: Lab 7 - DAC Description: In this lab we output 4 different signals using the DAC & switch between which is currently being outputted using SW1 & SW2 as inputs Date: 8/1/2011 Revision: 1.0 Filename: main.c / #include "derivative.h" include peripheral declarations / This function sets the required registers to operate the peripherals correctly / void K60_setup() { //Button/LED Setup SIM_SCGC5 = SIM_SCGC5_PORTA_MASK SIM_SCGC5_PORTE_MASK; //enable LED/SW clk PORTA_PCR11 = PORT_PCR_MU(0x01); // E1 PORTA_PCR28 = PORT_PCR_MU(0x01); // E2 PORTA_PCR19 = PORT_PCR_MU(0x01) PORT_PCR_PE_MASK PORT_PCR_PS_MASK; // SW1 PORTE_PCR26 = PORT_PCR_MU(0x01) PORT_PCR_PE_MASK PORT_PCR_PS_MASK; // SW2 GPIOA_PDDR = (1 << 11) (1 << 28); // Set PTA11 and PTA28 to output This function is provided with a reference counter variable (dac_cnt) and manages the counting & outputs value to generate a sawtooth wave

4 / long sawtooth(long dac_cnt) { if((dac_cnt) < 8191) (dac_cnt)++; (dac_cnt) = 0; return (dac_cnt)/2; This function is provided with a reference counter variable (dac_cnt) and manages the counting & output value to generate a square wave / long square(long dac_cnt) { if((dac_cnt) < 8191) (dac_cnt)++; (dac_cnt)=0; if((dac_cnt) < 4096) return 0; return 4095; This function is provided with a reference counter variable (dac_cnt) and manages the counting & output value to generate a triangular wave / long triangular(long dac_cnt) { if((dac_cnt) < 8191) (dac_cnt)++; (dac_cnt) = 0; if ((dac_cnt) < 4096) return (dac_cnt); return (8191 - (dac_cnt)); //sine wave lookup table long sine_table[256] = { 128,131,134,137,140,143,146,149,152,155,158,162,165,167,170,173,176,179,182, 185,188,190,193,196,198,201,203,206,208,211,213,215,218,220,222,224,226,228, 230,232,234,235,237,238,240,241,243,244,245,246,248,249,250,250,251,252,253, 253,254,254,254,255,255,255,255,255,255,255,254,254,254,253,253,252,251,250, 250,249,248,246,245,244,243,241,240,238,237,235,234,232,230,228,226,224,222, 220,218,215,213,211,208,206,203,201,198,196,193,190,188,185,182,179,176,173, 170,167,165,162,158,155,152,149,146,143,140,137,134,131,128,124,121,118,115, 112,109,106,103,100,97,93,90,88,85,82,79,76,73,70,67,65,62,59,57,54,52,49, 47,44,42,40,37,35,33,31,29,27,25,23,21,20,18,17,15,14,12,11,10,9,7,6,5,5, 4,3,2,2,1,1,1,0,0,0,0,0,0,0,1,1,1,2,2,3,4,5,5,6,7,9,10,11,12,14,15,17,18, 20,21,23,25,27,29,31,33,35,37,40,42,44,47,49,52,54,57,59,62,65,67,70,73, 76,79,82,85,88,90,93,97,100,103,106,109,112,115,118,121,124, ; This function is provided with a reference counter variable (dac_cnt) and manages the counting & output value to generate a sine wave / long sine(long dac_cnt) { (dac_cnt)++; if((dac_cnt) == 8191) (dac_cnt) = 0; return sine_table[(dac_cnt)/32]16;

5 int main(void) { char type=0; long changed=0; long dac_cnt = 0; unsigned dac_val=0; K60_setup(); //DAC SIM_SCGC2 = SIM_SCGC2_DAC0_MASK; //enable DAC clk DAC0_C0 = 0xC0; //binary = 11000000 DAC Settings 1 DAC0_C1 = 0x0; //binary = 00000000 DAC Settings 2 for(;;) { //check SW1 if((gpioa_pdir & (1 << 19))!= 0) { //push detected (debounce) changed++; //clear led GPIOA_PCOR = (1 << 11); { //set led GPIOA_PSOR = (1 << 11); //set type if(changed > 10000 && type > 0) { type--; //decrement type dac_cnt = 0; //reset dac_cnt changed = 0; //button released //check SW2 if ((GPIOE_PDIR & (1 << 26))!= 0) { //push detected (debounce) changed++; //set led GPIOA_PSOR = (1 << 28); { //clear led GPIOA_PCOR = (1 << 28); //set type if(changed > 10000 && type < 3) { type++; //increment type dac_cnt = 0; //reset dac_cnt changed = 0; //button released //check type switch(type) { case 0: dac_val = sawtooth(&dac_cnt); //output sawtooth wave break; case 1: dac_val = square(&dac_cnt); //output square wave break; case 2: dac_val = sine(&dac_cnt); //output sine wave break; default: dac_val = triangular(&dac_cnt);//output triangular wave //Set DAC output value (12bit) DAC0_DAT0L = (char)(dac_val & 0x00FF); DAC0_DAT0H = (char)(dac_val >> 8); //set low 8 bits //set high 4 bits return 0;

4) Escrever um tutorial na forma de artigo sobre um dos módulos do microcontrolador MK60DN512VMD10 (ver manual K60 Sub-Family Reference Manual.pdf). No documento deve constar obrigatoriamente as seguintes seções: Resumo, Palavras chave, Introdução, Materiais e Métodos, Resultados e Conclusões. Deve ser incluído um ou mais exemplos de exercícios e os resultados (códigos, imagens, fotos, tela do osciloscópio, etc.). Obs: Entregar até a penúltima semana de aula e utilizar o modelo (template) disponível no site do professor Amauri Assef. 6