Controla 12 solenoides con una raspberry pi

Soy músico y estoy trabajando en un proyecto divertido: controlar solenoides con un teclado midi.

Así que tengo un teclado MIDI conectado a mi raspberry pi conectado a mi protoboard. Hasta ahora todo funciona correctamente con 12 LED, cada vez que presiono una tecla, se enciende un LED diferente.

Donde estoy atascado, principalmente porque me falta educación en electrónica y electricidad, es en lo que respecta a controlar los solenoides, realmente no sé cómo alimentarlos y cómo evitar que se fríe la frambuesa.

He planeado usar solenoides de 12v usando 1.4A

Esto es lo que salió de mis investigaciones en Internet. Por favor avíseme, corríjame, (ayúdeme) si algo anda mal...

  • Cuando se enciende un pin en la frambuesa, está entregando una potencia de 3,3v.

  • El pin debe conectarse a una resistencia (1k), luego a un LED (como testigo), luego a un transistor ( TIP120 ?).

  • La "pata de tierra" del transistor debe conectarse a la tierra de la frambuesa y la tierra de la fuente de alimentación sin ninguna resistencia o diodo. (Realmente estoy en duda de eso, miedo de freír la frambuesa...) .

  • La fuente de alimentación de 12v (+) debe conectarse al solenoide (+).

  • El solenoide (-) debe estar conectado a la pata central del transistor (la que se activa cuando recibe los 3,3v del pin) y también a un diodo (1N4004 ?). Ese diodo debe estar conectado al + de la fuente de alimentación.

Es eso correcto ?

Preguntas :

  • ¿Qué usar como fuente de alimentación?
  • ¿Puedo usar pilas? uno para cada solenoide?
  • ¿Alguna idea para suministrar todos los solenoides a la vez?

Espero haber sido claro, muchas gracias por su tiempo y respuestas :)

Respuestas (2)

De la hoja de datos , el TIP120 tiene una ganancia de corriente mínima de 1000 (probablemente un poco más que esto a 1.4A, vea la figura 1). Esto significa que para una corriente de solenoide de 1,4 A a través del pin del colector, el Raspberry Pi debe suministrar al menos 1,4 mA al pin base. Sin embargo, para este tipo de aplicación de conmutación, el transistor debe encenderse "fuertemente", y esto se hace poniendo más corriente de base en el transistor, quizás cuatro veces el mínimo de 1,4 mA o 5,6 mA.

La corriente de salida máxima de Raspberry Pi en todos los pines GPIO es de 50 mA (consulte esta pregunta y sus enlaces), con un máximo de 16 mA por pin. Esto significa que con el transistor TIP120 solo podrá alimentar un máximo de 8 solenoides simultáneamente. Si esto es aceptable (y está imponiendo este límite en el software), entonces el siguiente circuito debería ser suficiente. Creo que esto es más o menos lo que está sugiriendo, pero el LED se ha movido para minimizar el consumo de corriente requerido por la Raspberry Pi.

esquemático

simular este circuito : esquema creado con CircuitLab

Las resistencias se calculan de la siguiente manera. De acuerdo con la figura 2 de la hoja de datos, V_BE (sat) = 1,6 V o más o menos a una corriente de colector de 1,4 A. Esto quiere decir que, cuando esté encendido, la base del transistor estará en 1.6V. Cuando está encendido, el pin Raspberry Pi está a 3,3 V, por lo que necesitamos una resistencia base R1 que proporcione los 5,6 mA de corriente necesarios, dado que hay 3,3 V-1,6 V = 1,7 V a través de él. Usando la ley de Ohm, R=V/I = 1.7/0.0056 = 300 ohmios.

El voltaje en el colector del transistor cuando se enciende es de aproximadamente 0,8 V (figura 2 de la hoja de datos, figura V_CE (sat)). Suponiendo que caigan un par de voltios en el LED, esto significa que una resistencia de 1 Kohm para R2 proporciona alrededor de 9 mA a través del LED, un valor adecuado para la mayoría de los LED, pero consulte la hoja de datos de su LED en particular.

El diodo flyback conectado a través del solenoide podría ser fácilmente un 1N4004 como se sugiere, pero un diodo de tipo Schottky rápido, como se ilustra, es marginalmente preferible.

Dado que el voltaje entre el colector y el emisor del transistor es de aproximadamente 0,8 V, y la corriente es de aproximadamente 1,4 A, el transistor disipa aproximadamente 0,8 V * 1,4 A = 1,12 vatios de potencia como calor cuando se enciende. Aunque la hoja de datos enumera 2 W como la disipación de energía máxima (cuando el dispositivo está a una temperatura ambiente de 25 °C), es probable que el dispositivo se caliente, 100 °C o más. Aconsejaría poner un pequeño disipador de calor en cada transistor.

