Problema con 74HC595N y Leds RGB

Estoy intentando diseñar un circuito con conexión a Arduino que simule a pequeña escala el juego de Conecta 4. Para hacerlo la idea es usar 4 leds rgb y 2 pulsadores por jugador por asi decirlo.
Para conseguirlo visto el numero de conexiones disponible en la placa Arduino uno, investigue y decidi comprar ShiftRegister 74HC595N para aumentar las salidas digitales y conectar a ellos los leds RGB.
Tengo todo el prototipo de montaje realizado en Tinkercad y la parte de la programación siguiendo tutoriales hasta la inicialización en el setup(), dónde intento iniciar los leds en color verde.
En cuanto a conexiones tengo los pulsadores directamente a los pines digitales de Arduino, un primer 74HC595N conectado a los pines digitales de Arduino y otro segundo 74HC595N conectado al primero. Los leds conectados a los pines de los chips usando resistencias de 220 ohmios en cada terminal.
Llegado ha este punto la simulación de Tinkercad me indica que por sobretension estaria quemando varios leds y un 74HC595N.
No se que más probar ni como avanzar, empiezo a estar desesperado con el tema. Aqui facilito el enlace al prototipo https://www.tinkercad.com/things/6ezAzeEHz80?sharecode=bKteUKubZxrKehARuv52fiVHscXE0go0QWl64MbOKRQ
Alguna ayuda al respecto?
Saludos,

Edito para agregar tanto la imagen con el esquema, como el codigo.

//Incluimos la libreria de comunicación son el Servo motor
  #include <Servo.h>
//Creamos instancia al sevomotor
  Servo servoPin3;
//inicializamos variables globales con los pins correspondientes
//a nuestros componentes

	//Declaracion matriz Switches con sus pines
	int switches[2][2];



	//ShifRegister
  const int pinData=9;
  const int pinClock=11;
  const int pinReg=10;

	//Declaración matriz leds
	int ledsRGB[4][3];

//Variable para la ultima jugada
  int previousPlay=0;
//variable para inicializacion de los leds
	int ledValue=1;
int initLedPin=0;
void setup()
{
  	switches[0][0]=7;
	switches[0][1]=8;
	switches[1][0]=4;
	switches[1][1]=2;
  //Iniciamos la comunicación Serie PC-Arduino
  Serial.begin(9600);  
  //Inicializamos el servo motor en su pin y con el angulo
    servoPin3.attach(3);
    servoPin3.write(90);
  // Configuramos los switches como entradas
  for(int i=0;i<2;i++){
    for(int j=0;j<2;j++){
      pinMode(switches[i][j], INPUT);
    }
  }
    //Inicializamos matriz de los valores Leds
  for(int i=0;i<4;i++){
    for(int j=0;j<3;j++){
      ledsRGB[i][j]= ledValue;
      ledValue = ledValue*2;
        Serial.println("Led Value: ");
  		Serial.print(ledValue); 
    }
  }
  // configura los pines del ShidtRegister como salida
  pinMode (pinData, OUTPUT);
  pinMode (pinClock, OUTPUT);
  pinMode (pinReg, OUTPUT);    
  for(int i=0;i<4;i++){
     initLedPin += ledsRGB[i][1];
        Serial.println("Green Led: ");
  		Serial.print(ledsRGB[i][1]+" ");
    	Serial.print(initLedPin);
  }
    digitalWrite(pinReg,LOW);
  shiftOut(pinData,pinClock,MSBFIRST, initLedPin >> 8);
  shiftOut(pinData,pinClock,MSBFIRST, initLedPin);
  digitalWrite(pinReg,HIGH);
}

