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?
> 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.
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).
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.
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?
> 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.
>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?
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.
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.
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.
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.
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.
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.
Wie gesagt: google danach. Es gibt zu dem Thema einige Erklärungen, die mehr bringen als diese Raterunde.
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
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.
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".
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.
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.
>Kann er (fast) nicht
Dann bin ich beruhigt und kann dem Aufbau gelassen entgegensehen.
Herzlichen Dank für die Hilfestellung.
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?
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.
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.
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.
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.
> 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.
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.
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.
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/
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.
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(); |
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.
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.)
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...
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 ? ...
> 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.
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.