Autor Tema: Controlar un DC Motor con Mosfet.  (Leído 11658 veces)

0 Usuarios y 1 Visitante están viendo este tema.

Desconectado stk500

  • Moderadores
  • DsPIC33
  • *****
  • Mensajes: 4917
Re:Controlar un DC Motor con Mosfet.
« Respuesta #45 en: 30 de Agosto de 2018, 10:43:46 »
Hola picuino,

Te contesto asi por de pronto,
yo tengo el programa ya hecho y probado directamente con un mosfet que mueve una hamaca con un motor 12v/70vatio de parabrisa y hasta ahora funciona,  yo nunca he programado con pic ;-) y uso para programar o arduino o BascomAVR, uso mas BascomAVr ya que Arduino se limita a un solo Mcu,. ;-) ;-)

los de driver que me comenta no lo tienen donde voy a comprar la lista que tengo , solo lo tienen en TME y como te comente´hay no tienen todos los que busco, no es solo los Mosfet, tengo una lista de material acumulador que debo comprar, casi 70€ de valor.  lo del IRS2304 me lo apunto, y quiero hacer como ya te lo he planteado, 2 versiones.

lo de los mosfet me hubiera gustados saber la diferencia con TTL logic lever Gate, porque me quiero comprar 4 para luego hacer pruebas.
Gracias
Saludos

Desconectado Picuino

  • Moderador Local
  • DsPIC33
  • *****
  • Mensajes: 5878
    • Picuino
Re:Controlar un DC Motor con Mosfet.
« Respuesta #46 en: 30 de Agosto de 2018, 12:51:23 »
No te aconsejo Bascom-AVR. Es basic y está poco soportado.
Con Arduino tendrás más control sobre el micro, más velocidad y más ayuda en internet. Además con arduino se pueden programar muchas MCU de la familia Atmega.

Si no lo haces con un PIC tendrás que encontrar una forma de generar dos salidas PWM complementarias con deadtime. Imagino que se puede hacer en un modo pwm que aumenta y disminuye el contador.

La diferencia entre logic level Gate y los demás es que el primero cambia a conducción rápidamente a partir de unos 2 voltios, mientras que los demás hacen la transición entre 4 y 7 voltios.

Los mosfet logic level gate pueden conectarse directamente a un microcontrolador, pero en ese caso tienen transiciones más lentas (de unos 100 a 200ns) y por lo tanto necesitan más deadtime y consumen más potencia en la transición (en tu caso podría llegar a unos 4W por transistor trabajando a 20 amperios). De todas formas sigues necesitando un driver para la parte alta.

Los controladores de velocidad para motores brushless de radiocontrol utilizan un circuito con mosfet-p en la parte alta y mosfet-n con logic gate en la parte baja. Un micro acciona directamente los transistores. Es semejante al circuito que pusiste, pero con un microcontrolador en vez de puertas lógicas.
Si escoges esa opción, tienes que controlar muy bien los deadtime y prepararte para que los mosfet disipen más potencia.

Desconectado Picuino

  • Moderador Local
  • DsPIC33
  • *****
  • Mensajes: 5878
    • Picuino
Re:Controlar un DC Motor con Mosfet.
« Respuesta #47 en: 30 de Agosto de 2018, 13:02:32 »
Mi recomendación:
1. Mosfet-n con la menor resistencia R_ds_on
2. Driver de medio puente en H modelo IRS2304 o semejante. Con 8 pines, control independiente de los transistores, alta corriente de puerta y deadtime ya incluido de 100ns, por lo que no necesitas añadir deadtime con el microcontrolador.
3. Microcontrolador AVR con entorno Arduino.
4. Medición de back-emf añadiendo dos divisores de tensión desde los conectores del motor hasta dos entradas analógicas del microcontrolador.

Un saludo.

Desconectado Picuino

  • Moderador Local
  • DsPIC33
  • *****
  • Mensajes: 5878
    • Picuino
Re:Controlar un DC Motor con Mosfet.
« Respuesta #48 en: 30 de Agosto de 2018, 17:25:40 »
Con el Atmega328 se pueden hacer señales PWM complementarias y separadas por deadtime:


