UART + DC-SS500

Hallo dots

Du hast einiges Durcheinander in Deinem Post:

Der DC-SS500 hängt:
an Pin 1 für TX und Pin 12 für RX ??
oder an Pin 2 und 12 des Arduino ??
Bitte mach nicht dieses Durcheinander indem Du 2 serielle Schnittstellen verwendest und die TX über die eine und RX über die andere schickst.
mySerial.println("$sure temp"); laut Datenblatt mußt Du ein Return senden ( 0x0d und 0x0a ) siehe Note1 Datenblatt Seite 5 (leider kann man nichts vom Datenblett kopieren. Haben die Angst ich kopiere ihnen was weg? >:( )

 if ((ch == 0x0a) || (ch == 0x0d)) // CR or LF
          {
             s[n] = 0; // null terminate the string
             return(n);
          }

Diese Code hat keinen Sinn da Du der Variable ch ja nur einmal den Wert 0 zuweist.

Auch diese Konstrukt hat wenig sinn:

while(ms--)
   {
     while (Serial.available() > 0)
      {

Sinnvoller finde ich:

  • Du sendest die Anfrage auf Daten
  • Kurze Wartezeit
  • Du liest die Daten von der serielle Schnittstelle mit
while (Serial.available() > 0)
      {
        Serial.print(char(Serial.read()));
      }

fertig.
Falls Du sie in eine Variable speichen möchtest:

while (Serial.available() > 0)
{
ch[n]= (Serial.read();
Serial.print(char(ch[n]);
n++;
}

Und bitte scheribe einen sauberen Kode und verwende nicht 2 Schnittstellen um die Daten zu Senden/Empfangen.

Grüße Uwe