Razones por las que no está bien conectar un relé directamente desde un pin digital Arduino


8

Después de analizar varios esquemas sobre el control de un relé a través de un Arduino, me di cuenta de que, la mayoría de las veces, los transistores se utilizan para cambiar el suministro por separado en la bobina del relé en lugar de suministrar directamente al relé con la salida de 5 voltios desde el I / O pin del Arduino. Por ejemplo, tengo un relé DPDT de 5 voltios y también un pequeño motor de CC. ¿Quiero manejar ambos directamente desde mi Arduino UNO (clon SMD) con un procesador Atmel328? ¿Sería recomendable proceder?

Si no (lo más probable):

  1. ¿Alguien puede dar una explicación detallada y podría tener precauciones importantes sobre los límites actuales y otras cosas?

  2. ¿Cómo se pueden controlar dichos componentes sin arriesgar el Arduino? ¿Cuáles son algunos medios comunes para lograr esto?

  3. ¿Qué otros dispositivos generalmente pueden dañar una placa Arduino (o cualquier unidad de microcontrolador) de manera similar?

Solo soy un principiante que quiere ser extremadamente cauteloso. Gracias.


Aunque recientemente, con mi primer encuentro con Arduino, utilicé los pines de E / S directamente para energizar un motor de CC de juguete y cambiar su dirección al encender y apagar un relé DPDT de la misma manera. Nada parece estar mal por el momento.
DorkOrc

Respuestas:


8

Los pines del procesador tienen una capacidad de accionamiento de corriente estrictamente limitada.

  • Los valores nominales pueden variar dependiendo de si desea un disco alto o bajo.
  • Algunos procesadores suministrarán solo unos pocos mA y lo máximo que generalmente obtendrá oficialmente está en el rango de 20 a 30 mA.

  • Por lo general, hay un límite de corriente total para el procesador y solo unos pocos pines pueden proporcionar la corriente máxima simultáneamente.

  • Los pines del procesador tienen una resistencia efectiva significativa y un alto voltaje "caerá" a medida que aumenta la corriente y un voltaje bajo aumentará a medida que aumenta la carga. Los pines PUEDEN ser específicos con una corriente máxima de cortocircuito, pero en ese punto un pin alto se bajará y un pin bajo se elevará por lo que la corriente de cortocircuito tiene una aplicabilidad limitada.

Incluso si tiene un procesador de 25 mA por pin, la potencia disponible es pequeña. 25 mA · 4V decir (caída de 1V en 5V Vcc) = 100 mW. La mayoría de los motores tomarán más que eso y solo los motores muy pequeños funcionarán bien cuando estén alimentados solo por un pin.

Los motores e inductores eléctricos generarán voltajes significativamente altos cuando se interrumpe la corriente: pueden producirse fácilmente voltajes de decenas de voltios y pueden ocurrir más de 100 voltios. Conectar un motor de inductor a un pin del procesador directamente es una invitación a la destrucción. Murphy a menudo lo obligará.


Un transistor (bipolar o MOSFET) que conducirá motores de pasatiempo típicos cuesta 10 centavos (o sin equipo desechado) y permite que el controlador de corriente del pin del puerto sea amortiguado y "amplificado". El uso de un transistor u otro búfer es una idea extremadamente buena si tiene uno o algunos procesadores y no desea que mueran de forma semialeatoria.

Controlador de motor MOSFET - desde aquí - sección 8.

Los voltajes y los números de pieza son, por ejemplo, seleccionados.
Se podría usar un biploar NPN con la adición de una resistencia de entrada a la base del transistor.

ingrese la descripción de la imagen aquí

Controlador bidireccional: si desea que el controlador pueda conducir una carga alta y baja, este circuito funcionará. desde aquí
La puerta de entrada es en este caso el controlador del procesador interno. Las dos puertas MOSFET se conectan directamente al pin del procesador. Vdd generalmente no debe ser superior al procesador Vmax_drive_out. Se puede hacer que funcione un poco más alto con un diseño adecuado. Se pueden manejar cargas de voltaje mucho más altas con este circuito (o similar) más un transistor adicional.

ingrese la descripción de la imagen aquí


Un búfer como un ULN2803 (y otros miembros de la familia) controlará 8 canales x 500 mA / canal y varios pueden conectarse en paralelo.


Un ULN2803 es esencialmente 8 x transistores "Darlington" con emisores conectados a una tierra común, 8 x colectores de "colector abierto" (sin conexión) y 8 diodos flyback para tratar picos de sobretensión (uso opcional). (Existe una familia ULN280x con características de entrada ligeramente diferentes).

Este dispositivo proporciona un medio a un precio razonable para proporcionar controladores desplegables de 8 x 500 mA. Una carga conectada desde una salida a V + se enciende cuando el pin de entrada se conduce alto. Una vez que haya usado uno varias veces, lo encontrará trivialmente fácil de usar y muy útil. (También hay una familia ULN200x con 7 canales por paquete).

Video de "cómo hacerlo" de YouTube


Conducir un motor paso a paso

ingrese la descripción de la imagen aquí

También aquí


Conducción de motores de CC pequeños , y mucho más.

ingrese la descripción de la imagen aquí Un trillón de ejemplos

Digikey: disponible en 1 si se desea $ 0.72 / 1, $ 0.29 en 1000.

Hoja de datos ULN2803


