Go Down

Topic: Externes Gerät als Inputsignal (Read 286 times) previous topic - next topic

uxomm

#15
Apr 20, 2017, 08:51 pm Last Edit: Apr 20, 2017, 08:51 pm by uxomm
Oder so
Always decouple electronic circuitry.

HotSystems

Oder so

Richtig, aber beim internen gibt es keine Probleme mit den Farbringen. ;)
I2C = weniger ist mehr: weniger Kabel, mehr Probleme. 8)

uxomm

Ach ja die Farbringe...
da lob ich mir mein Multimeter ;)
Always decouple electronic circuitry.

ludwigm

#18
Apr 22, 2017, 11:54 am Last Edit: Apr 22, 2017, 12:03 pm by ludwigm
Hallo,
ein internen Pullup verwende ich beim Arduino so?

Code: [Select]
digitalWrite(12,HIGH);

Ansonsten brauch ich auf der Emitter/Colector Seite keinen Widerstand?


Aber brauche ich nicht eher einen Pulldown? Ich möchte ja, wenn die LED des Optokopplers leuchtet, HIGH am Controller anliegen haben.

Danke im Voraus
ludwigm

uxomm

#19
Apr 22, 2017, 12:37 pm Last Edit: Apr 22, 2017, 12:38 pm by uxomm
Um den internen Pullupwiderstand zu aktivieren gibt es mehrere Möglichkeiten, hier sind 2 davon:
Code: [Select]
pinMode(12, INPUT);  //diese Zeile ist nicht unbedingt nötig, weil nach einem Reset die Pins generell INPUT sind
digitalWrite(12,HIGH);  //aktiviert den internen Pullupwiderstand

oder:
Code: [Select]
pinMode(12, INPUT_PULLUP);  //aktiviert den internen Pullup
Mit internem Pullup brauchst du keinen zusätzlichen Widerstand auf der "rechten" Seite des Optokopplers.

Aber brauche ich nicht eher einen Pulldown? Ich möchte ja, wenn die LED des Optokopplers leuchtet, HIGH am Controller anliegen haben.
Die Schaltung von #15 invertiert das Signal (egal ob mit internem oder externem Pullupwiderstand). Das heißt, wenn es "links" HIGH gibt, dann ist "rechts" LOW und umgekehrt. Das ist aber kein Fehler/Nachteil. Wichtig ist, dass du ein eindeutiges "sicheres" Signal bekommst und das ist hier der Fall. Du fragst im Arduino-Sketch einfach auf LOW statt auf HIGH ab - that's it.

Wenn du aus "ästhetischen" Gründen lieber ein "nichtinvertiertes" Signal haben willst, kannst du auch einen Pulldownwiderstand verwenden (den gibt es aber nicht in der "internen" Variante). :)
Always decouple electronic circuitry.

HotSystems

Hallo,
ein internen Pullup verwende ich beim Arduino so?

Ansonsten brauch ich auf der Emitter/Colector Seite keinen Widerstand?

Aber brauche ich nicht eher einen Pulldown? Ich möchte ja, wenn die LED des Optokopplers leuchtet, HIGH am Controller anliegen haben.

Danke im Voraus
ludwigm
Du definierst einen Pullup-Widerstand am Besten im Setup mit
Code: [Select]
pinMode(name, INPUT_PULLUP);
Am Optokoppler kannst du es nicht direkt beeinflussen.
Wenn die Led leuchtet, geht der Ausgang in der gezeigten Schaltung immer auf LOW.
Du kannst es doch per Software anpassen.
Alternativ wäre den Kollektor auf +5Volt, einen Widerstand am Emitter gegen GND und das Signal am Emitter abgreifen und an den Arduino anschließen. Da geht aber kein interner Pullup-Widerstand.
I2C = weniger ist mehr: weniger Kabel, mehr Probleme. 8)

ludwigm

Ich habe den internen Pullup-Widerstand verwendet.

Jetzt funktioniert es so wie es soll :)
Vielen Dank an alle, die in diesem Beitrag geschrieben haben.

Gruß Ludwigm

Go Up