Mudanças entre as edições de "Motor de Passo MIC29004-2014-2"
Linha 55: | Linha 55: | ||
Motor de passo 28BYJ-48. | Motor de passo 28BYJ-48. | ||
+ | |||
[[Arquivo:motor1.png|350px]] | [[Arquivo:motor1.png|350px]] | ||
Linha 60: | Linha 61: | ||
Diagrama driver ULN2003. | Diagrama driver ULN2003. | ||
+ | |||
[[Arquivo:ULN2003.png|350px]] | [[Arquivo:ULN2003.png|350px]] | ||
Edição das 15h12min de 27 de novembro de 2014
Descrição do projeto
Controlador um motor de passo através de um kit de desenvolvimento do microcontrolador 8051 . Os comandos de acionamento do motor de passo são gerados em um computador pela interface RS-232 para o microcontrolador 8051. Este último decodifica as mensagens e habilita as portas que controlam o motor de passo. As principais etapas são a codificação das mensagens de comando e implementação via hardware do projeto
Etapas
Especificação do projeto
Consiste a documentação postada em Wiki descrevendo as características, dispositivos utilizados, forma de implementação, descrição da implementação em hardware.
As mensagens entre PC<->Microcontrolador seguem o padrão UART, 9600 bps, fullduplex, sem paridade. A codificação para acionamento do motor segue a tabela abaixo. O código é composto por 8 bits entre PC e Kit. A mensagem é decodificada para acionar o motor de passo de 4 fios conectado na porta P2 do microcontrolador.
Valor | Código UART | Código P2 8051 | Movimento |
---|---|---|---|
1 | 00000001 | 0001 | 0° |
2 | 00000011 | 0011 | 45° |
3 | 00000001 | 0010 | 90° |
4 | 00000110 | 0110 | 135° |
5 | 00000100 | 0100 | 180° |
6 | 00001100 | 1100 | 225° |
7 | 00001000 | 1000 | 270° |
8 | 00001001 | 1001 | 315° |
Se a tabela acima fosse implementada na ordem sugerida o motor de passo completaria uma volta.
Previsão de conclusão: 24/11/2014
Pesquisa
Consiste avaliar/obter as ferramentas de hardware para desenvolvimento do projeto. Os principais recursos utilizados são: kit diático AT89Sxx, computador com interface RS232, paralela, Aplicativos: Proteus, MCU8051IDE, Gterm, AEC ISP(programador8051).
Previsão de conclusão: 01/12/2014
Implementação
Consiste na montagem do protótipo e avaliação do projeto com testes e relatório dos resultados.
Descrição dos dispositivos
Motor de Passo
Motores de passos são dispositivos mecânicos eletro-magnéticos que podem ser controlados digitalmente através de um hardware específico ou através de softwares. Esses motores são usados em aparelhos onde a precisão é um fator importante. Existem vários modelos de motores de passos disponíveis no mercado que podem ser utilizados para propósitos como impressoras, robôs, câmeras de vigilância, máquinas industriais, brinquedos. Como os demais motores, o movimento dos motores de passo é gerado pela interação entre imãs permanentes e eletroímãs. Tipicamente os eletroímãs estão fixos e os imãs permanentes estão na parte móvel do motor. O que diferencia o motor de passo é que o movimento é controlado por pulsos, ativando e desativando os eletroímãs em uma determinada ordem. Dependendo de quais eletroímãs estão ativos, os imãs permanentes serão atraídos, colocando o motor em uma determinada posição. A ordem e a velocidade dos pulsos determina o movimento do motor.
Funcionamento Motor de passo
- Funcionamento Motor de passo EmbedVideo received the bad id "Yt96gdpxV2g#!" for the service "youtube".
- Funcionamento Motor de passo
As portas de I/O do microntrolador 8051 usam tecnologia CMOS e tensão até 5.5V e 60uA de corrente. Para controlar o motor de passo é necessário um arranjo tipo drive para fornecer maior corrente ao motor. O esquema abaixo demostra a conexão da saída do microntrolador a um transistor de Potência. A base do microcontrolador colocará o transistor de potência saturado fazendo o motor ser alimentado. Se A base do transistor de potência ser 0V o transistor entrará na região de corte e o motor será desligado. Se a base do transistor de potência ser 5V, o transistor entrará na região de saturação, permitindo que o motor seja alimentado.
Circuito Motor de passo
Para agilizar o desenvolvimento optamos por utilizar o driver comercial ULN2003 e o motor de passo 28BYJ-48. O ULN2003 suporta até 500mA de corrente em cada porta. possui diodo catodo comum em cada porta para proteger o componente contra picos de corrente.
Motor de passo 28BYJ-48.
Especificação motor de passo 28BYJ-48
Diagrama driver ULN2003.
RS-232
Microcontrolador
Para o desenvolvimento deste projeto, utilizamos o Kit didático micro AT89Sxx disponível no almoxarifado do IFCS-SJ. O kit é composto por:
- Microcontrolador ATMEL AT89S8252
- 1 Interface UART
- 6 botões push-button conectados na porta P3.
- 8 botões push-button conectados na porta P2.
- 8 Leds conectados na porta P1.
- 4 conjuntos de barra pinos conectados nas portas P0, P1, P2 e P3.
- Interface de gravação do microcontrolador.
- Interface para display 2x16.
Interface de gravação
A interface de gravação utiliza um cabo RS-232/paralela. A interface RS-232 do cabo é conectado na porta Gravação do kit(conector DB-9 Fêmea) e conector DB-25 do cabo conectado na porta paralela do computador. O esquema do cabo é representado na imagem abaixo:
Programa gravador
O programa de gravação para Windows XP está disponível no link abaixo.
Gravação
Passos para gravar um arquivo (.HEX) compilado no Kit.
- 1- Conecte o cabo de gravação na porta "CABO PROG" e na porta paralela do computador.
- 2- Com o kit desligado, abra o jumper J1.
- 3- Mude a chave para Prog.
- 4- Ligue o kit.
- 5- Abra o programa AEC_ISP.
- 6- Selecione a opção "Load to buffer flash the .hex data.
- 7- Em "input file:" Digite o caminho do arquivo .hex.
- 8- Pressione "ENTER".
- 9- Pressione "ESC".
- 10- Selecione a opção "Load display buffer flash".
- 11- Pressione "ESC".
- 12- Selecione a opção "program".
- 13- Desligue o kit.
- 14- Mude a Chave de "PROG" para "EXEC".
- 15- Feche o jumper J1.
- 16- Retire o cabo prog.
- 17- Ligue o kit. O programa gravado entrará em execução.
Fluxogramas
Fluxograma do laço principal
Fluxograma da sub-rotina interrupção serial
Fluxograma da sub-rotina interrupção timer0
Desenvolvimento
O Esquema é apresentado no link abaixo.
O código Assembly inicia configura o modo de operação do timer 1, serial e interrupções. É implementado a rotina de acionamento da porta P2, no qual esta conectado o motor de passo. No eventual dado recebido pela interface RS 232, o byte em SBUF é enviado para o acumulador. O byte então, é decodificado e enviado o sinal correspondente para a porta P2.
- TMOD, TH1, TH0, TL0
O Timer 1 é definido para operar em 8 bits, sendo utilizado para gerar taxa de TX na RS232 de 9600 bauds.
org 0000h
MOV TMOD, #21H ;Configuração do Timer 1 em modo 2 (8 bits) e Timer 0 em modo 1 (16 bits).
MOV TH1 , #0FDH ;Considerando um clock 11,052MHz e uma taxa de 9600 Baud rate.
</syntaxhighlight>
- SCON
MOV SCON, #50H ;configura o modo de operação da interface serial, e habilita o modo de recepção
- mov ie, #10010000b ;habilita a interrupção do modo serial. Endereço da interrupção
- 0x0023H
</syntaxhighlight>
- SBUF
o registrador IR atua como uma flag, sendo setado toda vez que recebe uma janela de bits validos no Registrador SBUF.
Loop: JNB RI, Loop
</syntaxhighlight>
- Rotina 50 ms
O Timer 0 é utilizado para contabilizar um bloco elementar de 50ms. Demais temporizações são referenciadas a partir deste bloco.