Dioden schaltungs problem

Hi leute,

mein projekt ist ein bisschen schwer zu beschreiben.
Ich hab 2 arduino uno die würde ich gerne verbinden mit einem Kabel von 5 Volt zum digital pin vom anderen.

Wenn die Verbindung hergestellt wird (schalter z.b.) dann wird eine Diode für 10 Sekunden eingeschaltet und geht dann wieder aus. Die Diode sollte die 10 Sekunden anbleiben auch wenn während dessen die Verbindung abbricht.

Jetzt hab ich aber nicht wirklich eine Ahnung wie man das ganze umsetzt.

Dachte vielleicht sowas in die Richtung?:

void setup() {
  
  pinMode(5, OUTPUT);
  pinMode(8, INPUT);
  }
void loop() {

if(digitalWrite(8)==HIGH)
 {
    digitalWrite(5, HIGH);
    delay(5000);
    digitalWrite(5, LOW);
  }
}

Funktioniert halt leider nicht^^

Grüße

Schaltplan? Vermute keine gemeinsamer GND

Versuche mal

if(digitalRead(8)==HIGH)

Die Diode ist eine Leuchtdiode?

delay(5000) sind 5 Sekunden

Die Diode ist eine Leuchtdiode jep.

if(digitalRead(8)==HIGH) funktioniert es zumindest schon mal so halb.

Wenn ich 5 Volt an den 8 Pin hänge ist die Leuchtdiode aufjedenfall schonmal an.

Das Problem ist das wenn ich das Kabel vom 5 volt Anschluss trenne die Diode trotzdem ab und zu leuchtet.

Mal geht sie an mal geht sie aus. Die spinnt total rum xD

Ich hab gemerkt je nach dem wie das kabel im 8 Pin steckt geht sie an oder aus (oder reagiert zumindest drauf)

Witzig das die Leuchtdiode auch auf meine Handbewegung reagiert.

Scheinbar brauch ich etwas das nur auf high schaltet wenn 5 Volt beim 8ten Pin ankommen.

Du hast einen Elektronenfänger gebaut, eignet sich zum Wahrsagen :wink: Sonst besser den Eingang auf ein definiertes Potenzial legen:

pinMode(8, INPUT_PULLUP);

agmue:
Du hast einen Elektronenfänger gebaut, eignet sich zum Wahrsagen :wink: Sonst besser den Eingang auf ein definiertes Potenzial legen:

pinMode(8, INPUT_PULLUP);

Das sehe ich auch so.
Wichtig ist dabei, der Kontakt (Kabel) muss hierbei aber gegen GND hergestellt werden.
Und das Schaltverhalten ist invertiert.

Elektronenfänger :slight_smile: Ok gut zu wissen.

"Sonst besser den Eingang auf ein definiertes Potenzial legen:"

Was bedeutet das?

asgar434:
Elektronenfänger :slight_smile: Ok gut zu wissen.

"Sonst besser den Eingang auf ein definiertes Potenzial legen:"

Was bedeutet das?

Genau das, was agmue vorgeschlagen hat.
Bzw. wenn du es mit 5 Volt machen must, dann must du einen Pulldown-Widerstand einbauen.

INPUT_PULLUP legt einen internen 50 kOhm Widerstand an +5V. Unbeschaltet ist der Eingang auf HIGH.

Wie schaff ich es das der 8te Pin unbeschalten auf LOW ist?

Und wegen GND, geht das nicht ohne? Hätte gern nur 1 Kabel.

Mein Code schaut jetzt so aus: (Wenn der läuft ist die Leuchtdiode einfach Dauer an)

void setup() {
  
  pinMode(5, OUTPUT);
  pinMode(8, INPUT_PULLUP);
  }
void loop() {



if(digitalRead(8)==HIGH)
 {
    digitalWrite(5, HIGH);
    delay (5000);
    digitalWrite(5, LOW);
  }
  if(digitalRead(8)==LOW)
 {
    digitalWrite(5, LOW);
  }
}

HotSystems:
Genau das, was agmue vorgeschlagen hat.
Bzw. wenn du es mit 5 Volt machen must, dann must du einen Pulldown-Widerstand einbauen.

Ein unbeschalteter Eingang hat ein undefiniertes Potential (Spannung) weil er so hochohmig ist daß elektromagnetische Störungen (Radiwellen, Entladungen) genügen damit er HIGH oder LOW liest. Um das zu verhindern schaltet man einen Widerstand zwischen Eingang und Masse (Pull Down) oder Eingang und +5V (Pullup) Beides Funktioniert, Die Auswahl ergibt sich aus der Schaltung.

