Forum: Mikrocontroller und Digitale Elektronik Arduino - Eingänge entstören?


von svensson (Gast)


Lesenswert?

Moin,

für das nächste Projekt soll ein Arduino einen (fertig aufgebauten) 
Frequenzumrichter ansteuern. Beide Schaltungen sind galvanisch getrennt, 
werden jedoch in unmittelbarer Nähe aufgebaut.

Mein Kollege hat mir jedoch berichtet, daß der FU ganz erhebliche 
Störungen im Radio verursacht, weshalb er befürchtet, der Arduino könnte 
ebenfalls beeinträchtigt werden.

Sollten die Eingänge (Taster, Schalter) irgendwie geschützt werden (z.B. 
durch einen RC-Filter), oder sind keine Probleme zu befürchten?

Eigentlich kann ich mir irgendwie nicht vorstellen, daß der FU so starke 
Induktionen hervorrufen könnte, daß der Arduino Fehlfunktionen bekommt, 
da der doch vermutlich interne Schutzschaltungen hat?

von Stefan F. (Gast)


Lesenswert?

> Sollten die Eingänge (Taster, Schalter) irgendwie geschützt werden ?

Ja. Zum Beispiel so:
1
                             Taster
2
         4,7kΩ        100Ω   ____
3
+5V o----[===]----+---[===]---  -----| GND
4
                  |
5
                  |   100nF
6
                  +----||------------|
7
                  |
8
                  |   47kΩ
9
                  +---[===]-----o AVR Eingang

Den 47kΩ Widerstand würde ich einsetzen, wenn die Taster/Schalter über 
Kabel angeschlossen sind - zum Schutz gegen Deppen. Bei Tastern auf der 
Platine würde ihn weg lassen.

von svensson (Gast)


Lesenswert?

Vielen Dank schon einmal.

Ich will aber die internen Pullup-Widerstände nutzen (weniger Bauteile), 
deshalb dachte ich nur an so etwas wie einen R=10k und einen C=100nF.

Tatsächlich sollen die Schalter/Taster über Kabel - ca. 30cm - 
angeschlossen werden.

Das Ganze wird in ein Gehäuse verbaut, so daß die Deppen eigentlich 
wenig Chancen haben sollten. Trotzdem baue ich immer Dioden gegen 
Verpolung ein...

Sollten eigentlich auch die Ausgänge mit einem C=100nF geschützt werden? 
Die steuern lediglich die Basis eines Transistors an, jedoch praktisch 
nur als Schalter (keine Grenzfrequenz notwendig).

von Stefan F. (Gast)


Lesenswert?

svensson schrieb:
> Ich will aber die internen Pullup-Widerstände nutzen

Die sind zu hochohmig.

> Sollten eigentlich auch die Ausgänge mit einem C=100nF geschützt werden?

Sie würden dort nicht schützen, sondern den Ausgang zusätzlich belasten 
und die Funktion als Schalter beeinträchtigen. Also nein.

von svensson (Gast)


Lesenswert?

Stefanus F. schrieb
1
> Ja. Zum Beispiel so:        Taster
2
>                       1kΩ    ____
3
>                   +---[===]---  -----| GND
4
>                   |
5
>                   |   100nF
6
>                   +----||------------|
7
>                   |
8
>                   |   
9
>                   +--------o AVR Eingang

Das wäre also keine Lösung? Abfrage natürlich auf LOW.

Die internen Pullup liegen doch so bei 25k, oder? Da wird dann doch der 
47k nicht mehr benötigt?

von Stefan F. (Gast)


Lesenswert?

> Die internen Pullup liegen doch so bei 25k

Eher 50-70kΩ. Wie gesagt ist das für deine Anforderung zu hochohmig. 
Wenn du alles weg sparen willst, dann frage uns nicht, wie man es 
richtig macht.

Wetting Current ist hier auch so ein Thema, dass nach externen Pull-Up 
Widestände verlangt.

Dass du die 47kΩ weglassen kannst, habe ich Dir bereits geschrieben.

von svensson (Gast)


Lesenswert?

