Programação  
 
Conhecimento computador >> Programação >> Programação De Computador Idiomas >> 
Como criar uma largura de pulso Modulation ( PWM) em um módulo Verilog executar um Motor /Servo
A modulação de largura de pulso é uma maneira de controlar a rotação ou a posição de um motor elétrico ou servo . Usando Verilog HDL , vou mostrar como é fácil de usar contadores , a fim de criar um PWM . Coisas que você precisa
Xilinx ISE
Servo /motor FPGA
Mostrar Mais instruções
1

Então, como funciona um PWM ?

Ter um sinal retangular periódica , mudamos o ciclo de trabalho ( modular ) a ser maior ou menor e, portanto, controlar o nosso dispositivo.

Por que usar um PWM ?

é uma digital simples para técnica de conversão analógica que não necessita de um ADC .
2

Ok , então vamos pensar o que entradas, saídas, registradores e contadores vamos precisar e que projeto que queremos criar .

Eu quero usar as oito chaves na placa FPGA Spartan para controlar como meus movimentos motor /servo ou o quão rápido ou lento que eu quero que ele se mova

Entradas: . relógio , 8 switchesOutputs : pwmRegisters : pwmCounters : 16 bit counter ( vai explicar por que 16 bits mais tarde ),
3

Saiba o que é a velocidade do clock do seu FPGA e qual período você gostaria de usar.

Eu tenho um Spartan placa FPGA com um relógio de 50MHz . Gostaria de atualizar o sinal a cada 1 milissegundo (t). Nós aplicamos o seguinte cálculo para encontrar o período da forma de onda (p )

p = t * relógio FPGA

No meu caso :

p = 0,001 segundo * 50MHz = 50000

Conhecendo meu p é importante , a fim de calcular o meu passo demora ( sd ) :

sd = p /256 = 195

por que eu uso 256 ? Eu vou estar usando 8 interruptores para controlar o meu servo /motor , então 2 ^ 8 = 256.
4

Finalmente , queremos utilizar o nosso contador como o nosso ciclo de trabalho . Para calcular quantos bits compor nosso balcão usamos :

log2 (dp ) = quantos bits é o nosso contador de

Enquanto o contador for menor que sd (atraso passo ) multiplicado pelo valor de interruptores (que pode variar de 0 a 255), este é o nosso ciclo de trabalho .

Anterior :

Próximo : No
  Os artigos relacionados
·MATLAB entrada Analisando 
·Como criar AutoCAD Script com pausa em TI 
·Como converter o PHP para ASP.NET 
·Como substituir Excluir no Rails 
·Como analisar um arquivo CSV 
·Como se conectar a um banco de dados SQLCE no VS2008 
·As características de um banco de dados Web 
·Teste de unidade no Visual Studio Team System 
·Como ocultar o Dojo Nó de árvore 
·Como substituir uma lista em Python 
  Artigos em destaque
·As vantagens do Microsoft NET 
·Como fazer uma matriz de botão usando ActionScript 
·Como fazer caixas de diálogo MFC 
·Descrição de uma função C + + e como ele causa um e…
·Como criar uma lista duplamente ligada em C Programaçã…
·Como transformar uma string em uma variável 
·Como editar o Silverlight Datagrid 
·Como usar a função Memmove em C + + 
·O que é um tipo booleano 
·Como inverter uma fila em C + + 
Cop e direita © Conhecimento computador http://ptcomputador.com Todos os Direitos Reservados