Chip, возникла некоторая проблема. Увеличил упраравление до 8-ми устройств.
Вот скетч :
PHP код:
char inchar;
int relay8 = 11;
int relay7 = 10;
int relay6 = 9;
int relay5 = 8;
int relay4 = 7;
int relay3 = 6;
int relay2 = 5;
int relay1 = 4;
void setup()
{
pinMode(relay1, OUTPUT);
pinMode(relay2, OUTPUT);
pinMode(relay3, OUTPUT);
pinMode(relay4, OUTPUT);
pinMode(relay5, OUTPUT);
pinMode(relay6, OUTPUT);
pinMode(relay7, OUTPUT);
pinMode(relay8, OUTPUT);
digitalWrite(relay1, LOW);
digitalWrite(relay2, LOW);
digitalWrite(relay3, LOW);
digitalWrite(relay4, LOW);
digitalWrite(relay5, LOW);
digitalWrite(relay6, LOW);
digitalWrite(relay7, LOW);
digitalWrite(relay8, LOW);
Serial1.begin(9600);
delay(30000);
Serial1.println("AT+CMGF=1\r");
delay(200);
Serial1.println("AT+CNMI=3,0,0,0\r");
delay(200);
}
void loop()
{
if(Serial1.available() >0)
{
inchar=Serial1.read();
if (inchar=='#')
{
delay(10);
inchar=Serial1.read();
if (inchar=='a')
{
delay(10);
inchar=Serial1.read();
if (inchar=='0')
{
digitalWrite(relay1, LOW);
}
else if (inchar=='1')
{
digitalWrite(relay1, HIGH);
}
delay(10);
inchar=Serial1.read();
if (inchar=='b')
{
inchar=Serial1.read();
if (inchar=='0')
{
digitalWrite(relay2, LOW);
}
else if (inchar=='1')
{
digitalWrite(relay2, HIGH);
}
delay(10);
inchar=Serial1.read();
if (inchar=='c')
{
inchar=Serial1.read();
if (inchar=='0')
{
digitalWrite(relay3, LOW);
}
else if (inchar=='1')
{
digitalWrite(relay3, HIGH);
}
delay(10);
inchar=Serial1.read();
if (inchar=='d')
{
inchar=Serial1.read();
if (inchar=='0')
{
digitalWrite(relay4, LOW);
}
else if (inchar=='1')
{
digitalWrite(relay4, HIGH);
}
delay(10);
inchar=Serial1.read();
if (inchar=='e')
{
inchar=Serial1.read();
if (inchar=='0')
{
digitalWrite(relay5, LOW);
}
else if (inchar=='1')
{
digitalWrite(relay5, HIGH);
}
delay(10);
inchar=Serial1.read();
if (inchar=='f')
{
inchar=Serial1.read();
if (inchar=='0')
{
digitalWrite(relay6, LOW);
}
else if (inchar=='1')
{
digitalWrite(relay6, HIGH);
}
delay(10);
inchar=Serial1.read();
if (inchar=='g')
{
inchar=Serial1.read();
if (inchar=='0')
{
digitalWrite(relay7, LOW);
}
else if (inchar=='1')
{
digitalWrite(relay7, HIGH);
}
delay(10);
inchar=Serial1.read();
if (inchar=='h')
{
inchar=Serial1.read();
if (inchar=='0')
{
digitalWrite(relay8, LOW);
}
else if (inchar=='1')
{
digitalWrite(relay8, HIGH);
}
delay(10);
}
}
Serial1.println("AT+CMGD=1,4\r"); // delete all SMS
}
}
}
}
}
}
}
}
}
Когда включаю всего 6 устройств (#a1b1c1d1e1f1g0h0), все работает нормально. Когда включаю 7 или 8 устройств (#a1b1c1d1e1f1g1h1), они включаются, но шилд отключается. С кнопки его не включить. Только отсоединение и подсоединение питания. При этом, Ардуина питается от компьютерного БП (12В) и устройства (нагрузка) физически не подключена. Кроме того, єто происходит именно тогда, когда включаю "g1" и "h1"