>Wenn du alles weg sparen willst, dann frage uns nicht, wie man es
>richtig macht.

Sorry, weniger Bauteile machen halt weniger Arbeit, deshalb dachte ich. 
(Bei anderen Sachen habe ich das nämlich einfach so gemacht: Taster 
gegen GND.)

>Wetting Current
Was ist denn das? Tatsächlich wird die Schaltung in rauher Umgebung 
benutzt werden, aber "nasser Strom" ist wohl nicht wörtlich gemeint?

von Stefan F. (Gast)


Lesenswert?

svensson schrieb:
>>Wetting Current
> Was ist denn das?

Google danach. Hat was mit der Lebensdauer von Schaltkontakten zu tun. 
Mit Feuchtigkeit hat es tatsächlich nichts zu tun.

von kenny (Gast)


Lesenswert?

svensson schrieb:
> Sorry, weniger Bauteile machen halt weniger Arbeit, deshalb dachte ich.
> (Bei anderen Sachen habe ich das nämlich einfach so gemacht: Taster
> gegen GND.)
>
>>Wetting Current
> Was ist denn das? Tatsächlich wird die Schaltung in rauher Umgebung
> benutzt werden, aber "nasser Strom" ist wohl nicht wörtlich gemeint?

Ebenfalls sorry, aber entweder man macht es richtig, oder man macht es 
nochmal.

Ich kenne da auch so ein Spezi, der meinte Pulldown an Latches (Tri 
State) zu sparen; die Schaltung funktioniert ja fehlerfrei bei Ihm. 
Sobald aber Störungen auftraten, blinkten die angeschlossenen LEDs 
undefiniert herum.

Er wollte einfach nicht wahr haben, das es einen riesen Unterschied gibt 
zwischen einer scheinbar funktionierenden Schaltung und einer stabilen 
funktionierenden Schaltung.

von svensson (Gast)


Lesenswert?

Habe ich gemacht. Da ich Taster nach IP68 verwende, dürfte die 
Frittspannung wohl kein Problem darstellen.

Und ich verwende den "Nano", den ich in eine Rasterplatine einlöte, so 
daß nahezu alle Verbindungen gelötet werden.

von Stefan F. (Gast)


Lesenswert?

Die Wasser-Dichtigkeit hat mit dem Wetting Current gar nichts zu tun.

Wenn du dich auf den internen Pull-Up Widerstand verlässt, gehen viele 
Taster schnell kaputt - ausser welche mit reibenden Kontakten. Die 
brauchen keinen Wetting Current.

von svensson (Gast)


Lesenswert?

Alles klar, Ihr habt mich überzeugt: ich werde der Schaltung die paar 
Widerstände spendieren. Platz ist glücklicherweise kein Problem.

Genau deshalb habe ich doch gefragt und (hoffentlich) etwas dazugelernt.

von svensson (Gast)


Lesenswert?

Du meinst also, der Strom ist durch die internen Pullups so klein, daß 
die Kontakte oxidieren?

So habe ich das noch gar nicht gesehen, zumal in meinem Buch diese 
Schaltung so beschrieben ist (praktisch, weil ohne externe Bauteile).

Da ich auf der Platine noch ein paar einfache Schalter zur Konfiguration 
unterbringen will, sollte/muß ich das wohl auch da beachten.

von Stefan F. (Gast)


Lesenswert?

Wie gesagt: google danach. Es gibt zu dem Thema einige Erklärungen, die 
mehr bringen als diese Raterunde.

von Thomas (kosmos)


Lesenswert?

anstatt zig einzelne Widerstände zu verwenden kann man 
Widerstandsnetzwerke verwenden. Womit man also gleich mehreren Pins 
einen Pullup oder Pulldown verpasst.

https://www.reichelt.de/artimage/resize_150x150/168533

: Bearbeitet durch User
von Peter D. (peda)


Lesenswert?

Tasten und Schalter kann man in Software enstören (entprellen). Meine 
Standardfunktion macht das immer für einen ganzen Port.


svensson schrieb:
> Sollten eigentlich auch die Ausgänge mit einem C=100nF geschützt werden?
> Die steuern lediglich die Basis eines Transistors an

