Hier handelt es sich um eine Zusatzplatine, die im Bereich Überwachung und Automation in einem Spannungsbereich von 0 - 24 Volt eingesetzt werden kann. Das ist besonders interessant im Bereich Homematic oder im Bereich der sensorischen Überwachung von naturwissenschaftlichen Projekten.
Die vom Automation HAT belegten GPIO zeigt Abb. 2.
Bestückt ist das Automation HAT mit:
Uein > 3 V entspricht HIGH oder 1, Uein < 1 V entspricht LOW oder 0. Das Verhalten bei Eingangs-spannungswerten zwischen 1V und 3V bleibt undefiniert. Die Eingänge sind mit einem 20 kOhm Widerstand und einer 3v3 Zenerdiode geschützt; der Strom wird auf ca. 1mA begrenzt. Die Eingänge werden in Python aufgerufen über:
state = automationhat.input.one.read() oder
state = automationhat.input[n].read() mit n = 0, 1 oder 2
Die indizierte Bezeichnung über [0], [1] und [2] ist etwas verwirrend, da sie im Widerspruch zum Aufdruck auf dem AUTOMATION HAT steht; also aufpassen !!!
Die drei Ausgänge sind als Senke für maximal 24V/ 500mA ausgelegt. Sie müssen nach GND geschaltet werden; ihr Verhalten ist vergleichbar mit einem Schalter, der auf GND gezogen wird. Die Ausgänge werden über einen ULN2003A Darlington Array Treiber versorgt. Ausgänge werden in Python aufgerufen über:
automationhat.output.one.on() oder
automationhat.output[n].on() bzw. off() mit n = 0, 1 oder 2
Die drei Relais lassen sich sowohl als NO (normally open) als auch als NC (normally closed) betreiben. Damit lässt sich eine Last schalten oder es kann zwischen zwei Lasten hin- und hergeschaltet werden. Das Relais sollte zwischen der Spannungsversorgung (Vdd) und der Last positioniert werden. Relais lassen sich in Python aufrufen über:
automationhat.relay.one.on() bzw.
automationhat.relay.one.off() oder
automationhat.relay.toggle() oder
automationhat.relay.write(1) (1 -> ON, 0 -> OFF)
Drei der vier analogen Eingänge sind für Spannungswerte bis 24 Volt ausgelegt. Die Eingänge sind mit einem Spannungsteiler 120k und 820k versehen, über den maximal 25,8V auf maximal 3,3v heruntergeteilt und für den ADC bereitgestellt werden können. Ein analoger Eingang wird in Python aufgerufen über:
wert = automationhat.analog.one.read() oder
wert = automationhat.analog[n],read(), n = 0, 1 oder 2
Automation HAT verfügt über drei vom Nutzer steuerbare LEDs: POWER, COMMS und WARN. Der Anwender kann diese LEDs ein- bzw. ausschalten oder ihnen einen Helligkeitswert zuordnen.
Über Python werden die LEDs aufgerufen über:
automationhat.light.comms.on() oder off(), toggle(), write()
automationhat.light.warn.on() oder off(), toggle(), write()
automationhat.light.power.on() oder off(), toggle(), write()
LEDs werden beim Aufruf von Eingängen, Ausgängen und Analogbefehlen automatisch gesetzt. Sie lassen sich aber auch manuell setzen; dazu muss der automatische Vorgang abgeschaltet werden über:
automationhat.analog.one.auto_light(False)
Eine LED kann dann über
automationhat.analog.one.light.on() bzw.
automationhat.analog.one.light.off()
geschaltet werden.
Mit Netzspannung (230 Volt) darf das Board auf keinen Fall betrieben werden oder in Berührung kommen.
Bevor man das Board sinnvoll einsetzen kann, muss die Treibersoftware für den HAT installiert werden.
Der Entwickler des Automation-HAT, die Fa. Pimoroni, hat eine Treibersoftware entwickelt, die über das Internet kostenfrei bezogen werden kann. Gib im Terminalfenster die folgende Zeile ein
curl https://get.pimoroni.com/automationhat | bash
Bestätige die Frage
jeweils mit "y".
I2C wird, falls es vorher noch nicht aktiv geschaltet war, während des Installationsprozesses aktiv geschaltet. Um die Veränderungen wirksam werden zu lassen, sollte der RPi anschließend neu gestartet werden.
Die heruntergeladenen fünf Beispieldateien befinden sich im Ordner
/home/pi/Pimoroni/automationhat/examples/
Die Skripte lassen sich wie folgt über die Console oder das Monitorfenster aufrufen:
python ~/Pimoroni/automationhat/examples/<dateiname.py>
und mit Strg-C jeweils beenden.
Um einen Eindruck zu bekommen, wie es aussieht, wenn man die LEDs auf dem Board einschaltet, sollte man das Skript lights.py aufrufen.
Es schaltet die neun weißen Status-LEDs an ADC, OUTPUT und INPUT an, sowie die drei farbigen LEDs POWER(grün), COMMS(blau) und WARN(rot).
In dieser Übung liegt an jedem der drei Ausgänge eine LED-Schaltung. Die drei LEDs werden nacheinander ein- bzw. ausgeschaltet.
Übung 1 - Ausgänge beschalten | |
Material |
|
Aufgaben |
|
Schaltskizze
Das Programm automation_3LEDs.py
In dieser Übung wird der Mittelabgriff eines Potenziometers an ADC-Kanal 1 des Automation HAT gelegt und die abgegriffene Spannung im Terminalfenster angezeigt.
Übung 2 - Spannungen messen | |
Material |
|
Aufgaben |
|
Schaltskizze
Das Programm Automation_Poti1.py
Terminalausgabe der Messwerte
Wie zu erwarten, werden Spannungswerte zwischen maximal ca. 2,5 Volt und minimal 0 Volt angezeigt. Das ist zu erwarten, da der Spannungsteiler aus Widerstand (10 kOhm) und Potenziometer (10 kOhm) den Punkt P auf ca. 2,5 V zieht. Befindet sich der Mittelabgriff - bildlich gesprochen - ganz oben (s. Abb. 4), dann werden ca. 2,5 Volt gemessen. In der anderen Extremposition fällt die Versorgungsspannung über beiden Widerständen komplett ab und der Mittelabgriff - diesmal in der unteren Position - zeigt nur noch 0 Volt an. In jeder anderen Drehposition werden Zwischenwerte (0 - 2,5 V) angezeigt.
In dieser Übung wird der Mittelabgriff eines Potenziometers (leicht veränderter Schaltungsaufbau aus Übung 2) an den Eingang INPUT 1 des Automation HAT gelegt. Eine zweite Schaltung besteht aus einer einfachen LED-Schaltung. Sobald die am Mittelabgriff des Potenziometers abgenommene Spannung unter einer bestimmten Wert fällt, soll die LED angehen, steigt sie wieder, soll sie ausgehen.
Übung 3 - Eingänge abfragen | |
Material |
|
Aufgaben |
|
Schaltskizze
Das Programm Automation_Poti_LED_input.py
In dieser Übung wird - wie in Übung 3 - der Mittelabgriff eines Potenziometers (Schaltungsaufbau aus Übung 2) an den Eingang INPUT 1 des Automation HAT gelegt. Eine zweite Schaltung besteht aus einer einfachen LED-Schaltung. Sobald die am Mittelabgriff des Potenziometers abgenommene Spannung unter einer bestimmten Wert fällt, soll die LED über ein Relais eingeschaltet werden, steigt sie wieder, wird sie ausgeschaltet.
Übung 4 - Relais | |
Material |
|
Aufgaben |
|
Schaltskizze
Versuchsaufbau
Das Programm Automation_PotiLEDRelais.py
Die indizierte Bezeichnung über [0], [1] und [2] ist etwas verwirrend, da sie im Widerspruch zum Aufdruck auf dem AUTOMATION HAT steht.
Ich verwende deshalb in den Programmen lieber die Bezeichnung des Aufdrucks: input.one.. bzw. relay.one..
Wie arbeitet das Programm?
Über den Mittelabgriff des Potenziometers wird die am Eingang des AUTOMATION HAT anliegende Spannung verändert. Sie variiert je nach Stellung des Mittelabgriffs zwischen ca. 0V und der über dem Potenziometer anliegenden Betriebsspannung. Ist sie < 1V, liegt am Eingang eine "0", ist sie über 3V liegt eine "1" an.
In der Endlosschleife while True: werden diese beiden Zustände abgefragt: liegt am Eingang 1 eine "1" an, wird das Relais so geschaltet, dass die LED angeht; liegt eine "0" an, geht sie aus.