El circuito del transistor para encender / apagar el motor no funciona (Arduino)

2

He estado intentando crear un circuito de transistores simple con un 2N3904 que activará y desactivará un motor de CC con engranaje sin extraer energía del arduino. He seguido el esquema que se ve en la segunda imagen.

(vistadeBreadboard)

(Esquema)

El circuito no se está comportando como esperaba. Para propósitos de prueba, he estado alimentando los 5V desde el arduino hacia el pin de la base (antes de la resistencia) para activar el 'interruptor' del BJT. Esto solo alimenta el motor cuando tengo una resistencia de bajo valor en la base (~ 10ohms). Cuando uso una resistencia de 1k, el motor no se enciende. Además, he usado un conjunto de pin digital en alto para intentar alimentar el pin base y encender / apagar el motor, pero esto no hace nada, independientemente del valor de la resistencia.

¿Quizás mi circuito es incorrecto? Todo lo que quiero que haga el circuito es encender y apagar el motor cuando le doy una señal alta del arduino.

Notas: El cable rojo que ingresa al nodo en la parte superior proviene de una batería de 9V. El bus de tierra en el tablero tiene conectado a tierra tanto la tierra arduino como la tierra de la batería.

    
pregunta pwee92

4 respuestas

2

Su motor al que está vinculado es un motor de 4.5V 190 ~ 250 mA (sin carga). En 9v, la corriente probablemente aumenta. Lo estás sobrecargando en un 200%. Y cualquier carga / peso también aumentará los requisitos actuales. La corriente de bloqueo es probablemente 10 veces mayor que al menos.

Le falta el diodo de protección en el motor, que puede matar fácilmente el transistor.

El transistor que está utilizando es un estándar de 100 mA, máximo absoluto de 200 mA . Uno de esos motores, por sí solo, sin carga, puede matar fácilmente ese transistor.

La resistencia de base se calcula como (Base Voltage - Base-Emmiter Voltage) / Current required . El voltaje de base es el pin Arduino, por lo que 5v, Vbe depende de la corriente del colector que es de 200 mA aquí, por lo que típicamente 1V. La corriente requerida se calcula como corriente de colector (200mA) / Hfe (de la hoja de datos, 10 ~ 30). En el lado seguro, vamos con 10, por lo que 200/10 = 20mA se necesitan en la base.

(5V - 1V) / 20mA o 4V / 0.02A = 200Ω de resistencia. Una resistencia de 1 kΩ solo permitiría 4 mA en la base, lo que equivale al Hfe de 10, solo permitiría 40 mA en el colector, probablemente no lo suficiente como para sintonizar el motor.

TLDR: Necesita el diodo de protección, su fuente de alimentación de 9 voltios es demasiado alta y su transistor es demasiado débil para el motor que está utilizando. Y necesita una resistencia más grande en la base porque el motor requiere más corriente de la que está calculando. Un transistor 2n2222 común con una resistencia de 470Ω haría mucho mejor.

Editar: no hacer el pin de una salida también pone un freno a las cosas. Responda, los pines Arduino por defecto para ingresar.

    
respondido por el Passerby
1

La explicación más probable es que el motor necesita más corriente de la que el transistor desea entregar. ¿Has medido la corriente del motor?

En este caso, puede ser que el motor requiera más corriente de la que puede suministrar su batería de 9V. ¿Ha hecho funcionar el motor directamente con la batería de 9V?

El segundo más probable es que la parte posterior de EMF del motor haya reventado el transistor. Sustituya una pequeña bombilla incandescente por el motor y vea si puede arrojar algo de luz sobre el sujeto.

Coloque un diodo de polarización inversa en el motor. Probablemente tomaría un 1N4001 o algo similar.

    
respondido por el John R. Strohm
0

Es posible que hayas invertido demasiada fe en el transistor. Cuando miro la hoja de datos del 2N3904, tiene una corriente de colector máxima de 200 mA, que es lo que está obteniendo su motor de CC. Los motores de CC son dispositivos de alta corriente, intente averiguar la corriente necesaria para hacer girar este motor.

La corriente de colector del transistor será una función de la corriente a la Base del transistor. Recuerde que B * I (b) = I (c).

Cuando usa el pin de 5V del Arduino, se está conectando directamente a la salida del LDO a bordo. Esto será mucho más adecuado para impulsar su motor de CC, por lo que este pin funcionará (una mayor corriente de base es igual a una mayor corriente de colector).

Sin embargo, el Arduino solo puede generar un máximo de 40 mA por pin de E / S, no he comprobado la corriente máxima del LDO, pero estoy seguro de que es mucho más alto.

Aquí está el esquema para referencia: Esquema de Arduino

De todos modos, el consejo más pragmático que puedo dar es que su transistor solo debe usarse para conducir pequeños motores de juguete. Si tiene un motor de valor de CC, es necesario utilizar un relé o un transistor más robusto.

    
respondido por el Nick Williams
0

Para lo que vale, creo que los MOSFET de canal N con puertas de nivel lógico son mucho más fáciles de usar que los transistores NPN para este tipo de conducción. Una resistencia de un kiloohm funcionaría bien para la base, ya que solo se necesita una pequeña cantidad de carga para hacer que el MOSFET se realice, y entonces, básicamente, no atraerá nada.

El BS170 (similar a 2N7000) viene en una versión de 500 mA que es excelente para la experimentación de propósito general, y puedes comprar 25 por unos pocos dólares. El MOSFET de canal N IRLB8721 es ideal para conducir cosas más grandes (fácilmente más de 10 amperios sin disipador de calor) y cuesta aproximadamente un dólar cada uno. Por si acaso, probablemente quieras una resistencia de 220 ohmios en la puerta de eso, para activarlo de forma agradable y rápida.

    
respondido por el Jon Watte

Lea otras preguntas en las etiquetas