Si desea hacer funcionar las 12 válvulas de solenoide simultáneamente, deberá usar un transistor diferente, y un tipo MOSFET es probablemente la mejor opción. Hay MUCHOS disponibles, pero algo como NXP PSMN017-30PL ( http://www.farnell.com/datasheets/1596019.pdf ) o PSMN022-30PL funcionaría muy bien. Podría reemplazar el TIP120 en el circuito a continuación sin ninguna otra modificación al circuito, y no necesitaría un disipador de calor.

¡Muchas gracias Chris Johnson! ¡Creo que has respondido todas mis preguntas con claridad! Si uso MOSFET, ¿cuál es la cantidad máxima de solenoides que podría controlar con 1 R-pi? (suponiendo que tengo extensiones gpio). El fin de este proyecto, es tener 88 solenoides, uno para cada nota del piano. En este momento, solo tengo 12, uno para cada nota en una octava.
Los MOSFET de @Walkyrie toman una corriente de accionamiento insignificante a menos que se enciendan y apaguen muy rápidamente (miles de veces por segundo), por lo que podría conducir los 88 fácilmente desde las salidas RPi (¡si tuviera 88 GPIO!). ¿Cómo planeó expandir el RPi a tantos resultados?
Esa es una muy buena pregunta... Probablemente usaré el I2C: MCP23016 que se puede combinar hasta 128 gpio... De lo contrario, estaba pensando en usar 1 frambuesa por octava, pero no me gusta esta idea.
@Walkyrie Sí, seis MCP23016 (o su reemplazo moderno, el MCP23017) funcionarían bien. Por cierto, 88 solenoides * 1.4A son casi 125 amperios, ¡MUCHA corriente! ¿Necesita hacer funcionar los 88 solenoides a la vez? Si es así, lidiar con la potencia requerida requerirá una reflexión cuidadosa...
Nunca tendré los 88 solenoides funcionando al mismo tiempo, máximo 30 grandes. Irá muy rápido, ya que quiero que esté sincronizado con el sonido del piano. Pero es un muy buen punto con el que vienes, ¿qué tipo de alimentación recomendarías?
@Walkyrie Probablemente usaría una fuente de alimentación ATX para PC de potencia bastante alta, o una batería de automóvil (que duraría varias horas) si necesita usarse afuera. Para el suministro ATX, necesitaría una calificación de 600 W o más y tal vez una salida de 48 A en el riel de 12 V. Con estas altas corrientes, la protección contra cortocircuitos es muy importante, especialmente con una batería de automóvil que puede suministrar cientos de amperios. Me sentiría tentado a usar no solo un fusible (50 A más o menos) en la fuente de alimentación principal, sino también fusibles de 2 A en cada solenoide. Por cierto, ¿qué es este dispositivo? ¡Espero que sea una versión para piano del pirotrombón!
Tienes razón, es una versión para piano del trombón pirotécnico;) En cuanto a los fusibles, ¿los pongo en serie con los solenoides y justo después de la batería del coche?
youtube.com/watch?v=Jcm0igXG1oI El primer piro-piano está aquí, ¡pero las velas no son lo suficientemente divertidas!
@Walkyrie Sí, ese es el lugar correcto para los fusibles.

me parece bien Es posible que los transistores utilizados como interruptor de alimentación no sean los mejores: su ganancia de corriente continua significa que su R-Pi tendrá que generar MUCHA corriente base en cada transistor (y con 12, eso es mucho más de lo que su R-PI puede o debería apagado al mismo tiempo), especialmente si desea la mejor caída de voltaje (la más baja) sobre el transistor. Le sugiero que obtenga un MOSFET con un voltaje de encendido muy bajo (umbral VGS de 1-2V)

Puede usar un paquete de baterías Li-Po de 3 celdas, con la capacidad de amperios por hora que necesite para la duración aproximada de la operación. Si consume constantemente 1,4 A, entonces un paquete de baterías de 5 amperios por hora lo suministrará durante ~ 3 horas hasta 11 V cuando las cosas probablemente dejen de funcionar, para dispositivos de 12 V. Obviamente, si solo tiene los solenoides activados en promedio el 10% del tiempo, obtendrá ~30 horas de carga de la batería.

Le sugiero que coloque una resistencia de potencia de 5 vatios (tal vez 8 ohmios, para 1,4 A a 12 V) solo en caso de cortocircuitos, pero una que no debería limitar su dispositivo durante el funcionamiento normal. ¡Sin embargo, supongo que debería jugar con estos valores!

Excepto "•El pin debe conectarse a una resistencia (1k), luego a un LED (para testigo), luego a un transistor". El voltaje directo del LED probablemente sea demasiado alto para que este sea un buen circuito. Retire el LED (pero deje la resistencia). Luego conecte el LED, con una resistencia de 1k en serie, a través de la bobina del relé. Otra posibilidad para reemplazar el transistor es un Darlington, y hay varias unidades de la serie TIP disponibles.
Oh, sí @WhatRoughBeast Estoy de acuerdo, no se debe poner ningún LED en serie con todo esto
El transistor sugerido en la pregunta es un darlington (TIP120), con una beta mínima de 1000, que a 2 mA por base (= resistencias base de 1K, con un suministro de 3,3 V y la caída de 1,3 V vbe de un darlington) parece muy adecuado, muy dentro la corriente máxima de salida del pi?
Gracias por sus respuestas caballeros :) Solo para resumir y asegurarme de que entendí correctamente...
- Necesito mover el LED después del transistor - Necesito reemplazar el transistor por un MOSFET. ¿Qué MOSFET recomendarías?
Casi cualquier MOSFET tipo n de potencia funcionará, siempre que pueda manejar una corriente máxima de 1,5 amperios, y eso es prácticamente todo lo que encontrará. Pruebe International Rectifier como fuente: Digikey es un distribuidor.
El MOSFET también debe tener un voltaje de umbral lo suficientemente bajo para funcionar a 3,3 V. Esto es más una restricción que los requisitos de corriente/voltaje, pero todavía hay muchos dispositivos adecuados.
@ChrisJohnson, de hecho, como dije en mi respuesta "Le sugiero que obtenga un MOSFET con un voltaje de encendido muy bajo (umbral VGS de 1-2V)"