beschalten

Wer beim ioProz alle Möglichkeiten nutzen will, braucht noch weitere Eingangs- und Ausgangsschaltungen.

Digitaler Ausgang:

allgemein     LED    Transistortreiber    Relais mit Treiber

Digitaler Eingang:

allgemein    Taster und Schalter    NTC, PTC, LDR    Hallschalter    Gabellichtschranke    Optokoppler

Analoger Ausgang:

allgemein     einfacher 5-Bit DA-Wandler

PWM

Analoger Eingang: (zukünftig)

unbeschaltet    große Signale    kleine Signale    Ströme

 

 

 

 

 

Digitaler Ausgang: allgemein

Um ein bestimmtes Portbit (z.B. PB0) zum Ausgang zu machen, muss in das zugehörige Bit des Data Direction Registers (z.B. DDRB) eine logische 1 geschrieben werden. Danach wird der Ausgang über das zugehörige Bit im Ausgaberegister (z.B. PORTB) an bzw. ausgeschaltet.  Aufgrund ihrer elektrischen Eigenschaften werden diese Ausgänge als "Push-Pull" bezeichnet, weil sie Strom "rausschieben" (push) und "reinziehen" (pull) können.

 

 

nach oben

 

 

Digitaler Ausgang: LED

Typische Leuchtdioden benötigen eine Stromstärke von ca. 20 mA bei einer Spannung von etwa 2 V. Solch eine LED lässt sich ohne Vorwiderstand an einem Ausgangspin als Stromquelle betreiben, weil der Baustein automatisch den Strom und die Spannung passend begrenzt (Bild 1). 

Achtung bei Low-Power-LEDs! Sie kommen oft mit ca. 2 mA aus und müssen über einen Vorwiderstand geschützt werden (Bild 2). Die Größe des Widerstands muss je nach Diodentyp aus den Kenndaten neu berechnet werden.

Einen Vorteil haben alle LEDs: sie lassen sich durch falsche Polung nicht zerstören, sie sperren den Stromfluss und bleiben schlicht dunkel.

Beim Betrieb als Stromsenke (Bild 3) lassen sich auch besonders große bzw. besonders helle LEDs ohne zusätzliche Beschaltung bis 40 mA betreiben.  Beim Programmieren muss man beachten, dass die LED bei logisch 0 leuchtet.

nach oben

 

 

Digitaler Ausgang: Transistortreiber

Wenn der Ausgangsstrom eines Pins nicht ausreicht, um einen elektrischen Verbraucher zu versorgen, kann ein Ausgangstreiber zwischengeschaltet werden. Vorteil: der Digitalausgang  wird nur wenig belastet, weil sein Ausgangsstrom nur den Transistor durchschalten muss. Durch RLast fließt ein um den Stromverstärkungsfaktor (mind. 30000) des Transistors vervielfachter Strom. Nachteil: von den 5 Volt fallen ca. 1,2 Volt am Transistor ab, d.h. es muss sich um einen Verbraucher handeln, der mit ca. 3,8 Volt auskommt. Der Wert von R ist nicht kritisch, z.B. 100 kOhm.

nach oben

 

 

Digitaler Ausgang: Relais mit Treiber

Oft ist es nötig, elektrisch von den übrigen Bauteilen isolierte Verbraucher zu schalten. Ein Relais kann diese Aufgabe lösen, allerdings muss ein Transistortreiber vorgeschaltet werden, um den Strom für den Steuerkreis des Relais zu liefern. Im Moment des Ausschaltens gibt die Magnetspule des Relais die im Magnetfeld gespeicherte Energie frei, die ausreicht, den Transistor zu zerstören. Um dies zu verhindern ist die Freilaufdiode D1 nötig. 

Es gibt genug Relais-Typen, die ab ca. 3,5 Volt im Steuerkreis schalten. Im Lastkreis können beliebige Verbraucher geschaltet werden. 

nach oben

 

Digitaler Eingang: allgemein

