¿Cómo conduzco el puente h para controlar un motor?

0

Estoy utilizando el ZXMHC3F381N8 HOSFET H-Bridge para impulsar un motor hacia adelante y hacia atrás. Estoy usando un PIC16F1946. El puente H está conectado a PORTE del PIC. Este es el código que estoy usando para configurar el puerto:

#define MOTOR_STOP      0b11000000
//setup PORTE
PORTE = 0x00 | MOTOR_STOP;
TRISE = 0x00;
ANSELE = 0x00;

Entonces, si no me equivoco, esto es lo que necesito hacer para encender el motor:

  • Para movimiento hacia adelante: N1G = ALTO P2G = ALTO
  • Para el movimiento hacia atrás: N2G = ALTO P1G = ALTO
  • Para detener: P1G = P2G = ALTO
pregunta rashid

1 respuesta

4

Para hacer que un mosfet se "encienda", es necesario elevar el voltaje entre la puerta y la fuente por encima de un cierto límite; Si se trata de un valor positivo o negativo, depende de si tiene un mosfet de canal P o canal N.

Esta parte tiene dos de cada uno; Para los mosfets de canal N, la puerta debe conducirse a aproximadamente 3 V por encima de la fuente, lo que sería los pines N1S / N2S en el paquete; Si ese pin es común al suelo en tu microcontrolador, establecerás los pines N1G o N2G en Alto para que la pata correspondiente esté "encendida".

Para Mosfets de canal P, debe llevar la compuerta a un voltaje que sea más bajo que la fuente; que en este paquete es el pin P1S / P2S. Si la fuente es común con el voltaje de +5 en su microcontrolador; cuando los pines P1G o P2G están ALTOS, la pata está "apagada", encenderlos "significa conducir el pin LOW.

Si está esperando ejecutar el puente H en un voltaje mayor que el voltaje de riel a riel de su microcontrolador, necesitará un circuito mucho más inteligente para lidiar con uno de esos voltajes.

Al configurar un puente en H, es importante asegurarse de que está configurando todas las patas en el estado correcto y en el orden correcto; Por ejemplo, si activara las patas P1G y N1G al mismo tiempo, solo habría aproximadamente 100 mΩ de resistencia entre los rieles positivo y negativo; Este estado de "disparo directo" de alta corriente quemará casi instantáneamente el H-Bridge.

Para empeorar las cosas, los Mosfets del canal N responden mucho más rápido que los mosfets del canal P (los electrones se mueven más rápido que los orificios), por lo que incluso si establece las puertas correctamente, es posible que tenga un disparo breve mientras el canal P El interruptor sigue apagándose, pero el interruptor de canal N ya se ha encendido. Para esta parte en particular, ambos mosfets se activan en aproximadamente 2 ns, pero el canal P tiene un retardo de "apagado" de alrededor de 50 ns, que es aproximadamente tres veces más largo que el canal N de 17 ns. Así que para estar en el lado seguro; su mosfet debe esperar alrededor de 55 ns después de apagar un lado antes de encender el otro lado.

Los estados reales en los que estará interesado:

"Off" *
N1G = N2G = LOW
P1G = P2G = HIGH

"forward"
N1G = P1G = LOW
N2G = P2G = HIGH

"reverse"
N1G = P1G = HIGH
N2G = P2G = LOW

"stop" **
N1G = N2G = HIGH
P1G = P2G = HIGH

*: Por las razones indicadas anteriormente, siempre debe pasar "por" el estado "apagado", por lo menos durante 55ns cuando se realiza la transición de cualquier estado a cualquier otro estado; Para asegurarse de que estos estén en el estado "predeterminado" cuando el microcontrolador se está encendiendo, es común agregar resistencias pullup y pulldown en el rango de 100KΩ a 1MΩ desde las puertas hasta los desagües; No parece que esta función esté integrada en esta parte, por lo que deberá agregarla usted mismo

**: el estado de "parada" funciona al pasar la fem trasera generada por el motor en movimiento a través de las patas del canal N; La corriente fluye libremente para que su energía pueda ser absorbida por la parte; esto también podría lograrse utilizando todos los valores BAJOS; que desviaría la emf trasera a través del canal P, pero en muchos casos, los mosfets del canal N son un poco más duraderos que los equivalentes del canal P (lo que se refleja en esta hoja de datos por una resistencia ligeramente más baja en el estado).

    
respondido por el SingleNegationElimination

Lea otras preguntas en las etiquetas