Kondensatoren gehören da auf keinen Fall hin, der Umladestrom kann Dir 
GND verschieben und der MC spielt verrückt.
Du brauchst ja eh Basisvorwiderstände für die Transistoren, das reicht 
als Schutz.

von svensson (Gast)


Lesenswert?

Moin,

mit der "Entstörung" meinte ich nicht das Tastenprellen, das fange ich 
per Software ab, sondern tatsächlich Störungen, die irgendwie 
induktiv(?) vom Frequenzumrichter oder dem gesteuerten Drehstrommotor 
eingekoppelt werden.

Steuerung und FU werden halt unmittelbar nebeneinander angeordnet.

Der Hersteller des FU empfiehlt denn auch geschirmte Leitungen, 
zumindest zwischen FU und Motor.

Ich kann mir auch gar nicht vorstellen, daß es wirklich zu Problemen 
kommt, weil der FU ein Standardbauteil für die Industrie mit jeder Menge 
Prüfzeichen ist. Allerdings möchte ich hier kein Risiko eingehen, schon 
gar nicht für ein paar Widerstände und Kondensatoren für wenige Cent.

Bei den Ausgängen dachte ich halt, wenn der Eingang per Induktion(?) 
gestört werden kann, dann vielleicht auch der Ausgang. Die liegen beim 
µC ja sogar auf dem selben PIN, aber wahrscheinlich wird da intern eine 
komplett andere Beschaltung "verbunden".

von Peter D. (peda)


Lesenswert?

svensson schrieb:
> mit der "Entstörung" meinte ich nicht das Tastenprellen, das fange ich
> per Software ab, sondern tatsächlich Störungen, die irgendwie
> induktiv(?) vom Frequenzumrichter oder dem gesteuerten Drehstrommotor
> eingekoppelt werden.

Entprellen ist ein Tiefpaß in Software, daher fängt es auch Störungen 
ab.
Es ist egal, ob kurze Pegeländerungen durch Prellen oder durch 
Einkopplung entstehen.

von Peter D. (peda)


Lesenswert?

svensson schrieb:
> wenn der Eingang per Induktion(?)
> gestört werden kann

Kann er (fast) nicht, dazu bräuchtest Du parallele Leiterbahnen mit 
kleinen Abständen, quasi Trafos mit je einer Windung.

Störungen erfolgen in der Regel kapazitiv oder über Erdschleifen.
Relais und Optokoppler haben eine Kapazität zwischen beiden Seiten.

von svensson (Gast)


Lesenswert?

>Kann er (fast) nicht

Dann bin ich beruhigt und kann dem Aufbau gelassen entgegensehen.

Herzlichen Dank für die Hilfestellung.

von svensson (Gast)


Lesenswert?

Ich muß doch noch einmal zum Verständnis nachfragen:

> kurze Pegeländerungen durch Prellen oder durch Einkopplung entstehen

Bei der Softwareentprellung könnte es doch aber sein, daß eine 
hochfrequente Störung auch bei der zweiten Abfrage noch/wieder anliegt?

> Relais und Optokoppler haben eine Kapazität zwischen beiden Seiten

Beim Relais leuchtet das noch ein, weil die Kontakte eine Art 
Plattenkondensator bilden, aber beim Optokoppler? Wo kommt denn da die 
Kapazität her?

von Stefan F. (Gast)


Lesenswert?

svensson schrieb:
> Bei der Softwareentprellung könnte es doch aber sein, daß eine
> hochfrequente Störung auch bei der zweiten Abfrage noch/wieder anliegt?

Ja. Dagegen kann man noch häufiger abfragen. Um einzelne Cent in 
Massenproduktion zu sparen, kann es sich lohnen, den Softwareaufwand in 
die Höhe zu treiben.

Ich löte da lieber einfach einen Kondensator ein.

> beim Optokoppler? Wo kommt denn da die Kapazität her?

Zwischen der Eingangsseite und der Ausgangsseite besteht eine Kapazitive 
Verbindung. Wir beide haben auch eine - die ist bloß aufgrund der großen 
Distanz sehr gering.

