Controle de velocidade do motor DC com microcontrolador 8051 (89c51,89c52) usando técnica PWM e driver de motor l293d

Controle de velocidade do motor DC com microcontrolador 8051 (89c51,89c52) usando técnica PWM e driver de motor l293d

Este é um projeto/tutorial simples sobre como controlar a velocidade do motor DC usando o microcontrolador 8051 (89c51,89c52). A velocidade do motor CC ou do ventilador é controlada usando a técnica Pwm (modulação por largura de pulso). Existem duas maneiras de gerar sinal de modulação por largura de pulso usando microcontroladores 8051 (89c51,89c52). Você pode gerá-lo usando temporizadores do microcontrolador 8051 (89c51,89c52) OU pode alternar um pino específico (alto e baixo) tão rapidamente com algum atraso arbitrário na comutação, que um pulso é gerado como saída no pino. A melhor e mais fácil maneira controlada de gerar sinal PWM é usando temporizadores internos do microcontrolador 89c51 e neste projeto vou gerar PWM usando temporizadores do microcontrolador 8051 (89c51,89c52).
O PWM, em palavras simples, altera a tensão de saída em um pino especificado no qual é aplicado, variando o ciclo de trabalho da forma de onda de saída. A frequência e o ciclo de trabalho do sinal PWM podem ser facilmente variados usando temporizadores do microcontrolador 8051.
A figura abaixo irá esclarecê-lo sobre os sinais PWM e o ciclo de trabalho. O ciclo de trabalho do sinal original varia no diagrama abaixo.
Sinal PWM

Sinal PWM

O que exatamente é o ciclo de trabalho?

O ciclo de trabalho é o tempo durante o qual o sinal de saída permanece alto por um período de onda. Período é o tempo/duração total de uma única onda/ciclo de relógio. Conseqüentemente, o ciclo de trabalho é o tempo/duração em um único ciclo de clock durante o qual a saída permanece alta.
Ciclo de trabalho

Ciclo de trabalho

Controle de velocidade do motor com microcontrolador 8051 – Requisitos do projeto

  • Microcontrolador 8051(89c51 ou 89c52)
  • Cristal (11,0592 MHz)
  • Capacitores 2 (33pf)
  • Botões de pressão 9
  • Motor DC – Ventilador (motor de brinquedo pequeno)
  • Fonte de alimentação (5v)
  • L293D (driver de motor CC)

Foto

Estou gerando sinal PWM de diferentes ciclos de trabalho 00%, 10%, 20%, 50%, 80% e 90%. 200 nós é minha base. Para um ciclo de trabalho de 80%, meu atraso é de 160 nós. PWM para atrasos superiores a 200 us também são gerados 500 us, 800 us e 1000 us.

Agora, como gerar esses atrasos usando temporizadores do microcontrolador 8051(89c51,89c52)? Existem dois temporizadores no microcontrolador 89c51, Timer-0 e Timer-1. Você pode usá-los para fins de atraso ou para contar um evento, etc. Você pode usar esses temporizadores em quatro modos. Estou usando-os no modo de 16 bits. Para saber mais sobre temporizadores, seus modos e inicialização siga o tutorial

  • 8051(89c52,89c51) Temporizadores de microcontrole

8051(89c52,89c51) são microcontroladores de 8 bits. Mas você pode usar seus temporizadores como 16 bits. Para carregar valores de 16 bits em temporizadores você usa dois registros THx e TLx associados aos temporizadores. Onde THx representa Timer High Byte e TLx representa Timer Low Byte (Nota x é 0 ou 1 dependendo do timer que você deseja usar). Aqui estou usando o Timer-0, então usarei os registros TH0 e TL0.

Minha base de ciclo de trabalho é 200 us, o que significa que em 100 us o ciclo de trabalho será de 50%. Ciclo de trabalho de 50% significa que os sinais positivos e negativos têm o mesmo comprimento (tempo). Você pode ver duas ondas senoidais (digitais) com ciclos de trabalho de 50% e 75% na figura do lado esquerdo. Observe a diferença entre as duas ondas.

Calculei o atraso para 00, 20 us, 40 us, 100 us, 160 us, 180 us, 500 us, 800 us e 100 us e carreguei os valores obtidos pelo resultado nos registradores TH0 e TL0. As fórmulas para calcular o atraso são fornecidas abaixo com um exemplo.