A la venta en Sparkfun : se puede obtener bastante más barato, pero están disponibles


7

La salida recomendada (fuente o sumidero) desde un pin de E / S es de 20 mA. El máximo absoluto es 40 mA. Es probable que su bobina de relé consuma más que eso, particularmente cuando se energiza inicialmente. Esto dañará su pin de salida. Entonces eventualmente fallará.

Nada parece estar mal por el momento.

No aún no. :)

¿Cómo se pueden controlar dichos componentes sin arriesgar el Arduino? ¿Cuáles son algunos medios comunes para lograr esto?

Use transistores o MOSFET.

¿Qué otros dispositivos generalmente pueden dañar una placa Arduino (o cualquier unidad de microcontrolador) de manera similar?

Cualquier cosa que exceda los límites máximos de voltaje o corriente como se documenta en la hoja de datos. Es probable que las bobinas (por ejemplo, en relés y motores) en particular tengan un alto voltaje inverso cuando están apagadas, por lo que necesita un diodo amortiguador .

¿Sería recomendable proceder?

Sería aconsejable tener en cuenta lo que escribí anteriormente y leer los muchos, muchos artículos en la Web sobre cómo conducir motores y relés desde un Arduino. No eres la primera persona en intentar esto.


4

Eche un vistazo al circuito simple en este PDF desde Arduino Playground. Muestra un solo transistor para conducir un pequeño relé.

Como Russell dice en su respuesta, un ULN2803 o similar es un chip que le permitirá manejar varios relés pequeños, que es más ordenado que usar varios transistores, si eso es lo que desea.

(También tenga en cuenta el diodo "D1" en el circuito que conecté; necesita esto, es para proteger el transistor de eventualmente dañado por picos inductivos generados cuando el relé se apaga. Algunos de los chips de estilo ULN tienen este diodo incorporado, por eso no siempre lo ves en esquemas).


3

Para proteger realmente su arduino, vale la pena poner un fotoacoplador en el pin y conducir su circuito de esa manera. Entonces, ninguna carga inductiva perdida o corto puede afectar al arduino.

También se llaman OptoIsolators u Optoacopladores.

http://forum.arduino.cc/index.php?topic=143954.0


1
Tienes toda la razón, los optoaisladores son una excelente opción. Otra forma de hacerlo que es un poco menos aislante pero aún útil es usar un amplificador operacional (Op Amp) como un búfer. También se denominan amplificadores operacionales 'folloer'. Tenga en cuenta que puede hacer esto con cualquier OpAmp listo para usar, simplemente diseñe el circuito de una manera particular. en.wikipedia.org/wiki/Buffer_amplifier#Op-amp_implementation
Dan

3

Veamos algunos conceptos básicos, estos parecen ser la base de muchas preguntas:

Un condensador cuando se enciende la energía consume una gran cantidad de corriente que se reduce a medida que se carga. Esta curva también se llama constante de tiempo RC (esto es cercano pero no exacto " http://www.electronics-tutorials.ws/rc/rc_1.html " dará una mejor explicación).

Al apagar un condensador se descarga a una velocidad exponencial (constante de tiempo RC) dependiendo del valor, el voltaje de carga y la carga. Esto los hace buenos para mantener el poder por un corto tiempo cuando falla el poder.

Un Inductor no dibuja nada cuando se enciende por primera vez, pero la corriente aumenta exponencialmente hasta que su voltaje alcanza el voltaje de suministro.

Cuando se apaga el campo inductivo en el colapso del inductor, la polaridad se invierte. El voltaje aumentará ilimitadamente hasta que, por lo general, algo lo limite externamente. Cuanto más rápido se apaga, más rápido es el tiempo de subida y el voltaje. La energía dejará de fluir cuando la carga inductiva se disipe. ¿Adivina a dónde va esta corriente cuando la carga inductiva, como un relé, está conectada a un pin de puerto?

Por esta razón, debe colocar un diodo (comúnmente denominado diodo de volante) a través de la carga inductiva. Google para: "curva de carga inductor / condensador" encontrará muchos gráficos agradables que explican esto. Si observa el circuito, tiene el cátodo + conectado al lado más positivo de la fuente de alimentación. En esta configuración, no se conducirá a menos que se invierta el voltaje (cuando la carga inductiva está apagada).

Otro concepto erróneo común es que puede cargar una E / S de microprocesador al máximo. Este es un mal diseño. Te dan un máximo por pin, por puerto y por el chip. A temperatura ambiente, probablemente te saldrás con la tuya por un tiempo.

Supongamos que tenemos un puerto con una carga de 40 mA. La salida es 0.005 del riel de potencia. Usando la ley de Ohm, estamos disipando 20 milivatios de potencia en un pin. A esta velocidad de carga, no lleva mucho tiempo sobrecalentar el dispositivo debido a la disipación de energía interna.

Cuando el pin de salida está cambiando de estado, consume más corriente porque tiene que cargar o descargar su capacidad interna y externa, 'más calor', más velocidad 'más calor'.

Si observa que algunas de las especificaciones le darán una temperatura máxima, es para la unión en el dado, no la temperatura de la carcasa. El plástico es un mal conductor, por lo que el disipador de calor no hace mucho. Ahora considere esto junto con la temperatura ambiente. Las clasificaciones se dan típicamente con el dispositivo a 25 ° C, adivina qué sucede cuando se calienta.

Que te diviertas,

Gil

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.