Bei dem Relais meinte er auch nicht die Kapazität zwischen den 
Kontakten, sondern zwischen Kontakte und Spule. Da liegen ja auch nur 
wenige Millimeter Luft zwischen.

von svensson (Gast)


Lesenswert?

Weil ich Stückzahl 1 benötige, werde ich auch lieber Kondensatoren 
nehmen.

Und ich hatte gedacht, daß man mit Relais und Optokopplern auf der 
sicheren Seite wäre.

> Verbindung. Wir beide haben auch eine

Stimmt, und wir ziehen uns sogar gegenseitig an.

von Stefan F. (Gast)


Lesenswert?

svensson schrieb:
> Und ich hatte gedacht, daß man mit Relais und Optokopplern auf der
> sicheren Seite wäre.

Das dachten sich auch die Asiaten mit ihren doppelt gemoppelt isolierten 
Relais-Platinen, die am Ende trotzdem nicht für 230V geeignet sind und 
schon so manchen zur Verzweiflung gebracht haben, deren µC genau beim 
Umschalten von Relais abschmierten.

von Peter D. (peda)


Lesenswert?

svensson schrieb:
> Bei der Softwareentprellung könnte es doch aber sein, daß eine
> hochfrequente Störung auch bei der zweiten Abfrage noch/wieder anliegt?

Ich habe gute Erfahrungen mit einer 4-fach Abtastung gemacht, d.h. ein 
Pegel muß 4* hintereinander anliegen, damit er übernommen wird.

svensson schrieb:
> Beim Relais leuchtet das noch ein, weil die Kontakte eine Art
> Plattenkondensator bilden, aber beim Optokoppler? Wo kommt denn da die
> Kapazität her?

Jedes Bauteil hat zwischen den Pins eine Kapazität.
Z.B.: HCPL-181: Floating Capacitance 0,6pF typ.

von svensson (Gast)


Lesenswert?

> 4-fach Abtastung

Da wird der Code aber unnötig lang und etwas Rechenzeit benötige ich 
dann vielleicht doch auch noch.

> 0,6pF

Klar haben alle Bauteile eine (geringe) Kapazität. Die Eingänge vom 
ATmega328 aber sicherlich auch (und sei es durch die Z-Dioden).
Mir geht es eher darum, ob ich das berücksichtigen muß oder eher nicht.

von Stefan F. (Gast)


Lesenswert?

svensson schrieb:
> Mir geht es eher darum, ob ich das berücksichtigen muß oder eher nicht.

So 100% sicher weis das niemand vorher. Deswegen sind Geräte, die 
zuverlässig funktionieren müssen, oft doppelt und dreifach abgesichert. 
Da gibt man lieber etwas mehr Geld aus, als einen Ausfall zu reduzieren.

Ich erinnere mich Alarmanlagen und Telefonanlagen aus den 90er Jahren, 
wo jede einzelne Schraubklemme mit Gasableiter, Varistor und Tiefpass 
gesichert war.

Wenn man aber eher auf die Kosten achten muss oder bei Bedarf leicht und 
schnell nachbessern kann, dann würde ich mehr Mut zur Lücke haben.

von Keine Ahnung (Gast)


Lesenswert?

svensson schrieb:
> Da wird der Code aber unnötig lang und etwas Rechenzeit benötige ich
> dann vielleicht doch auch noch.

Der Code von peda ist erfreulich kurz geraten.
Unbedingt danach suchen.

von Andreas S. (Firma: Schweigstill IT) (schweigstill) Benutzerseite


Lesenswert?

svensson schrieb:
> Beim Relais leuchtet das noch ein, weil die Kontakte eine Art
> Plattenkondensator bilden, aber beim Optokoppler? Wo kommt denn da die
> Kapazität her?

Bei manchen hochwertigen Messgeräten werden zwecks Reduktion der 
Koppelkapazitäten keine integrierten Optokoppler eingesetzt, sondern 
separate LED und Fototransistoren/-dioden, die dann entweder per 
Luftstrecke oder Lichtwellenleiter gekoppelt sind.