Código: C
  1. #define PWM_LIN   9   // PB1 / OC1A
  2. #define PWM_HIN  10   // PB2 / OC1B
  3.  
  4. void setup() {
  5.   pinMode(PWM_LIN, OUTPUT);
  6.   pinMode(PWM_HIN, OUTPUT);
  7.   digitalWrite(PWM_LIN, LOW);
  8.   digitalWrite(PWM_HIN, LOW);
  9.   timer1_setup();
  10.   timer1_pwm_width(10);
  11. }
  12.  
  13. //
  14. // Setup Timer1 for complementary PWM
  15. // Outputs in Pin9 (Low) and Pin10 (High)
  16. //
  17. void timer1_setup(void) {
  18.   // Control registers
  19.   TCNT1 = 0;   // Counter register
  20.   ICR1 = 400;  // PWM Frequency 20kHz
  21.   TCCR1A =
  22.      + (2<<6)  // OC1A. Clear on Compare Match when up-counting. Set when down-counting.
  23.      + (3<<4)  // OC1B. Set on Compare Match when up-counting. Clear when down-counting.
  24.      + (0<<0); // Top = ICR1
  25.   TCCR1B =
  26.      + (2<<3)  // PWM mode = phase and frequency Correct
  27.      + (1<<0); // Clock = Clk/1 (no prescaling)
  28. }
  29.  
  30. //
  31. // Set PWM width.
  32. // Max value = 399 - deadtime
  33. //
  34. void timer1_pwm_width(int width) {
  35.   OCR1A = width;     // Ancho de pulso en el Pin9 (PB1 / OC1A)
  36.   OCR1B = OCR1A + 1; // Ancho de pulso complementario en Pin10 (PB2 / OC1B) + deadtime
  37.                      // 1 = deadtime de 63ns en cada flanco
  38.                      // 2 = deadtime de 125ns en cada flanco
  39.                      // 3 = deadtime de 188ns en cada flanco
  40. }
  41.  
  42. void loop() {}

Desconectado stk500

  • Moderadores
  • DsPIC33
  • *****
  • Mensajes: 4917
Re:Controlar un DC Motor con Mosfet.
« Respuesta #49 en: 31 de Agosto de 2018, 07:50:34 »
Hola picuino,
sobre Bascom te equivoca, claro que la comunidad en español es menor a otros, porque bascom ya lo hay hasta en portugues y mas aun en Aleman...
fijaste en este link la comunidad que hay https://www.roboternetz.de/community/search.php?searchid=4767164.
 y respecto tu opinion, pero yo me quedo con bascom.

por otro lado, claro que me gusta tus ideas, pero ya te comente en mi post mas arriba que los controladores que quiero hacer deben ser muy simple,  espero que ya de una vez lo comprenda :mrgreen:

claro me hubiera gustado comprar el IRS2304, pero donde ya he pedido todos el material no lo tienen. asi que seria para otro momento.

bien ya tengo hecho mi Esquema de como voy hacer el control del motor,



el Mosfet que tengo pedido es IRPF054 son 6


como puede ver tiene un RDSoN de 0.014 mOhm

si ve algo raro en mi Esquema, espero comentario,

muchas gracias picuino

Saludos
Corregido

« Última modificación: 31 de Agosto de 2018, 14:31:49 por stk500 »

Desconectado Picuino

  • Moderador Local
  • DsPIC33
  • *****
  • Mensajes: 5878
    • Picuino
Re:Controlar un DC Motor con Mosfet.
« Respuesta #50 en: 31 de Agosto de 2018, 11:24:40 »
Hola stk500, yo te recomiendo lo que creo que puede ser mejor para tí e intento explicarte por qué lo creo.
Por supuesto, al final eres tú el que decides lo que más te conviene.

Respecto al esquema:
El transistor está mal conectado a la bobina del relé.

Necesitas otro regulador de 5v para la parte de control.

Los diodos 1N4001 es mejor quitarles. Son demasiado lentos y no hacen falta.

VSS y COM es mejor unirles mediante una resistencia de 10 Ohm. Así separas las masas de control y potencia y evitas que entren picos de tensión en el control.

Por último, a la hora de diseñar la PCB deberías tener en cuenta las normas básicas de diseño de circuitos de potencia para evitar inductancias parásitas:
http://www.todopic.com.ar/foros/index.php?topic=44997.0

Saludos.
« Última modificación: 31 de Agosto de 2018, 11:28:03 por Picuino »

Desconectado Picuino

  • Moderador Local
  • DsPIC33
  • *****
  • Mensajes: 5878
    • Picuino
Re:Controlar un DC Motor con Mosfet.
« Respuesta #51 en: 31 de Agosto de 2018, 11:33:28 »
¿Has decidido no añadir control de corriente?

Desconectado stk500

  • Moderadores
  • DsPIC33
  • *****
  • Mensajes: 4917
Re:Controlar un DC Motor con Mosfet.
« Respuesta #52 en: 31 de Agosto de 2018, 14:42:52 »
Hola picuino,

los 5 voltio del control va a la placa del Micro.

los Diodos 1N4001 lo quitare´, asi me ahorro mas espacio.

no voy hacer una PCB de momento, lo voy a montar en una Europlatina para probar,
claro que hare´pista gruesa donde va las cargas y la parte de potencia, eso siempre lo tengo en cuenta..

con Europlatina ya me he hecho 2 Fuente conmutadas
http://www.todopic.com.ar/foros/index.php?topic=46051.90   y hasta ahora funciona de maravilla..

siempre lo tengo en cuenta, y mido con el Osciloscopio ..
cuando me llegue el material, que sera´la proxima semana ya comienzo a montarlo y ya veremos los resultados.

Un Saludos


 

anything