Um einen bestimmten I/O-Pin (z.B. PB0) zum Eingang zu machen, muss im zugehörigen Bit des Data Direction  Registers (z.B. DDRB) eine logische 0 stehen. Dies ist auch der Zustand, in dem sich der Baustein direkt nach dem Anschalten befindet.

Der Zustand des Eingangs (logisch 0 oder 1) lässt sich durch Auslesen des entsprechenden Bits im zugehörigen Eingangsregisters (z.B. PINB) feststellen. Dabei ist das Ergebnis bei der Abfrage eines völlig unbeschalteten Eingangs zunächst ungewiss: manchmal gibt es eine logische 0, manchmal eine 1 (man sagt dazu, der Eingang flattert). Um das Flattern zu verhindern, wird oft ein hochohmiger Widerstand nach Plus ("Pull-Up") oder nach Masse ("Pull-Down") geschaltet. Um Hardware zu sparen, ist im Mikrocontroller an jedem Eingang ein interner Pull-Up  vorgesehen, der bei Bedarf per Software eingeschaltet werden kann. Dazu muss das entsprechende Bit im Ausgabe-Register (z.B. PORTB) eingeschaltet werden. Wenn dies geschehen ist, liefert eine Abfrage des Bits bei offenem Eingang immer logisch 1. Der Wert der internen Pull-Ups variiert produktionstechnisch leider zwischen 35 und 120 Kiloohm, so dass sie sich nur in unkritischen Fällen verwenden lassen. 

Ob mit oder ohne Pull-Up ist der Zustand eines Eingangs abhängig von der von außen angelegten Spannung: falls sie unterhalb von 0,3 Volt liegt, liefert eine Abfrage logisch 0; falls sie oberhalb von 0,7 Volt liegt, ergibt sich eine logische 1. Zwischen 0,3 und 0,7 Volt ist das Ergebnis nicht sicher definiert. 

nach oben

 

Digitaler Eingang: Taster und Schalter

Ein Taster oder Schalter wird bei aktiviertem internen Pull-Up von einem Eingang des Mikrocontrollers gegen Masse gelegt. Bei offenem Kontakt liefert eine Abfrage des zugehörigen Portbits wegen des Pull-Ups logisch 1, bei geschlossenem Kontakt wegen dem Kurzschluss gegen Masse logisch 0.

nach oben

 

Digitaler Eingang: NTC, PTC, LDR

NTCs und PTCs sind Temperatursensoren, LDRs sind Lichtsensoren. Ihre gemeinsame Eigenschaft ist, dass sie ihren ohmschen Widerstand ändern in Abhängigkeit der entsprechenden physikalischen Größe. Wenn lediglich eine Unterscheidung warm/kalt bzw. hell/dunkel getroffen werden muss, wird der jeweilige Sensor als R2 in einem Spannungsteiler laut Abbildung rechts eingesetzt. R1 ist entweder der interne Pull-Up oder ein externer Widerstand. Wenn für R1 ein Potentiometer oder Trimmer gewählt wird, ist die Empfindlichkeit einstellbar. Der Spannungsteiler muss so eingestellt werden, dass die Spannung am Porteingang unter 0,3 Volt bzw über 0,7 Volt liegt, damit eine Portabfrage logisch 0 bzw. 1 ergibt.

Die Abbildungen unten zeigen typische Kennlinien von NTCs und PTCs.

NTCs (negative temperature coefficient) sind Heißleiter, d.h. mit der Temperatur nimmt ihr Widerstand ab. PTCs (positive temperature coefficient) sind Kaltleiter. Ihre Kennlinie ist viel steiler, aber nicht monoton, was beim Einsatz über breite Temperaturbereiche beachtet werden muss.

LDR bedeutet lichtabhängiger Widerstand (light dependent resistor). Die Abbildung zeigt eine typische Kennlinie. Auf der x-Achse steht die Beleuchtungsstärke in Lux.

nach oben

 

Digitaler Eingang: Hallschalter