https://xdevs.com/doc/Fluke/8846A/img/opto.jpg
https://xdevs.com/fix/f8846a/

von Stefan F. (Gast)


Lesenswert?

Keine Ahnung schrieb:
> Der Code von peda ist erfreulich kurz geraten. Unbedingt danach suchen.

Ich finde die Erklärungen dazu interessanter, von denen kann man etwas 
lernen.

von svensson (Gast)


Lesenswert?

Der Code sieht schon gut aus, besonders, wenn man mehrere Tasten 
abfragen möchte.

Ich arbeite derzeit aber einfach so:
1
int rote_Taste() {
2
  int rt=digitalRead(3);
3
  if (rt==LOW) { 
4
    delay(50);
5
    rt=digitalRead(3);
6
      if (rt==LOW) { return 1; }
7
    }  
8
  return 0;
9
}
Dann reicht im Programm
1
if (rote_Taste() ) subroutine();

von Peter D. (peda)


Lesenswert?

svensson schrieb:
> Der Code sieht schon gut aus, besonders, wenn man mehrere Tasten
> abfragen möchte.

Besonders bei mehreren Tasten ist der Code bedenklich. Jede gedrückte 
Taste verzögert die Mainloop permanent um 50ms.
Auch sehe ich da keine Flankenerkennung. Man möchte aber oft, daß eine 
Aktion nur je Tastendruck ausgeführt wird und nicht ständig.
Es hat schon seinen Sinn, daß in der Regel für Entprellen und 
Flankenerkennung ein Timerinterrupt benutzt wird. Damit erzeugt ein 
Drücken keine Delays und es geht keine Flanke verloren.

von svensson (Gast)


Lesenswert?

Eigentlich meinte ich, Dein Code sieht gut aus.

> Besonders bei mehreren Tasten ist der Code bedenklich. Jede gedrückte
> Taste verzögert die Mainloop permanent um 50ms.

Das ist kein Problem, weil ich mit dem Tastendruck in einen anderen 
State wechsele. Das sorgt dann dafür, daß der Code nur ein einziges Mal 
ausgeführt wird. Das funktioniert natürlich nur, wenn die Ausführung der 
Hauptschleife unterbrochen werden darf.

Ich kaufe noch zwei Klammern für meine obige Codezeile
1
if (rote_Taste() )  { subroutine(); }
(Weil ich keinen Button zum Editieren entdecken konnte.)

von svensson (Gast)


Angehängte Dateien:

Lesenswert?

Moin,
hier als Beweis, daß sich die Geduld bei der Antwort all' meiner Fragen 
gelohnt hat, die fertig aufgebaute Steuerung im IP66-Gehäuse.

Die Anordnung der Bauelemente ist alles andere als optimal, aber wenn 
während des Aufbaus sich die Anforderungen ändern und noch nicht einmal 
bekannt ist, von wo die Spannung zugeführt werden soll, dann kommt halt 
so etwas dabei heraus...

von imkeller (Gast)


Lesenswert?

Alles im Plastikkasten !
Wie sieht es mit Erdung aus ?( die kann man nicht per Software schaffen)
Platine in ein geerdetes MetallGehaeuse !
Ist das Kabel zum Motor hin abgeschirmt ?
...

von svensson (Gast)


Lesenswert?

> Alles im Plastikkasten

Jepp, damit es wasserdicht (und vor allem luftdicht) ist.

Tatsächlich ist das Kabel zum Motor abgeschirmt. Allerdings sagt der 
Hersteller des FU, daß eine Abschirmung nicht nötig sei. Das will ich 
ihm 'mal glauben, denn er sollte es wissen.

Der FU ist natürlich fachgerecht an PE angeschlossen, der Drehstrommotor 
auch.

von imkeller (Gast)


Lesenswert?

Schoen warm im Sommer !

von svensson (Gast)


Lesenswert?

Kann mir nicht vorstellen, daß das ein Problem wird. Das Gerät ist auch 
immer nur minutenweise in Betrieb.

Die salzhaltige Luft hingegen wäre ganz sicher ein Problem.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.