Arduino Nano Problem (Int to Char)

Gast #6411081
Lesenswert?

Moin
ich würde gerne ein Char Array bestehend aus einer Seriennummer und 
einem Steuerwert übergeben:

Seriennummer: SN#s48fa3asd4d
Steuerwert: 14

Zusammengesetzt soll folgendes über I2C ausgegeben werden: 
SN#s48fa3asd4d;14

Folgende Variablen werden verwendet:

#define I2C_ADDRESS_OTHER 0x2

int encoderPos = 14;
string serialNumber = "SN#s48fa3asd4d";

void setup() {
    Wire.begin();
}
void loop()
{
      Wire.beginTransmission(I2C_ADDRESS);
      char trasmit_c[1];
      String transmit_s = serialNumber + ";" + encoderPos;
      transmit_s.toCharArray(trasmit_c, 17);
      Wire.write(trasmit_c);
}


das komische ist, dass es bei einem Skript funktioniert und bei einem 
anderen nicht. Einmal wird ein linearer Regler ausgelesen (Steuerwert 
zwischen 0 und 100) und einmal ein Inkrementgeber (Steuerwert zwischen 
-1000 und +1000)
Gast #6411090
Lesenswert?

An ein andere Gerät, die Datenübertragung funktioniert auch. Im 
Fehlerfall wird immer wieder die Setup-Routine aufgerufen. Ich weiß 
jedoch nicht warum. Wenn ich

      String transmit_s = serialNumber + ";" + encoderPos;

durch

      String transmit_s = serialNumber + ";" + "14";

ersetze, funktioniert alles.



Im Beispiel sind Seriennummer und Steuerwert fest, in echt ist der 
Steuerwert natürlich nicht statisch. Die Seriennummer wird nur einmalig 
vergeben und dann in den EEPROM geschrieben.
Gast #6411094
Lesenswert?

Tatsache, ich hatte es im anderen Sketch probiert, da hatte es 
funktioniert. habe jetzt encoderPos durch String(encoderPos) ersetzt und 
es funktioniert. Ist natürlich plausibel dennoch wundere ich mich, warum 
es im anderen Sketch funktioniert hat.

Danke euch!

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren