Muže mi někdo říct, co dělám špatně?
Kód: Vybrat vše
void loop() {
{
inCount = 0;
while (Serial.available() > 0)
{
inString[inCount] = Serial.read();
delay(10);
if (inString[inCount] == '\0') break;
inCount++;
}
inString[inCount] = '\0';
if (inCount > 0) {
String x = inString;
x.trim();
// ------------------------------------------------
if(x == "test")
{
digitalWrite(2, HIGH); // nastavi pin 2 na 1 - zapis
for (int i=-0; i<8;)
{
Serial.print("Rele ");
Serial.println(i);
mcp1.digitalWrite(i,LOW);
delay(500);
mcp1.digitalWrite(i,HIGH);
i++;
}
digitalWrite(2, LOW); // nastavi pin 2 na 0 - čtení
}
// ------------------------------------------------
if(x == "A1_rele0")
{
digitalWrite(2, HIGH); // nastavi pin 2 na 1 - zapis
delay(500);
Serial.println("Rele 0 hotovo ");
digitalWrite(2, LOW); // nastavi pin 2 na 0 - čtení
// mcp1.digitalWrite(0,LOW);
// delay(500);
// mcp1.digitalWrite(0,HIGH);
}
// ------------------------------------------------
if(x == "info")
{
digitalWrite(2, HIGH); // nastavi pin 2 na 1 - zapis
Serial.println("A1_stav expanderu " + info());
digitalWrite(2, LOW); // nastavi pin 2 na 0 - čtení
}
}
}
}
String info()
{
String a = String(mcp1.digitalRead( 8))+ String(mcp1.digitalRead( 9))
+ String(mcp1.digitalRead(10))+ String(mcp1.digitalRead(11))
+ String(mcp1.digitalRead(12))+ String(mcp1.digitalRead(13))
+ String(mcp1.digitalRead(14))+ String(mcp1.digitalRead(15));
return a;
}
Normálně přes usb převodník té CP2102 to funguj.
Když však odpojím CP2102 a pustím to přes RS485 modul tak to vyzera takto.
První býl odeslan příkaz test a okRele 0
Rele 1
Rele 2
Rele 3
Rele 4
Rele 5
Rele 6
Rele 7
⸮⸮Rele 0
Rele 1
Rele 2
Rele 3
Rele 4
Rele 5
Rele 6
Rele 7
Rele 0
Rele 1
Rele 2
Rele 3
Rele 4
Rele 5
Rele 6
Rele 7
⸮⸮
Pak přikaz info a vratílo to ⸮
Pak příkaz A1_rele0 a vratilo to ⸮
Pak jsem znovu zkoučel 2 X test a pak info a A1_rele0
Co je špatně?
Na napájecích pinech té 485 mam už 1000 uF kondík a nepomohlo