Adruino Mega oder Due als Kabeltester

Hallo,

ich möchte mit einem Adruino Mega oder Adruino Due einen Kabeltester realisieren. Der Adruino soll hier alle I/O Ports der Reihe nach abfragen und entsprechend Kabelbäume auf Durchgang / Kurzschluß und Unterbrechung testen. Des weiteren soll der Adruino entsprechend eine LED zum Leuchten bringen bzw. einen Tongeber, welche die zustände Gut / Schlecht ( Unterbrechung und Kurzschluß ) enzeigen.

Meine Fragen hierzu sind:

  1. Wie groß ist der Aufwand, welchen ich hier betreiben muß?
  2. Gibt es ein fertiges Script, welches ich hier verwenden kann?
  3. Wie muss so ein Script aufgebaut sein?

Ich bedanke mich für die Mühe.

Mit freundlichen Grüßen:

Behri

verfolge mal den Thread von vor 10 Tagen:

https://forum.arduino.cc/index.php?topic=664669.0

Das geht auch mit einem kleinen Board und Schieberegistern. Da ein Kabelbaum ja auch beliebige Verzweigungen haben kann und es damit in der Regel keine reine 1:1 Zuordnung der Anschlüsse gibt, muss die Programmierung aber speziell auf den Kabelbaum angepasst werden.

Man könnte das ganze auch noch ausbauen und mit einem PC ergänzen, auf dem die Prüfprotokolle definiert werden, die der Controller dann abarbeitet.

High-End Lösung wäre dann die Verarbeitung eines Exports aus der Software, mit der die Kabelbäume konstruiert werden um so einen automatischen Prüfablauf zu ermöglichen.

Ein Punkt, über den man sich aber auch Gedanken machen muss: Normalerweise werden für Isolations- und Kurzschluss-Tests wesentlich höhere Spannungen genommen als gut ist für einen Controller. Wenn das auch abgedeckt werden soll, ist deutlich mehr Schaltungsaufwand erforderlich.

Insgesamt ist das aber ein spannendes Projekt, das ich selbst schon fast mal in Angriff genommen hätte

(deleted)

Das Gerät mag klein sein, aber der Anschluß unterschiedlicher Kabelbäume könnte mit einigem Aufwand verbunden sein. Wenn die Enden keine Stecker haben, können auch noch Verwechslungen beim Anschließen auftreten.

Das Programm ist relativ einfach, Konfigurationen können auch von SD Karten gelesen werden.

Schieberegister vereinfachen nicht viel, können aber (gesockelt!) nach Katastrophen leicht ausgetauscht werden.

