- MultiPlus Wechselrichter Insel und Nulleinspeisung Conrad         
Ergebnis 1 bis 2 von 2

Thema: monitoring/sniffing einer SDI-12-Kommunikation

  1. #1
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    18.10.2007
    Beiträge
    124

    monitoring/sniffing einer SDI-12-Kommunikation

    Anzeige

    LiFePo4 Akku selber bauen - Video
    Ich möchte die Kommunkiation einer SDI-12-Datenverbindung zwischen Sensor und Anzeigeeinheit beobachten. Die Anzeigeeinheit wird mit 6V betrieben, am Sensor liegen 5V an, die kommen über das SDI-Kabel von der Anzeigeeinheit. Für das Monitoring habe ich einen Nano mit entsprechender Software bestückt, als Datapin die 8 definiert und diesen parallel an die Datenleitung zwichen Sensor und Anzeige angeschlossen. GND ist auch verbunden.

    Im Moment des Anschließens erscheint in der Anzeige ein "FAIL" und das Oszillogramm am Nano-Pin 8 wird mikroskopisch niedrig, quasi 0V.

    Nun sollen doch Arduino-Eingänge eigentlich Eingangs-Widerstände im Mega-Bereich haben ... was ist da passiert?

    Ich habe sichergestellt, dass die Software definitiv nicht schreibt, nur lauscht.

    Code:
    #include <SDI12.h>
    int8_t  dataPin  = 8;
    SDI12 mySDI12(dataPin);
    
    void setup()
    {
      Serial.begin(9600); delay(500);
      mySDI12.begin(); delay(500);
      mySDI12.forceListen();
      Serial.println("--- start listening ---");
    }
    
    void loop()
    {
      String  sdiMsgStr;
      bool sdiMsgReady = false;
      int avail = mySDI12.available();
      
      if (avail > 0)
      {
        for (int a = 0; a < avail; a++)
        {
          char inByte = mySDI12.read();
          Serial.println(inByte);
          if (inByte == '\n') {sdiMsgReady = true;} 
          if (inByte == '!') {sdiMsgStr += "!"; sdiMsgReady = true;} else {sdiMsgStr += String(inByte);}
          delay(10);
        }
      }
    
      if (sdiMsgReady)
      {
        Serial.println(sdiMsgStr);
        sdiMsgReady = false;
        sdiMsgStr   = "";
        mySDI12.clearBuffer();
      }
    
      delay(10);
    
    } //end loop

  2. #2
    Bei SDI-12-Verbindungen kann selbst hochohmiger Input Störungen verursachen. Vermutlich beeinträchtigt die interne Pull-up/Pull-down-Konfiguration Ihres Arduino die Signalqualität. Verwenden Sie einen Puffer-Verstärker oder optischen Isolator als Zwischenschaltung.

    Übrigens, wenn Sie sich nach dieser technischen Herausforderung entspannen möchten, besuchen Sie GAME Monkey Mart
    , wo spannende Spiele Ihren Geist erfrischen – ähnlich wie ein Buffer eine Signalstörung beseitigt!

Ähnliche Themen

  1. Antworten: 1
    Letzter Beitrag: 29.03.2017, 18:28
  2. Unterschied zwischen Sensorik(in der Technik) und Sensor-Monitoring?
    Von Kpanzou Bishop im Forum Sensoren / Sensorik
    Antworten: 4
    Letzter Beitrag: 16.01.2015, 13:49
  3. Handy Kommunikation atmega128 Kommunikation auswerten
    Von bastian07 im Forum Basic-Programmierung (Bascom-Compiler)
    Antworten: 2
    Letzter Beitrag: 26.04.2009, 17:58
  4. setzen einer Variable nach ablauf einer bestimmten Zeit
    Von mat-sche im Forum Basic-Programmierung (Bascom-Compiler)
    Antworten: 6
    Letzter Beitrag: 07.12.2008, 23:45
  5. Antworten: 4
    Letzter Beitrag: 25.01.2008, 21:03

Stichworte

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •  

LiFePO4 Speicher Test