Kann man natürlich machen, aber ich möchte nicht bei jeder Abfrage der Taste daran denken müssen, dass ich das Ergebnis invertieren muss. Vor allem beim späteren Überfliegen eines Programms finde ich es sehr angenehm, wenn es "natürlich" lesbar ist, also übersetzt:
"FALLS (PIN_ABFRAGE(TASTE) == GEDRUECKT)"
Von
#define FALLS if
sind alle anderen längst wieder abgekommen, aber
#define GEDRUECKT LOW
#define OFFEN HIGH
kann man schon mal machen.
if (!digitalRead(PIN) ) oder
if (digitalRead(PIN) == GEDRUECKT)
ist optimierungstechnisch egal, im Vergleich zur Verwendung der Komfort-Arduino-Funktion digitalRead überhaupt. Da empfiehlt es sich schon, die am besten lesbare Variante verwenden
Pull - up kam aus den "urzeiten" der Digitallogik, als man für einen IO Pin gleichzeitig Ein- als auch Ausgang benutzt hat.
Da wurde an den IO Pin eine LED gegen Masse geschaltet. Der erforderliche Widerstand war der Pull-Up.
Wurde noch ein Taster gebraucht, so wurde dieser parallel zur LED geschaltet (Normally open).
Damit konnte auf einfache Weise der Pin von Ausgang auf Eingang umgeschaltet werden, ohne die nachfolgende Logik großartig an die Gegebenheiten anzupassen. (und ganz nebenbei wurden so auch einige Tasten durch die LED beleuchtet, wenn diese als Eingang aktiv geschaltet wurden == Pull-up ON)
Naja...gregorss...du mischt da das eine oder andere und kommst daher durcheinander
Zum einen: die USA hatte lange Zeit den Plus der Batterie auf dem Auto, wir Europäer den Minus. Schon hier hat man Unterschiede die dann bei globalen Bauteilen immer Abweichungen zum Gewohnten ergeben.
Dann lernt der Elektriker das man immer PLUS schaltet bzw L. Niemals N oder Minus. Der Grund ist einfach, wenn am Kabel eine Beschädigung auftritt ist der Taster N-Schaltend unter umständen auf PE, also N mit der geschalteten. Oder brückt den N auf PE im Schalterkabel. So löst keine Sicherung aus obwohl das Kabel beschädigt ist. L am Kabel und L geschaltet und man hat über PE Kurzschluss und keine Gefahr. So jedenfalls die Theorie bzw Vorgaben. In wie weit das in der Praxis dann auch genau so funktioniert oder zusätzliche Schutzmassnahmen braucht ist ein anderes Thema.
Aber nun fängt es an lustig zu werden. Die Autobauer haben plötzlich Minus geschaltet. Deren 6V bzw später 12V sind so klein das keine Gefahr ausgeht. Aber man spart am Schalter einen Draht da alles auf Minus liegt am Auto. zB Öldruckschalter oder Rückwärtsgangschalter, Handbremsschalter...alles gegen Masse und nur ein Draht.
Und dann kam TTL-Technik, die war so anfang der 60er entstanden und definierte offene Eingänge als High.
Hier gut zu erkennen, das wenn kein Eingang beschaltet wird folglich der Ausgang HIGH wird. Das führte zum Pulldown Widerstand. So hat man definiert auf LOW gezogen und der Schalter Plus-schaltend auf High. Aber auch das entwickelt sich weiter. Wichtig dabei, man muss zueinander kompatibel bleiben. Ein Baustein der Lowaktiv ist kann ich nicht von plusschaltenden Transistoren treiben. Man muss Gegentaktausgänge haben, was aber pro Ausgang 2 Transistoren nötig macht statt 1. Nach und nach ist man zu Lowaktiv gewechselt. Ausser bei SPS die sind weiter HIGH-Aktiv. Aber hauptsächlich deswegen, weil sie Leistung schalten, zb Ventile und daher eine unter umständene geerdete Spannung benutzen. Den im Steuerungsbau erdet man typischerweise die 24V. So eine große Anlage liefert gerne mal 100A am 24V Kreis und das kann durchaus für nette Schmorbrände sorgen. Also Sicherungen davor. Nur lösen die nicht aus, wenn nicht ein Pol geerdet ist.
So hat man heute (und ich habe damit öfters zu kämpfen) in der Elektronik Minus-schaltend und Lowaktiv, während man im konventionellen Steuerungsbau High-Aktiv ist und Plus schaltend.
Schaut man sich die typischen Sensorhersteller an, Turck, IFM, Baumer, sind alle Sensoren PNP oder NPN erhältlich. Weil man eben je nach Steuerungsauslegung und Controller Low oder High Aktiv ist. Die ursprünglich mal relativ feste Zuordnung ist schon lange aufgebrochen und heute muss man eben die Anleitung lesen und nicht dem Gewöhnungstrieb folgen. Wenn zb ein KFZ-Elektriker zur Steuerungselektronik stösst wird er selten sich umgewöhnen müssen. Für ihn ist eher die Hauselektrik komisch verdrahtet.
Naja...soviel zur Geschichte des Stromes. Dinge wachsen eben und entwickeln sich und Definitionen passen sich an wo es nötig wird. Das führt immer zu Übergangseffekten. Wo Dinge sich ändern ohne das man weis warum oder man aufgrund seiner Gewohnheiten daneben greift.
chefin:
Naja...gregorss...du mischt da das eine oder andere und kommst daher durcheinander
Ja, wenn etwas nicht so richtig und endgültig in mein Hirn will, liegt das meistens daran, dass noch etwas unklar oder gar „so richtig falsch“ ist.
Was ich über Transistoren weiß, weiß ich erst, seit ich vor drei oder vier Jahren ein paar Sachen auf dem Schirm meines Oszis gesehen habe und seit mir klar ist, dass manche Sachen nicht wörtlich sondern als Interpretation zu verstehen sind (die Frage, wie ein Bauteil als Verstärker wirken kann, ohne dass von irgendwo eine höhere Spannung oder Leistung zugeführt wird, hat immer verhindert, dass diverses Transistorzeug in mein Hirn wollte).
chefin:
Naja...soviel zur Geschichte des Stromes. Dinge wachsen eben und entwickeln sich und Definitionen passen sich an wo es nötig wird. Das führt immer zu Übergangseffekten. Wo Dinge sich ändern ohne das man weis warum oder man aufgrund seiner Gewohnheiten daneben greift.
Danke für die ausführliche Info!
Gruß
Gregor