Alimentar Arduino y motores con la misma fuente ?

Si no publicas tu código y diagrama no se puede ayudar, por otra parte ¿usas shiftOut()? no debería darte problemas si usas esa función de Arduino, solo considera que el latch lo cambias después de enviar los 2 bytes (esa función solo envía uno).
 
Pues el sketch que utillizo es el siguiente:

Código:
byte RelayDatos = 2;
byte RelayGatillo = 3;
byte RelayReloj = 4;
byte Shift595 = 0b11111111;


void setup()
{
    pinMode(RelayDatos, OUTPUT);       //Se configuran los tres pines del
    pinMode(RelayGatillo, OUTPUT);     //74HC595 como salidas
    pinMode(RelayReloj, OUTPUT);
}

void loop()
{
    bitWrite(Shift595,1,0);
    Relay595(Shift595);
    delay(2000);
    bitWrite(Shift595,1,1);
    Relay595(Shift595);
    delay(2000);
    bitWrite(Shift595,3,0);
    Relay595(Shift595);
    delay(2000);
    bitWrite(Shift595,3,1);
    Relay595(Shift595);
    delay(2000);
    bitWrite(Shift595,5,0);
    Relay595(Shift595);
    delay(2000);
    bitWrite(Shift595,5,1);
    Relay595(Shift595);
    delay(2000);
     bitWrite(Shift595,7,0);
    Relay595(Shift595);
    delay(2000);
    bitWrite(Shift595,7,1);
    Relay595(Shift595);
    delay(2000);
    bitWrite(Shift595,1,0);
    bitWrite(Shift595,3,0);              
    bitWrite(Shift595,5,0);
    bitWrite(Shift595,7,0);
    Relay595(Shift595);        //Llama a la función Relay595
    delay(2000);
    bitWrite(Shift595,1,1);              
    bitWrite(Shift595,3,1);              
    bitWrite(Shift595,5,1);
    bitWrite(Shift595,7,1);
    Relay595(Shift595);        //Llama a la función Relay595
    delay(2000);
}
void Relay595(byte A) 
{
    digitalWrite(RelayGatillo, 0);        //Desactiva el 74HC595         
    shiftOut(RelayDatos, RelayReloj, MSBFIRST, A);  //Entran los
    digitalWrite(RelayGatillo, 1);        //Ahora activa el 74HC595
    delay(500);                           //Aguarda medio segundo
}
[/code]El esquema de circuito que he utilizado es este:



El circito de PRUEBA que he hecho y que me dá fallos es este:

En este equema alimento el Arduino UNO conectado al PC, conectándolo con una fuente de 6,5v dá los mismos errores.
 
Última edición:
Viendo tu código y tu diagrama, tienes intercambiados el gatillo y el reloj.

Segundo, para que se acomoden los bits en el orden de H-A debes enviarlos como MSB, el primero en entrar se desplaza a una posición más alta con el segundo, para tu ejemplo encender el foco sería enviar 00001000 como MSB, si usas LSB el orden se invierte.
 
Última edición:
Tienes razón, me equivoqué de sketch, ya lo edité, el anterior era el que preparé para encender los leds piloto (que funcionaq sin problema).
El que he editado enciende sucesivamente desde el relé 1 al 4 sucesivamente con intervalos de 2 segundos y luego enciende y apaga los 4 juntos.
 
Luego de mucho leer sobre el tema llego a la conclusión de que las salidas del Shift Register 74HC595 no tienen amperaje suficiente para activar los relés.
Según he visto hay unos módulos (tpic6b595) que creo que triplican el amperaje de salida, supongo que utilizando una fuente de alimentación extra (no las salidas directas del Arduino).
Les comento que tengo un circuito con dos 74HC595, probado y funcionando con 16 diodos leds de 3 "patitas" (verde - rojo) que hacen las veces de pilotos de funcionamiento (siempre verdes y se encienden rojos cuando se aciva algún mecanismo) y no dá ningún fallo, pero para los relés... no.

Como una alternativa, si interpongo en cada salida del Shift Register un transistor alimentado con 5 voltios, es posible que pueda "mover" los relés?
 
Eso es raro, los módulos de relevadores normalmente emplean un optoaislador, tras este va un transistor para alimentar los relevadores y un LED indicador, en sí, lo único que mueve el dispositivo de control es el LED infrarrojo del aislador y eso va con corrientes desde 5mA a veces, el 74HC595 entrega hasta 20mA creo.