Mein erster Kabeltester hat sich komplett zerlegt, weil mir niemand gesagt hat, daß die Stromversorgung den gleichen Stecker wie die übrigen Steckplätze hat. Die 220V haben dann einigen magischen Rauch produziert :-(

(deleted)

Den Vorteil der Schieberegister sehe ich in der einfachen Erweiterbarkeit. Wenn ein größerer Kabelbaum geprüft werden muss, steckt man einfach ein paar Module mehr an und gut is.

Was ich mir auch noch überlegt habe als mögliches Feature: eine Teach-In Funktion. Du steckst einen Referenz-Kabelbaum an. Das Tool checkt jede Ader gegen jede andere und ermittelt dabei das Soll-Muster. So geht es ganz ohne Programm-Änderung oder manuelle Konfiguration.

Der Vorteil bei der Integration eines Windows Rechners wäre, dass er Dir auch gleich noch ein detailiertes Fehlerprotokoll anzeigen kann:

  • Stecker 1 Kurzschluss zwischen Ader 3 und 4
  • Stecker 2 Pin 3 falsch verbunden mit Stecker 6 Pin 9
  • usw.

Insgesamt sehe ich bei so einem Projekt verschieden komplexe Lösungsansätze mit verschiedenen Vor-/Nachteilen. Hängt halt auch davon ab, wie komplex die Kabelbäume sind, wie oft die Konfiguration sich ändert, ob eine reine gut/schlecht Aussage oder eine echte Fehler-Analyse gemacht werden soll.

Verstehe das fachliche Problem nicht.

Annahme 16 Pins.

15 auf input geben 1 auf output setzen und High schicken.

gucken welche der anderen 15 high erkennt. nächster Pin.

noiasca: 15 auf input geben 1 auf output setzen und High schicken.

Das setzt voraus, daß die Inputs per default Low sind. Mit INPUT_PULLUP sind sie aber High. Also auf 0 ziehen und testen.

Schieberegister müssen wahlweise als Ein- und Ausgänge arbeiten können, das können aber nur Port-Expander, und möglicherweise auch die nur mit zusätzlichen Pullups.

Ich würde immer zwei "Bänke" von Schieberegistern vorsehen. Eine Bank ist konstant auf Eingang (z. B. 74HCT165) und die andere als Ausgang (z. B. 74HCT595) konfiguriert. Wenn ich dann EIN Ausgangs-Pin setze, wird mir das natürlich auch sofort am Eingangs-Schieberegister angezeigt - zusätzlich mit allen korrelierenden Eingangs-Pins, wo verbundene Adern anliegen. Dennoch bleibt dieser Ansatz aus meiner Sicht unschlagbar, da beliebig erweiterbar. Bei Portexpandern unterliegst Du IMMER einer Mengenbeschränkung und zum andern musst Du zwischen Ein- und Ausgang umschalten. Das würde bei meinem Ansatz alles wegfallen.

DrDiettrich:
Das setzt voraus,

challenge akzeptiert.

Ganz was einfaches als proof of concept:

/*
  simple check of connections between defined test pins.
  external pulldown resistor 6K8
  by noiasca

  https://forum.arduino.cc/index.php?topic=666835.0
*/

const byte testPin[] {5, 6, 7, 8, 9, 10, 11, 12};

void setup() {
  Serial.begin(115200);
  Serial.println(F("\nCabletester"));
  for (auto &i : testPin)
    pinMode(i, INPUT);
}

void loop() {
  check();
}


void check()
{
  Serial.println(F("New Test"));
  for (auto &i : testPin)
  {
    Serial.print(i);
    Serial.print("\t");
    pinMode(i, OUTPUT);
    digitalWrite(i, HIGH);
    for (auto &j : testPin)
    {
      if (i != j && digitalRead(j))
      {
        Serial.print("-->");
        Serial.print(j);
      }
    }
    digitalWrite(i, LOW);
    pinMode(i, INPUT);
    Serial.println();
  }
  delay(1000);
}

output:

New Test
5	-->6-->8
6	-->5-->8
7	
8	-->5-->6
9	
10	-->12
11	
12	-->10

Prototyp mit externen Pulldowns (6K8 Widerstandsnetzwerk, weils da war).

Q.E.D. - es läuft.

mgcss:
Ich würde immer zwei “Bänke” von Schieberegistern vorsehen. Eine Bank ist konstant auf Eingang (z. B. 74HCT165) und die andere als Ausgang (z. B. 74HCT595) konfiguriert. Wenn ich dann EIN Ausgangs-Pin setze, wird mir das natürlich auch sofort am Eingangs-Schieberegister angezeigt - zusätzlich mit allen korrelierenden Eingangs-Pins, wo verbundene Adern anliegen.

Schieberegister sind nicht so “konfigurierbar” wie Du Dir das vorstellst. Die Ausgänge eines 74HCT595 können nur gemeinsam ein- oder ausgeschaltet werden. Dann kommt es beim Einschalten zwangsläufig zu Kurzschlüssen zwischen den Pins an beiden Enden einer Leitung.

DrDiettrich: Schieberegister sind nicht so "konfigurierbar" wie Du Dir das vorstellst. Die Ausgänge eines 74HCT595 können nur gemeinsam ein- oder ausgeschaltet werden. Dann kommt es beim Einschalten zwangsläufig zu Kurzschlüssen zwischen den Pins an beiden Enden einer Leitung.

Das ist mir klar. Deshalb hatte ich für die Eingänge ja auch die 74HCT165 als Beispiel genannt. Ich kenne mich Schieberegister durchaus aus. Du auch? Schieberegister sind entweder parallel zu seriel oder umgekehrt (und damit vereinfacht gesagt entweder Eingang oder Ausgang). Aber nie umschaltbar. Deshalb ja auch mein Versuch, das mit "zwei Bänken" zum Ausdruck zu bringen, da man in diesem Fall beide Typen braucht

Wieviele und welche Digital Pins kann ich beim Adruino Mega und Due zum Testen verwenden?

MFG:

Rainer Behr

Zähl mal durch ;)

Die beiden seriellen weg, Serial1 evtl, I2C evtl. ausklammern, genau so wie SPI. Die drei letzten sind nicht Pflicht auszuklammern aber für Erweiterungen (Display, ...)

Gruß Tommy

mgcss: Ich kenne mich Schieberegister durchaus aus. Du auch?

So viel geballte Kompetenz macht mich sprachlos :-]

Gebt mir mal eine Woche, dann baue ich einen Prototypen mit kaskadierten Schieberegistern, der beliebig erweiterbar ist. Ich hoffe, das stellt dann auch alle Zweifeler zufrieden