Problemas al cambiar un relé de 3V con pines digitales Arduino

Estoy usando Arduino Ethernet con POE y tengo problemas cuando tengo que habilitar mi relé usando un pin digital. Lo que me gustaría hacer es arrancar un motor usando un relé, cuyo relé se cambia con un pin digital Arduino.

Mi relé es el siguiente (3V):

ingrese la descripción de la imagen aquí

Mi circuito es el siguiente:

ingrese la descripción de la imagen aquí

Mi boceto es como el siguiente:

#define pinRelay 5 

void setup() {
  pinMode(pinRelay, OUTPUT);
  ...
}

void loop() {
  ...
  digitalWrite(pinRelay, HIGH);
  delay(5000);
  digitalWrite(pinRelay, LOW);
  delay(5000);
  ...
}

Cuando digitalWrite(pinRelay, HIGH)se ejecuta, escucho un clic débil proveniente del relé, pero no funciona como se esperaba: el COM / POLE (Común) no cambia de NC (Normalmente cerrado) a NO (Normalmente abierto) por lo que la corriente no no pasa y el motor no arranca. Sin embargo, si conecto el cable directamente al pin de fuente de alimentación de 3,3 V (o 5 V) en la placa Arduino, funciona como se esperaba y el motor comienza a moverse.

¿Cuál es el problema? ¿Por qué el relé no funciona como se esperaba?

Nota I : también probé con pines distintos a 5, pero el resultado es el mismo.

Nota II : al medir el voltaje entre el pinRelayy el Groundcon mi multímetro, la salida es de alrededor de 4V.

Nota III : leí muchas publicaciones en la Web que pueden ser similares a mi problema, pero aún no he descubierto cuál es realmente el problema.

El Arduino probablemente no pueda entregar suficiente corriente al relé para activarlo correctamente. Eche un vistazo a las muchas respuestas en este sitio relacionadas con la conducción de un relé a través de un transistor desde un Arduino.
@ pjc50: ¿puede señalarme una respuesta a mi problema?
por ejemplo, la mejor respuesta aquí electronics.stackexchange.com/questions/33287/…
1: Esa imagen no es un esquema y, por lo tanto, realmente no muestra qué está conectado exactamente a qué. 2: Puede llamarse un "boceto" en el mundo de arduino, pero este es un sitio de ingeniería eléctrica. Aprende los términos correctos cuando te comuniques en el mundo real.
De la hoja de datos en gfinder.findernet.com//assets/Series/356/S36EN.pdf podemos saber que su relé requiere aproximadamente 120 ma, o aproximadamente 3 veces lo que un pin Arduino está clasificado para suministrar. Si mide el voltaje a través de la bobina del relé, es probable que lo encuentre mucho menos de lo previsto, ya que efectivamente solo hay alrededor de 25 ohmios de resistencia allí. También tenga en cuenta que el regulador de 3.3v en su placa probablemente no pueda manejar esta carga, e incluso si pudiera, no querría poner un relé en un suministro lógico sin un filtrado pesado.
@Chris Stratton: ¿qué quiere decir exactamente con "no querría poner un relé en un suministro lógico sin un filtrado pesado"?
Apagar la bobina del relé producirá un pico de voltaje debido a la inductancia de la bobina. Su diodo captará algo de eso, pero no todo. El resto puede perturbar (o en un extremo, especialmente si le falta el diodo o está mal seleccionado) e incluso dañar sus componentes lógicos. Tiene un relé bastante pequeño y con cuidado se puede hacer, pero podría considerar ejecutar el relé en el suministro no regulado aguas arriba.
@ChrisStratton Arduino Ethernet tiene un regulador reductor de 1 amperio y 3,3 v. Puede manejarlo muy bien.
@ChrisStratton Estás hablando de EMF posterior del relé. Ponerlo en el suministro lógico no es la mejor opción (aunque el diodo y, si es necesario, una red amortiguadora deberían funcionar), pero como el relé tiene una potencia nominal de 3 V, la solución más fácil sería colocar un regulador lineal en el "suministro aguas arriba". . Pero eso agregaría una buena disipación, por lo que antes de hablar de un regulador de conmutación, es mejor usar un relé con una bobina de voltaje nominal aguas arriba.

Respuestas (2)

Los pines de Arduino solo pueden generar una pequeña cantidad de corriente (40 mA por pin, 200 mA en total). Querrá usar un interruptor de lado bajo con un transistor para satisfacer la demanda actual de su relé. Mi circuito de acceso para este problema es el siguiente (usando un diodo 1N4001 y un transistor 2N3904).

esquemático

simular este circuito : esquema creado con CircuitLab

Solo para completar la respuesta un poco más, Arduino Ethernet con POE tiene un regulador reductor de conmutación LM2734 (o LM2736) para los 3.3v de vin. A diferencia de los Arduinos más antiguos que usaban la salida de 50mA 3.3v de los circuitos integrados seriales FTDI, o el Arduino Uno con el LM2734 de 150mA, el regulador de 3.3v de Arduino Ethernet es de hasta 1 AMP. Lo cual será bueno para el relevo.

Aquí está la hoja de datos del relé:

http://gfinder.findernet.com//assets/Series/356/S36EN.pdf

De acuerdo con la tabla (Especificación de la bobina) en la página 3 para la bobina de 3 V, el rango de voltaje operativo recomendado es de 2,2 V a 3,9 V.

El consumo de corriente es de aproximadamente 120mA (a 3V) lo que es mucho para los pines de Arduino, entonces si pones 5V la corriente es aun mayor, y puede dañar los pines de Arduino.