I'm pretty new to arduino and electronics, so bear with me on what is likely an obvious question.
I'm trying to use a Mega 2560 and a set of relays to turn on and off Christmas lights in a pattern. They all turn on individually, but when I try to turn them all on at the same time, only 4-5 of them will turn on out of 10 total.
I know there is a 200ma current limit from the board, so I'm guessing that's why I'm having issues trying to turn them all on at the same time. I've tried putting resistors between the relays input voltage and the arduino, but if I go above 10 ohms the SSRs won't open.
I'm using the arduino to open and close the relay, and the relay is connected to both sides of the neutral line in a short extension cord that the lights are plugged into. This way it is easy to swap out which lights are being turned on and off.
Any help is appreciated, thanks!
Here is the setup for 1 of the relays, there are 10 of these total:
I'm using these SSRs: https://www.amazon.com/gp/product/B07MQVQPDK/ref=ppx_yo_dt_b_search_asin_title?ie=UTF8&psc=1
The code is pretty basic:
int ssr13 = 13;
int ssr12 = 12;
int ssr11 = 11;
int ssr10 = 27;
int ssr9 = 47;
int ssr8 = 8;
int ssr7 = 4;
int CycleCounter = 0;
void setup() {
// put your setup code here, to run once:
pinMode(ssr13, OUTPUT);
pinMode(ssr12, OUTPUT);
pinMode(ssr11, OUTPUT);
pinMode(ssr10, OUTPUT);
pinMode(ssr9, OUTPUT);
pinMode(ssr8, OUTPUT);
pinMode(ssr7, OUTPUT);
Serial.begin(9600);
}
void loop() {
// put your main code here, to run repeatedly:
digitalWrite(ssr13, HIGH);
digitalWrite(ssr12,LOW);
digitalWrite(ssr11,LOW);
digitalWrite(ssr10,LOW);
digitalWrite(ssr9,LOW);
digitalWrite(ssr8,LOW);
digitalWrite(ssr7,LOW);
Serial.println("1");
delay(2000);
digitalWrite(ssr13, LOW);
digitalWrite(ssr12,HIGH);
digitalWrite(ssr11,LOW);
digitalWrite(ssr10,LOW);
digitalWrite(ssr9,LOW);
digitalWrite(ssr8,LOW);
digitalWrite(ssr7,LOW);
Serial.println("2");
delay(2000);
digitalWrite(ssr13, LOW);
digitalWrite(ssr12,LOW);
digitalWrite(ssr11,HIGH);
digitalWrite(ssr10,LOW);
digitalWrite(ssr9,LOW);
digitalWrite(ssr8,LOW);
digitalWrite(ssr7,LOW);
Serial.println("3");
delay(2000);
digitalWrite(ssr13, LOW);
digitalWrite(ssr12,LOW);
digitalWrite(ssr11,LOW);
digitalWrite(ssr10,HIGH);
digitalWrite(ssr9,LOW);
digitalWrite(ssr8,LOW);
digitalWrite(ssr7,LOW);
Serial.println("4");
delay(2000);
digitalWrite(ssr13, LOW);
digitalWrite(ssr12,LOW);
digitalWrite(ssr11,LOW);
digitalWrite(ssr10,LOW);
digitalWrite(ssr9,HIGH);
digitalWrite(ssr8,LOW);
digitalWrite(ssr7,LOW);
Serial.println("5");
delay(2000);
digitalWrite(ssr13, LOW);
digitalWrite(ssr12,LOW);
digitalWrite(ssr11,LOW);
digitalWrite(ssr10,LOW);
digitalWrite(ssr9,LOW);
digitalWrite(ssr8,HIGH);
digitalWrite(ssr7,LOW);
Serial.println("6");
delay(2000);
digitalWrite(ssr13, LOW);
digitalWrite(ssr12,LOW);
digitalWrite(ssr11,LOW);
digitalWrite(ssr10,LOW);
digitalWrite(ssr9,LOW);
digitalWrite(ssr8,LOW);
digitalWrite(ssr7,HIGH);
Serial.println("7");
delay(2000);
digitalWrite(ssr13, HIGH);
digitalWrite(ssr12,HIGH);
digitalWrite(ssr11,HIGH);
digitalWrite(ssr10,HIGH);
digitalWrite(ssr9,HIGH);
digitalWrite(ssr8,HIGH);
digitalWrite(ssr7,HIGH);
Serial.println("All");
delay(4000);
}