CONTROLO DE UM STEP MOTOR



Documentos relacionados
Amplificadores Operacionais

TRABALHO 3 Circuitos RLC resposta nos domínios do tempo e da frequência

PROGRAMAÇÃO DE UM MICROPROCESSADOR

ELECTROMAGNESTISMO CAMPO MAGNÉTICO

Campo Magnético de Espiras e a Lei de Faraday

Modelo Cascata ou Clássico

DETERMINAÇÃO DA RESISTÊNCIA INTERNA DE UMA PILHA

Descrição dos pinos do Módulo Driver Motor com Dupla Ponte-H - L298N:

Medição de Tensões e Correntes Eléctricas Leis de Ohm e de Kirchoff (Rev. 03/2008) 1. Objectivo:

CIRCUITOS E SISTEMAS ELECTRÓNICOS

Espectro da Voz e Conversão A/D

Um sistema SMS 1 simplificado

Interrupções. As interrupções são casos especiais de chamadas de procedimentos.

Manual de funcionamento

TRABALHO LABORATORIAL Nº 5

Cátia Homem, 9 de Janeiro de 2008 Página 1

Tutorial de Eletrônica Aplicações com 555 v

TECNOLOGIAS DA INFORMAÇÃO E COMUNICAÇÃO. SISTEMAS DE GESTÃO DE BASE DE DADOS Microsoft Access TECNOLOGIAS DA INFORMAÇÃO E COMUNICAÇÃO

Base de Dados para Administrações de Condomínios

3. Arquitetura Básica do Computador

Aparelhos de Laboratório de Electrónica

Projecto de uma placa com DIP-Switches e LCD com ligação à placa DETIUA

Redes de Computadores (RCOMP 2014/2015)

O protocolo MODBUS define também o tipo diálogo entre os equipamentos, define por exemplo quem pode enviar dados e em que altura.

DETERMINAÇÃO DA RESISTÊNCIA INTERNA DE UMA PILHA

Introdução aos Sistemas Operativos

Projecto de Programação MEEC /2011-1ºSemestre. Mestrado Integrado em Engenharia Electrotécnica e de Computadores

CALIBRAÇÃO DE UM TERMOPAR DE COBRE CONSTANTAN

Procedimentos para a divulgação de eventos no site da ECUM

Porta Série. Trabalhos Práticos AM 2007/2008. Porta Série. Objectivos

Controle de Múltiplos Pivôs Centrais com um único Conjunto Motor-Bomba

Mini-Projecto de PAII Ano Lectivo 2000/01

Copyright 2013 VW Soluções

Prof. Sandrina Correia

Pontifícia Universidade Católica de São Paulo

Controle para Motores de Passo usando módulo USB-6008

Controladores Lógicos Programáveis. Automação e Controlo Industrial. Escola Superior de Tecnologia. Ricardo Antunes, António Afonso

UNIVERSIDADE TECNOLÓGICA FEDERAL DO PARANÁ. Câmpus Ponta Grossa Coordenação do Curso Superior de Tecnologia em Automação Industrial

UNIVERSIDADE CATÓLICA DE PETRÓPOLIS CENTRO DE ENGENHARIA E COMPUTAÇÃO

GereComSaber. Disciplina de Desenvolvimento de Sistemas de Software. Sistema de Gestão de Serviços em Condomínios

TECNOLOGIAS DE INFORMAÇÃO E COMUNICAÇÃO

Linhas de Transmissão

Tarefa Orientada 6 Edição de Dados

Ficha 1. Conjunto de informação básica, essencial para utilizar sensores e actuadores.

4.1 Sequências de caracteres

Figura 1 - O computador

SISTEMAS E INSTALAÇÕES ELÉCTRICAS DE NAVIOS (M422)

Dadas a base e a altura de um triangulo, determinar sua área.

6 Conclusões e Trabalhos futuros 6.1. Conclusões

MANUTENÇÃO ELÉTRICA INDUSTRIAL * ENROLAMENTOS P/ MOTORES CA *

ELABORAÇÃO DE REGISTOS

Instituto Politécnico de Beja. Escola Superior de Tecnologia e Gestão

1. NÍVEL CONVENCIONAL DE MÁQUINA

A Gestão, os Sistemas de Informação e a Informação nas Organizações

