Kurz und knapp
Masse an Leitung 1
-> Anzeige der Bezeichnungen auf dem Display für Leitung 1
Leitung 1 von Masse trennen
-> Es soll nur der Zählerstand angezeigt werden, der Rest wird nicht mehr angezeigt
Das Spiel geht solange weiter mit Leitung 2, 3, 4 usw
Geschwindigkeit der Umschaltung spielt keine Rolle.
Eine Person macht das manuell.
Er hält die Masse an die Leitung und guckt, ob die Leitungsbezeichnungen stimmen.
Das ganze wird über eine Art IDE-Stecker an den Arduino angeschlossen.
So kann man das Kabel mit seinen Leitungen durchprüfen und gucken, ob es richtig am Stecker belegt ist.
An Automatisierung wird noch nicht gedacht.
Danke für deine Zeit und Mühe mit mir. Ich weiß das zu schätzen.
Edit:
Hab den Code mal leicht abgeändert, damit die Bezeichnungen zwar angezeigt werden, jedoch aber nicht nochmal der Zähler hochzählt, wenn die Leitung bereits geprüft wurde.
// Zur Benennung der Variablen wurde die Camel-Case-Konvention verwendet
// Anzahl der Kabel für die Schleifen
const byte leitungsAnzahl = 50;
// Leitungs-Array mit Pin-Werten
byte leitung[leitungsAnzahl] = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49};
// Zählervariablen deklarieren zwecks einmaligem hochzählen pro Leitung
boolean zaehlerVariableLeitung[leitungsAnzahl];
// Deklaration des Zählers für das LCD
byte zaehler ;
// Farbcodes von Leitung 1 bis 50 (von oben nach unten)
char farbcodeLeitung[][6] =
{
"blau",
"gruen",
"rot",
"usw"
};
// Leitungsbezeichnung von 1 bis 50 (von oben nach unten)
char bezeichnungLeitung[][4] =
{
"kd1",
"gr2",
"7d3",
"usw"
};
void setup()
{
// Alle Pins des Arrays als Eingang und mit Pullup-Widerstand auf HIGH gesetzt
for(byte i = 0; i < leitungsAnzahl; i++)
pinMode(leitung[i], INPUT_PULLUP);
}
void loop()
{
for(int i=0; i < leitungsAnzahl; i++)
{
if (!digitalRead(leitung[i]))
{
lcd.print (i); lcd.print(bezeichnungLeitung[i]); lcd.print(farbcodeLeitung[i]); lcd.print(zaehler);
if (zaehlerVariableLeitung[i]==false)
{
zaehlerVariableLeitung[i] = true;
zaehler ++;
}
}
}
}