¿Estás conectando el relevador directamente al registro? eso no se hace, siempre ocupas transistor para ello ya que los relevadores de 5V consumen cerca de 80mA en algunos casos. En tal caso ocupas por ejemplo un DRV8804 que está pensado para manejar 4 cargas inductivas directamente con hasta 800mA por canal. En tu caso podrías conectar el típico ULN2803 a las salidas del registro, en general sale más económico por que ya incluye los diodos de protección, transistores y resistencias por canal.

Recuerda, NUNCA CONECTES CARGAS ELEVADAS A LA MISMA FUENTE QUE EL CONTROL, eso puede poner inestable las cosas para el Arduino.
 
Última edición:
Podrias poner las caracteristicas de tu fuente d 12v, y 5V
se vale suponer que la fuente de 12v y 5V es muy pequeña...
 
Última edición:
La fuente de alimentación es de 12v y 20A, de la salida de 12v alimento el ventilador y el motor.
Con un reductor de voltaje (puse la foto al principio de este post) hago la salida de 5v para los relés.
El Arduino lo alimento por el USB del PC o con 6,5v de otro reductor igual al que utilizo para hacer la salida de 5v para los relés.
 
Ok lo que yo haria es poner un capacitor de desacoplo de 100nF al 595...

Por si no te has dado cuenta, estoy bastante verde en estos temas electrónicos, ¿podrías ayudarme un poco más con ese capacitor, cómo pedirlo en la tienda o sea si tiene un código, y un diagrama fácil de entender de cómo conectarlo?
 
Lo pides como capacitor ceramico de 100nF y el voltaje que sea mayor 6v... creo que es de 12v el que le sigue... se conoce como capacitor de lenteja por aca en mexico... codigo 104.

Pones lo mas cerca posible del 595 una patita del capacitor en el pin vcc del 595 y la ota patita en tierra....

Se llama de desacoplo porque "anula" ciertas frecuencias... que posiblemente son generadas por los reles... esos integrados son muy suceptibles a esos "ruidos"

es posible que esa sea la falla.


 
Hola, he conseguido estos:




En la imagen siguiente he puesto un circulo rojo con una x dentro marcando el sitio de la conexión, es correcto ese sitio?
Si utilizo dos 595 en serie, habría que poner más de un capacitor?


 
intenta poner uno de 100nF, (104), prueba si quieres el 102 pero es posible que no funcione... segun el valor bloquea ciertas frecuencias, normalmente el fabricante suguiere el de 100nF porque ya lo probo, pero no nos obligan a hacerlo XD.

En la imagen siguiente he puesto un circulo rojo con una x dentro marcando el sitio de la conexión, es correcto ese sitio?
No...

Una patita del capacitor lo mas cerca del 16 (VCC) y la otra patita en tierra... la que importa que este cerca es la 16...
Captura.JPG

Si utilizo dos 595 en serie, habría que poner más de un capacitor?

si, es uno por integrado.

----------------------------------------------
mira hasta el arduino tiene un capacitor de desacoplo...
Captura1.JPG
 
Última edición:
Ok, buscaré ese que ponga 104 en el capacitor, pero según tu dibujo has puesto una patita en el GND del 595 (la última patita, después de la salida Nº8 del 595) y la otra patita al GND del Relé.
 
Hola, he probado pero no funciona, como antecedente tengo montado un circuito con dos 74HC595 para encender 16 diodos leds como pilotos de actividad de los mecanismos que se van activando y funciona sin problemas.
Parece ser que el amperaje de salida de los 595 es pequeña, existe una alternativa, los TPIC6B595.
Te pongo una dirección por si quieres verlo, mira las respuestas #3 y #4

https://www.forosdeelectronica.com/f24/matriz-motores-74hc595-tip120-92103/
 
me parece que ya te lo mencionaron...

el modulo de los reles esta optoacoplado... eso quiere decir que los reles se activan con un led... y si tu prendes los leds sin problemas... entonces por logica no va por ahi...

si pones transistores como el tip120... el problema aumenta porque no es aislado...

si fuera por falta de amperaje reviza la fuente de 5v... los reles son de 5vdc o 12vdc?... reviza eso en la numeracion que tiene encima el rele, no alcanzo a ver bien...
 
Última edición:
Arriba