Norma ISO Norma ISO Norma ISO 9004 SISTEMA DE GESTÃO DA QUALIDADE REQUISITOS FUNDAMENTOS E VOCABULÁRIO

Processos e Threads (partes I e II)

DECODIFICADOR DE DISPLAY DE 7 SEGMENTOS COM LATCH

SISTEMAS DE INFORMAÇÃO PARA GESTÃO

MANUAL DE INSTRUÇÕES

GereComSaber. Disciplina de Desenvolvimento de Sistemas de Software. Sistema de Gestão de Serviços em Condomínios

Manual de Utilizador. Disciplina de Projecto de Sistemas Industriais. Escola Superior de Tecnologia. Instituto Politécnico de Castelo Branco

Novo Formato de Logins Manual de Consulta

1.3. Na figura 2 estão representados três excertos, de três situações distintas, de linhas de campo magnético. Seleccione a opção correcta.

- 1 - RESUMO SISTEMA DE MEDIÇÃO DE CONSUMOS DE LINHA DA CANELA EM TEMPO REAL

Múltiplos Estágios processo com três estágios Inquérito de Satisfação Fase II

Programação 2ºSemestre MEEC /2011. Programação 2º Semestre 2010/2011 Enunciado do projecto

Curso de Eng. Informática Linguagens de Programação. C Sharp University Data Processing. (C Sharp Universidade de Processamento de Dados) Docente:

PROCEDIMENTOS DE MUDANÇA DE COMERCIALIZADOR - CONSULTA PÚBLICA -

4.1. UML Diagramas de casos de uso

Controle Parental. Introdução

GUIA DE LABORATÓRIO LABORATÓRIO 2 LEI DE OHM

Manual de Colaboração

CP C U P U - Un U i n da d d a e d e Ce C n e t n ral a de d e Pr P oc o es e sam a e m n e t n o o Pr P oc o es e sad a o d r o Aula 03

Manual de Utilizador. CNCVisual. Julho de Âmbito do Projecto de 5º Ano de Engenharia Mecânica. Autor: Bruno Lameiro

Lei dos transformadores e seu princípio de funcionamento

PHC Letras. Execute todos os movimentos com letras a receber ou a pagar e controle totalmente a situação por cliente ou fornecedor

Receptores elétricos

Informática II Cap. 3

Controladores Lógicos Programáveis 2

Tais operações podem utilizar um (operações unárias) ou dois (operações binárias) valores.

Autor: Luís Fernando Patsko Nível: Intermediário Criação: 22/02/2006 Última versão: 18/12/2006. PdP. Pesquisa e Desenvolvimento de Produtos

Comunicação documentos de transporte AT via Webservice Singest Sistema Integrado de Gestão Cambragest Serviços de Gestão e Software

Copyright Restinfor, Lda

Instituto Superior Politécnico de VISEU. Escola Superior de Tecnologia

Comunicação de Dados de Autenticação e Credenciais de Acesso para Resposta ao Inquérito

Programa de Formação Contínua em Matemática para Professores dos 1º e 2º Ciclos do Ensino Básico Tarefa: As roupas do Tomás

Introdução à Programação B Licenciatura em Engenharia Informática. Enunciado do trabalho prático. Quem quer ser milionário? 20 de Dezembro de 2007

O que farias? pretendem servir de apoio à dinamização de sessões de trabalho

O que esperar do SVE KIT INFORMATIVO PARTE 1 O QUE ESPERAR DO SVE. Programa Juventude em Acção

Computação Paralela. Desenvolvimento de Aplicações Paralelas João Luís Ferreira Sobral Departamento do Informática Universidade do Minho.

Primeiros "computadores" digitais. Execução de um programa. Consolas. Primórdios dos computadores. Memória interna. Computadores com memória interna

Estabilizada de. PdP. Autor: Luís Fernando Patsko Nível: Intermediário Criação: 22/02/2006 Última versão: 18/12/2006

Prototype, um Design Patterns de Criação

Figura 1: Ensaio em vazio implementado

Guia de utilização. Gestão de Mensagens. Março 2009

Manual do PolicyKit-kde. Daniel Nicoletti Tradução: Luiz Fernando Ranghetti

Transcrição:

Relatório de Microprocessadores 2007/2008 Engenharia Física Tecnológica CONTROLO DE UM STEP MOTOR Laboratório III Trabalho realizado por: André Cunha, nº53757 João Pereira, nº 55315 Grupo 3; 5ªfeira 13:00-16:00h Lisboa, 22 de Outubro de 2007

Introdução e Objectivos O objectivo deste trabalho consiste em controlar um step motor através da introdução de comandos pela consola que os envia pela porta série. O comando deverá incluir um parâmetro para o número de steps dado pelo motor, outro para a precisão dos micro passos dados pelo motor e ainda outro para o sentido de rotação. Adicionalmente fazer-se-á um pequeno estudo adicional para determinar a velocidade máxima de rotação do motor escolhido. Implementação, Procedimento e Análise Em termos concretos, começaremos por seleccionar um step motor disponível, determinaremos a sequência correcta dos pinos do motor e depois as sequências binárias para a precisão normal e dupla de forma a criar os movimentos de rotação pretendidos. Construir-se-á então um algoritmo em C para efectuar a rotação do motor com os parâmetros desejados e integrar-se-á isto com um sistema estruturado de recepção, interpretação e execução de comandos atingindo-se assim o objectivo deste trabalho laboratorial. 1ª sessão de laboratório Material utilizado: Step motor OEM de 6 fios; Osciloscópio digital; Multímetro; Foi-nos então atribuído o step motor da figura 1. Sem entrar em detalhes sobre a estrutura dos step motors, começou-se por determinar com que tipo de step motor se ia trabalhar através da medição da resistência entre os vários fios. Os resultados estão expressos na seguinte tabela para melhor visualização: 0 11,3 22,3 0 11,3 22,3 11,3 0 11,3 11,3 0 11,3 22,3 11,3 0 22,3 11,3 0 Tabela 1 Resistência entre os diferentes pinos do step motor

Concluíu-se então que a estrutura do step motor usado era a seguinte: Figura 1 Esquemático do step motor usado Tendo então determinado a estrutura do step motor usado, restava agora saber a sequência de disposição das bobines internas para saber com que ordem se deve fornecer corrente através dos terminais do step motor. Para descobrir a sequência correcta fazer-se-á uso da Lei de Indução de Faraday. Se a passagem de corrente através das bobines gera um campo nas bobines que induz o movimento do núcleo magnético do motor, o processo inverso, isto é, a rotação externa (neste caso manual) do núcleo magnético do motor (agora gerador) vai induzir corrente nas bobines de forma sequencial, corrente essa que podemos visualizar se ligarmos os terminais do motor (agora gerador) às pontas de prova do osciloscópio. Visuzalizando a diferença de fase entre os vários sinais gerados, podemos então determinar com facilidade a sequencia correcta de rotação. Canal (osciloscópio) Pino (step motor) Tabela 2 Bijecção ordenada entre pinos e canais do osciloscópio Figura 2 Sinais gerados no osciloscópio (sentido horário)

Por fim, estabeleceram-se as sequências binárias que irão ser usadas no programa para controlar o step motor e que tendo em conta o princípio de funcionamento deste e os dados recolhidos acima, se tornam imediatas. Quando queremos efectuar movimentos em precisão simples, basta-nos fornecer corrente de forma sequencial a cada pino correspondendo isso à sequência binária: 1000, 0100, 0010, 0001, 1000,... Quando queremos efectuar movimentos em precisão dulpa, criamos um estado intermédio através do fornecimento de corrente em simultâneo a dois pinos sucessivos. Isto vai obrigar o núcleo magnético a colocar-se numa posição intermédia entre as duas bobines gerando assim mais precisão. A sequência é naturalmente maior devido ao aumento de resolução: 1000, 1100, 0100, 0110, 0010, 0011, 0001, 1001, 1000,... E aqui se concluiu a primeira sessão de laboratório. 2ª sessão de laboratório MPLAB IDE e compilador de C para este IDE SDK PIC184550 Breadboard Base de trabalho (para fornecimento de alimentação de 5V) ULN2803 Nota: Todo o código se encontra em anexo devidamente comentado e explicado. Este relatório explícita apenas a filosofia usada bem como as escolhas efectuadas na implementação. Na segunda sessão começou-se por construir o algoritmo principal do programa que será o núcleo da função responsável pela rotação do motor. A função de rotação deverá prever a existência de orientação, precisão e assegurar que não existem saltos entre estados não consecutivos (saltos bruscos). Para resolver a questão da orientação resolveu-se utilizar o sinal do número de passos a dar pelo motor, estabelecendo o sinal positivo para rotação no sentido anti-horário e sinal negativo para o sentido inverso. Para o segundo ponto, apesar da primeira sequência sugerir fortemente a utilização de um shift right/left, a segunda lista torna esta solução pouco vantajosa uma vez que não é suficientemente geral para prever o segundo caso. Desta forma, resolveu-se utilizar listas que serão escolhidas de acordo com o modo de rotação desejado. Este método é muito geral e facilita a futura implementação de situações que envolvam sequências numéricas caóticas.