Der Hallsensor H601 reagiert auf eine Magnetfeld-Umpolung, indem er den logischen Zustand an seinem Ausgang ändert. Er schaltet auf logisch 1 beim Einwirken eines hinreichend starken magnetischen Südpols, entsprechend auf 0 beim Nordpol. Der aktuelle Schaltzustand bleibt bestehen bei Wegnahme des magnetischen Feldes. Er kann also das Vorbeifliegen eines Magneten registrieren, wenn beide Pole mit genügender Intensität (ca. 2 mT) aufeinander folgen. Der Sensor kann eingesetzt werden, wenn Positionen, Geschwindigkeiten oder Drehzahlen aufzunehmen sind. Die LED und der Widerstand können weggelassen werden, wenn keine Polaritätsanzeige notwendig ist. Dann muss statt dessen aber der interne Pull-Up im Port aktiviert werden.

nach oben

 

Digitaler Eingang: Gabellichtschranke

Positionen, Drehzahlen und Geschwindigkeiten können leicht mit Hilfe einer Gabellichtschranke erfasst werden. Auf der E-Seite (Emission) strahlt eine Infrarotphotodiode. Auf der D-Seite (Detektor) liegt ein Phototransistor gegenüber. Dessen IR-empfindliche Basis schaltet die Kollektor-Emitter-Strecke durch, solange der Lichtstrahl nicht unterbrochen wird. Im Mikrocontroller muss der interne Pull-Up aktiviert sein. Bei unterbrochenem Strahl zieht er den Eingang auf logisch 1, bei freiem Strahl zieht der Phototransistor den Eingang gegen Masse (logisch 0).

 

 

nach oben

 

Digitaler Eingang: Optokoppler

Ein Optokoppler ist ähnlich aufgebaut wie eine Gabellichtschranke, nur dass LED und  Phototransistor direkt beieinander sitzen und der Lichtweg dazwischen deshalb nicht abgeschattet werden kann. Die Aufgabe eines Optokopplers ist es, die Messschaltung vom Eingangssignal elektrisch zu isolieren. Dies ist oft in komplexen Aufbauten nötig, wo z.B. im industriellen Umfeld die Eingangssignale keinen gemeinsamen Bezugspunkt (Masse/GND) haben. Der in der Beispielschaltung verwendete Typ 4N28  isoliert Eingangs-und Ausgangsseite bis mindestens 500 Volt. R1 begrenzt den Strom durch die LED, die Diode schützt vor verpolten Signalen.

 

 

nach oben

 

Analoger Ausgang: allgemein

Der Controller auf der ioProz-Platine besitzt nur digitale Ausgänge (0V für logisch 0 bzw. 5V für logisch 1) . Um eine analoge Ausgangsgröße (Strom oder Spannung mit mehr als diesen zwei Zuständen) auszugeben, muss man also auf eine äußere Beschaltung zurückgreifen, in der ein binärer Zahlencode in eine dazu analoge (das heißt hier: proportionale) Größe umgewandelt wird (DAW oder DAC für Digital-Analog-Wandler bzw. Digital-Analog-Converter). Es gibt eine Vielzahl hochintegrierter ICs, die diese Aufgabe erledigen. Man kann aber mit wenigen Bauteilen selber eine kleine Wandlerschaltung aufbauen.

nach oben

 

Einfacher 5-Bit DA-Wandler

In der abgebildeten Schaltung werden über die Ausgangsbits von Port C Ströme durch die entsprechenden Widerstände an- bzw. ausgeschaltet. Am Summationspunkt kann der Strom gegen Masse gemessen werden. Sein Wert ist proportional zu der Zahl, die an Port D ausgegeben wurde. Dabei ist es wichtig, dass die Widerstände so gewählt werden, dass sich die Ströme im Vergleich zum nächst höheren Widerstand jeweils verdoppeln. Auf Grund der Widerstandsreihen ist dies mit Festwiderständen nicht ohne weiteres zu erreichen. Der abgebildete Wandler ist also alles andere als perfekt.

nach oben