void loop()
{



}```


Moderador:
He cerrado tu publicación en hardware por doble posteo.
El doble posteo va en contra de las reglas del foro de Arduino.
La razón es que las publicaciones duplicadas hacen perder el tiempo a las personas que intentan ayudar.
Alguien podría pasar mucho tiempo investigando y escribiendo una respuesta detallada sobre un tema, sin saber que alguien más ya hizo lo mismo en el otro tema.
La publicación cruzada repetida puede resultar en una suspensión del foro, comenzando por una baneo de 1 dia, siguiendo por 2, 4, 8, etc.
En el futuro, crea solo un tema para cada tema distinto.
Esta es la etiqueta básica del foro, como se explica en Normas del foro.
Contiene mucha otra información útil.
Por favor léelo.


Además: los gráficos se postean en el foro no en Tinkercad.
Los códigos se postean en el foro no en Tinkercad.
Gracias de antemano por tu cooperación.

Disculpa mis malas formas, soy nuevo en el foro.
No volvera a suceder, gracias

El problema de los LEDs es fácil de resolver.
Miras cada LED RGB y debes corregir las resistencias de forma tal que la corriente que circulo por RGB no supere lo que permite el LED.
Las resistencias que has elegido son de 220ohms
Dudo que sea tu mismo caso

En este ejemplo le led RGB tolera 150mA lo que me parece mucho
supongamos 50mA
Rrojo = (5 - 2.2)/0.05A = 56 ohms
Razul = Rverde = (5 - 3.5)/0.05A = 30 ohms
como verás usar 220 ohms no puede dañar tu LED pero ocurre que la seleccion de tu LED en Tinkercad tal vez requiera ser mas conservador. O sea, tu led RGB no tolera la corriente que permite una R de 220 ohms en el peor caso que es azul y verde

Iazul=Iverde = (5-3.5)/220 = 6.8mA
Lo cual es una insignificancia.

Despreocúpate de lo que dice el simulador en este caso.

Estoy analizando Tinkercad.. y ahora comprendo los alertas. Ya te respondo cuando vea por qué lo indica.

image
Este es el problema, sumas 71.1 mA.
Vaya no se porqué, he quitado en mi copia 2 leds y sigue diciendo que se quema.

Bueno no encuentro la razón por la que te dice eso. He quitado los otros dos leds y sigue reportando que se quema el HC595 con solo un led y resistores de 1k, algo imposible.

Vaya que tienen un problema serio.
Una sola linea la verde con una R de 220Kohms y me dice que circularán 27.5KA o sea 27500Amperes. Esta LOCO!!!!!!
image
2 lineas R y B conectadas a 5V y lo demás solo al 595 y aun asi falla.

SOLUCION
Olvida toda la tontería que he escrito. no tiene nada que ver con algo electrico o si.
Mala conexión al protoboard
Asi debes conectarlo
image
Observa bien donde estan conectadas las resistencias, encma de la conexión del LED RGB.
Lo hice con uno solo
Lo pero es que comparo con el tuyo y no veo diferencia solo que ahora lo tomó bien.
Borré cada resistencia y las volví a poner.
Prueba por ahi.

EDITO como 4ta vez:
No he podido reproducirlo.
Basicamente he borrado todas las resistencias y conectado a GND cada pin del LED y dejé solo uno. cuando logré que 1 funcionara con resistencias volví a agregar los otros dos y salió funcionando.
Es algo de su simulación y de las conexiones.
Intenta reorganizar las conexiones y no poner encima del pin del LED la Resistencia.
No lo harias asi en un protoboard. Es lo que se me ocurre.

He borrado, resistencias y vueltas a poner, cambiado valores de ellas incluso con valores absurdamente altos. He borrado los leds y vueltos a colocar. Y en mi caso siempre me salen crasheados 3 de ellos en la simulacion, el ultimo nunca cambia de estado.
No entiendo nada la verdad, no se si arriesgarme y probarlo directamente sobre los componentes

Este va bien, tuve que reorganizar todo y funciona sin problemas pero si estan encimados no lo hace bien

haz una copia y luego siguelo como propio.

Muchas Gracias, intento abrir el archivo de Tinkercad y no me lo permite, quizas no hago bien algo, no lo he hecho nunca en proyectos que no fueran mios

Cuando puedas, me podrás indicar como puedo copiar el Tinkercad que me has arreglado.
Gracias

Cuando lo abres te dice a la derecha


Y ahi puedes.

Mi problema es que al clikar en tu enlace no me salta el proyecto, sino que se me abre esta pantalla

Ok. No desviemos mas el tema.
Te lo respondo por privado.
EDITO:
Bueno parece que por privado di con la tecla

Este se deja copiar y compartir.

This topic was automatically closed 180 days after the last reply. New replies are no longer allowed.