Por fim, para assegurar que não temos saltos bruscos tinham-se duas hipóteses, ou guardar sempre o último estado do motor e rodar a partir desse ponto ou obrigar o motor a efectuar sempre um determinado número de passos que assegure que estou sempre em situação conhecida. Por questões de conveniência e sugestão do docente, escolheu-se a segunda opção. Como nota adicional, convém referir que a velocidade de rotação será controlada através de um parâmetro interno do programa utilizando uma função de delay. A função responsável pela interpretação e armazenamento dos parâmetros de orientação, precisão e número de passos é a função interpreterroda. A função responsável pela execução do ciclo de rotação é a função executeroda. Utilizando a estrutura básica de interrupções e comunicação via porta série dos programas anteriores já extensivamente explicados aquando dos mesmos, construíram-se as fundações da interacção com o utilizador deste programa. Ao contrário do que se fez nos programas anteriores, procedeu-se finalmente a uma estruturação em blocos de todo o programa, estrutura essa já sub-entendida na explicação do algoritmo principal. Convém referir neste contexto que todas as variáveis de relevo foram armazenadas em estruturas para facilitar o aproveitamento futuro deste programa noutras aplicações ou adição de funcionalidades. Desta forma, a função principal é agora apenas directamente responsável pela gestão directa das consequências das interrupções geradas o que se reflecte na gestão indirecta de comandos. O ponto mais importante desta gestão indirecta que liga o algoritmo principal à interacção com o utilizador, é feita através da função findcommand que trata da gestão dos comandos introduzidos a pedido da função principal. Regressando ao procedimento laboratorial propriamente dito, consultou-se então a datasheet do ULN2803 que se vai usar como amplificador dos sinais lógicos que provêm do nosso CPU para o step motor. Efectuaram-se as ligações aos outputs do CPU para as entradas do ULN2803, ligaram-se as suas saídas ao step motor de acordo com a ordem determinada na primeira sessão laboratorial e por fim ligou-se a alimentação ao ULN2803 e também ao ponto comum do step motor tendo o cuidado de usar uma resistência em série para protecção do motor.

Figura 3 Pequeno esquemático de ligações entre ULN2803, step motor e alimentação Finalmente, correu-se o programa utilizando o ambiente de desenvolvimento MPLAB e testou-se o motor tendo este funcionado como previsto. Por fim, para determinação da velocidade máxima de operação do step motor, conhecendo o comportamento caótico das bobines aquando da recepção de sinais eléctricos e que apenas estabilizam passado um determinado período de tempo, é nosso objectivo determinar este limite, uma vez que representa o momento a partir do qual temos a certeza de que as bobines se comportam correctamente assegurando o funcionamento eficiente do motor. Com a utilização de um osciloscópio para medir a diferença entre steps lógicos consecutivos bem como para visualizar o comportamento de uma das bobines do step motor, rapidamente se verificou que as velocidades limite se encontravam utilizando delays de entre 5000 a 10000 ciclos de relógio. Percorrendo estes valores conclui-se que o valor limite era de 6000 ciclos de relógio por step, ou seja, tendo em conta que se usa um clock de 4 MHz, temos então que o tempo mínimo de cada micro step é de 1,5 ms.

Figura 4 Sinais da bobine e de dois steps consecutivos a 5000 ciclos de relógio (irregular) Figura 5 Sinais da bobine e de dois steps consecutivos a 6000 ciclos de relógio (limite) Figura 6 Sinais da bobine e de dois steps consecutivos a 10000 ciclos de relógio (estável)

Figura 7 Sinais da bobine e de dois steps consecutivos a 50000 ciclos de relógio (estável)