asgar434:
Wie schaff ich es das der 8te Pin unbeschalten auf LOW ist?
Und wegen GND, geht das nicht ohne? Hätte gern nur 1 Kabel.

Spannungen werden zwischen 2 Punkten gemessen. Da reicht nicht 1 Kabel. Du mußt immer die Masse der beiden Arduini verbinden. Das kann auch Durch den PC passieren weil Du beide Arduini am gleichen PC über USB versorgst.
Wenn die Masse (GND) verbunden ist dann ist es egal ob Du 5V oder GNS auf das Eingngspin gibst. Es funktioniert beides.

Damit das Pin 8 sicher LOW ist wenn nichts angehängt ist mußt Du einen Widerstand ( etwas zwischen 10k und 100kOhm ) zwischen Eingang (Pin8) und Masse( GND) schalten.

Hast Du einen Vorwiderstand am LED?

Grüße Uwe

asgar434:
Wie schaff ich es das der 8te Pin unbeschalten auf LOW ist?

Und wegen GND, geht das nicht ohne? Hätte gern nur 1 Kabel.

Widerstand gegen GND wurde jetzt ja schon einige Male vorgeschlagen und ist auch die einzige Lösung dieses "Problems".

Und die GND-Verbindung muss sein.
Das wäre sonst, als wenn du eine Glühbirne mit nur einem draht betreiben wolltest.

Oder als wenn du einen Gummi spannen wolltest, aber nur an einer Seite ziehst.

Das selbe bei einem Stromschlag.
Den kriegt man nur, weil man über seinen Körper mit der Erde verbunden ist.
Auch die "Masse" des Trafos für den "Strom" aus deiner Steckdose ist mit der Erde Verbunden.
So herrscht also zwichen der "Phase" und der Erde ein Potentialunterschied.

Würde man nun schweben, dann würde man auch keinen Schlag kriegen.
ACHTUNG!!!
Das soll jetzt nicht heißen, dass du springend in die Steckdose fassen sollst !

Wenn dein Arduino feststellen soll ob Ein engang HIGH oder LOW ist, dann macht er nichts anderes als die Spannung zwischen diesem Eingang und GND zu messen.
Überschreitet diese einen bestimmten Wert, dignaliesiet er ein HIGH.
Wenn dem Arduino aber aber der GND vom Eingangssignal (also vom anderen Arduino) fehlt. Kann er diese Spannung nicht messen.

Gruß

schUk0

asgar434:
Wie schaff ich es das der 8te Pin unbeschalten auf LOW ist?

Mein Code schaut jetzt so aus: (Wenn der läuft ist die Leuchtdiode einfach Dauer an)

Es wird für dich sicherlich einfacher und verständlicher, wenn du dir die Beispiele in der IDE ansiehst.
Da werden die Taster-Funktionen mit Led genau beschrieben.

Einfach mal durcharbeiten, dann wird das alles verständlicher.

Du kannst pullup verwenden, dann sparst du dir einen zusätzlichen Widerstand. Wenn du willst, dass bei abgezogenem Kabel die LED aus ist, musst du eben mit ! oder zu Fuss die Logik umkehren.

Aber ohne GND zu verbinden, geht es so nicht. dann musst du schon auf eine Funklösung gehen.

Hi Leute also erstmal ein großes Danke für die tolle Hilfe und die vielen interessanten Infos.
Ich hab gemerkt das ich für mein Projekt auch einen anderen Weg gehen kann.

Soweit hat auch alles super funktioniert.

Meine letzte Frage wäre ob es möglich ist den GND Pin per Code zu deaktivieren?

asgar434:
Meine letzte Frage wäre ob es möglich ist den GND Pin per Code zu deaktivieren?

Welchen GND-Pin und was soll das bringen ?

Meine letzte Frage wäre ob es möglich ist den GND Pin per Code zu deaktivieren?

Den GND Pin nicht aber Du kannst den Eingang des Zweiten Arduino an ein Pin des Ersten anschließen und so HIGH oder LOW ausgeben.

Achtung: Während des Einschaltens des ersten Arduinos ist der Zustand des Pins nicht definiert. Du brauchst einen Pullup bzw Pulldown Widerstand am Eingang des zweiten Arduinos.

Grüße Uwe

Falls aus irgend einem Grund eine temporäre galvanische Trennung des GND notwendig sein sollte, geht das am einfachsten über ein Relais

Ah Relais des werd ich gleich mal probieren :slight_smile:

Würde auch funktionieren wenn ich den Arduino per Code ausschalten könnte :slight_smile:

Ok hab es gerade mit dem Relais probiert und alles funktioniert :slight_smile:

Danke!