Você pode calcular valores dos registros TH0 e TL0 para atrasos de 00, 20 us, 40 us, 100 us, 160 us, 180 us, 500 us, 800 us e 100 us usando a fórmula fornecida no lado direito. Calculei os valores usando a mesma fórmula.

O PWM é gerado no pino nº 0 da porta 1. O pino nº 0 da Porta 1 está conectado ao L293D. Para alternar entre diferentes ciclos de trabalho, usei botões de pressão. Cada botão corresponde a PWM de diferentes ciclos de trabalho. Um total de 9 botões são usados ​​no projeto. Oito estão conectados à Porta 2 e o Nono está conectado à Porta 0, pino nº 7. Aplique 5 V nos pinos 40 e 31 do microcontrolador. Pino de aterramento nº 20. Conecte o cristal (11,0592 MHz) aos pinos 18 e 19 do microcontrolador. Conecte os capacitores em paralelo ao cristal.

Cálculo de atraso para microcontrolador 8051(89c51,89c52).

Cálculo de atraso para microcontrolador 8051(89c51,89c52).

Driver de motor L293d com diagrama de circuito do microcontrolador 89c51

Controle de velocidade do motor CC usando microcontrolador 8051 (89c51,89c52).  Interface L293d com microcontrolador 89c51.

Controle de velocidade do motor CC usando microcontrolador 8051 (89c51,89c52). Interface L293d com microcontrolador 89c51.

Motorista L293D

Os motores CC precisam de no mínimo 5 volts e 80 mA de corrente para funcionar corretamente. O microcontrolador 8051 não pode fornecer tanta quantidade de energia como saída em seus pinos gpio. Um driver externo é necessário para realizar esta tarefa. O driver do motor L293d é melhor para acionar pequenos motores CC, por isso faz parte do nosso projeto. As conexões L293d com o microcontrolador 89c51 são mostradas acima para aprender sobre o funcionamento, pinagem e configuração do L293d, siga o tutorial abaixo

  • Pinagem e funcionamento do L293D

Na parte do código, incluí primeiro o arquivo de cabeçalho reg51.h. Este arquivo de cabeçalho deve ser incluído em todo código de projeto que será compilado no compilador keil. Alguns bits únicos são inicializados. Esses bits representam botões e pinos de saída Pwm. Na função principal, primeiro cada porta é inicializada como entrada ou saída.
A instrução TMOD=0x01 está inicializando o Timer-0 no modo de 16 bits. Não entendo pegue o tutorial.

  • Registros de temporizador do microcontrolador 89c51

A instrução If-else alterna entre diferentes ciclos de trabalho, dependendo do botão pressionado. Em declarações de botão Pwm_B_20=P2^1,20 representa o ciclo de trabalho correspondente ao botão. Como na declaração Pwm_B_60=P2^4, 60 representa o tempo máximo de 60 us ou ciclo de trabalho de 30%. Atrasos superiores a 200 us significam ciclo de trabalho de 100%.

Assista ao vídeo do projeto aqui
Desculpe pela má qualidade do vídeo
Controle de velocidade do motor CC com microcontrolador 8051 (89c51,89c52)

Conteúdo Relacionado

Uma rede de sensores é incorporada em todos os...
O controlador do motor é um dos componentes mais...
ESP32-CAM é um módulo de câmera compacto que combina...
A evolução dos padrões USB foi fundamental para moldar...
A SCHURTER anuncia um aprimoramento para sua conhecida série...
A Sealevel Systems anuncia o lançamento da Interface Serial...
A STMicroelectronics introduziu Diodos retificadores Schottky de trincheira de...
Determinar uma localização precisa é necessário em várias indústrias...
O novo VIPerGaN50 da STMicroelectronics simplifica a construção de...
A Samsung Electronics, fornecedora de tecnologia de memória avançada,...
O mercado embarcado tem uma necessidade de soluções de...
Você provavelmente já se deparou com o termo 'arrastar'...
Você provavelmente tem um Isolador de suporte Se você...
Você provavelmente já viu permanecer um isolante sente-se em...
Você provavelmente já viu Isoladores de manilha entronizados em...
Você provavelmente já passou por situações em que o...
返回博客

发表评论

请注意,评论必须在发布之前获得批准。