Controlar el motor de 5V DC con Arduino

3

Estoy tratando de construir un circuito para controlar un motor de 5V DC con Arduino. Mi problema es que no puedo entender el valor de la resistencia dentro de este esquema:

¿QuéresistenciadeberíausarparahacerfuncionarcorrectamenteeltransistorTIP132( datasheet )?

    

2 respuestas

11

La resistencia depende del consumo máximo de corriente del motor y de la h (FE) del transistor, la relación entre el colector y la corriente de base. Como puedo ver en la hoja de datos ( enlace ), h de TIP132 (FE) es al menos 1000. Digamos que su motor consume a lo más 2 A (que debe averiguar usted mismo, ya sea a partir de su hoja de datos o bloquear el rotor y medir la corriente consumida), por lo que el microcontrolador tiene que obtener aproximadamente 2 mA para impulsar el transistor .

El voltaje del emisor de base del transistor debe ser de aproximadamente 1.5 V (es un transistor Darlington, es decir, dos uniones de emisor de base están conectadas en serie, cayendo aproximadamente 0.7 V cada una), por lo que la resistencia debe caer aproximadamente 3.5 V con 5 V suministro. Teniendo eso podemos calcular que su resistencia debería ser: 3.5 V / 2 mA = 1,75 kOhm, por lo que 1,5 kOhm serían adecuados en mi caso.

Nuevamente, verifique el consumo máximo de corriente de su motor y vuelva a calcular la resistencia. También puede encontrar una opción interesante para reemplazar un BJT con un MOSFET adecuado (un IRL3202 podría ser una buena opción). Un MOSFET tiene una caída de voltaje de "estado abierto" más baja que un BJT, por lo que permite suministrar una tensión de suministro casi total al motor y disipa menos calor.

    
respondido por el motoprogger
2

El cálculo "3.5 V / 2 mA = 7 kOhm" es incorrecto!

En realidad:

el 3.5 se calculó como 5V (salida de arduino en el estado "1" lógico) - 1.5 V (voltaje B-E del transistor de darlington cuando se realiza).

3.5 V / 0.002 A = 1750 ohms

Es mejor redondear el valor hacia abajo, por lo que el valor E24 más cercano sería 1600 ohmios.

Y: ¿puedes realmente garantizar que el arduino produzca exactamente 5 V cuando esté en el estado lógico "1"?

si el Arduino solo emite, por ejemplo, 4.4V en lugar de 5V, el cálculo cambiaría a:

4.4 V - 1.5 V = 2,9 V

2.9 V / 0.002 A = 1450 ohms el redondeado hacia abajo (E24) de 1450 ohmios es de 1300 ohmios.

Para asegurarse, debe consultar las especificaciones técnicas de Arduino:

la tensión de salida mínima del pin de E / S cuando está en el estado lógico "1".

Luego calcule el voltaje de la resistencia:

U (R) = V (I / O @ lógico "1") - 1.5V

Y finalmente, asumiendo que el transistor es exactamente hFe = 1000, si la corriente del motor es 2 A, que hFe = 1000 significa que la corriente de base necesaria para el transistor es la misma que la corriente de resistencia I (R) = 2 A / 1000 = 2 mA = 0.002 A.

Así que finalmente:

R = U (R) / I (R)

Si bien es cierto que si tiene una resistencia demasiado baja, tiene una corriente de base demasiado alta, pero lo contrario es aún peor:

Una corriente de base demasiado pequeña puede no permitir que el transistor se sature completamente, y eso significa:

1) el transistor genera más calor

2) la pérdida de voltaje en el transistor es innecesariamente grande, dejando menos voltaje (y menos potencia) para el motor.

    
respondido por el AHiismak

Lea otras preguntas en las etiquetas