Upload
vunguyet
View
214
Download
0
Embed Size (px)
Citation preview
Technische Universitat Berlin
Projekt Elektronik SoSe 2009
Projekt: Habitatsteuerung
Abschlussbericht
Teilnehmer:Louai Barake, Fabian Cordes,
Michael Doring, Mohamed Goni,Bilal Khaled, Miruna Raceala,
Felix Schmidt, Sebastian Tiesler
Betreuer:Janis Dobler
17. Juli 2009
Inhaltsverzeichnis
I Projektubersicht 1
1 allgemeine Projektbeschreibung 11.1 Einleitung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11.2 Projektidee . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1
2 angestrebte Funktionen 3
3 Projektstruktur 4
4 Arbeits- und Zeitplan 5
II Komponenten 6
5 MCU - Master Control Unit 65.1 Hardware . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
5.1.1 SD/MMC Kartenslot . . . . . . . . . . . . . . . . . . . . . . . . . . . 65.1.2 LC Display und Port . . . . . . . . . . . . . . . . . . . . . . . . . . . 75.1.3 Bedienpanel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 85.1.4 RS232 Schnittstelle . . . . . . . . . . . . . . . . . . . . . . . . . . . . 85.1.5 ISP Programmierport . . . . . . . . . . . . . . . . . . . . . . . . . . . 85.1.6 Externer Quartzresonator . . . . . . . . . . . . . . . . . . . . . . . . . 95.1.7 RS485 Schnittstelle . . . . . . . . . . . . . . . . . . . . . . . . . . . . 95.1.8 GPIO (General purpose I/O) Schnittstelle . . . . . . . . . . . . . . . . 95.1.9 DCF-77 Modul . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
5.2 Firmware . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 135.2.1 Scheduler . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 135.2.2 Fenster und Nachrichtencodes . . . . . . . . . . . . . . . . . . . . . . 145.2.3 Verwaltung der Event-Handler . . . . . . . . . . . . . . . . . . . . . . 155.2.4 Zeichensystem . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 175.2.5 Fensterspezifische Zeichenfunktionen . . . . . . . . . . . . . . . . . . 175.2.6 Eingabe . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
5.3 Regelung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 185.4 Logging . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
5.4.1 Steuerlogik . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 195.4.2 Regler . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
6 Bussystem 206.1 Busspezifikation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 206.2 Beschreibung des Grundmoduls . . . . . . . . . . . . . . . . . . . . . . . . . 206.3 Software fur das Grundmodul . . . . . . . . . . . . . . . . . . . . . . . . . . 22
6.3.1 Grundstruktur . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 226.3.2 Beschreibung der Paketstruktur . . . . . . . . . . . . . . . . . . . . . 236.3.3 Beschreibung der Enumeration . . . . . . . . . . . . . . . . . . . . . . 236.3.4 Ablauf der Kommunikation . . . . . . . . . . . . . . . . . . . . . . . 246.3.5 Softwareendbetrachtung . . . . . . . . . . . . . . . . . . . . . . . . . 24
7 Sensoren 267.1 Temperaturmessung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26
7.1.1 Einleitung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 267.1.2 Schaltungsbeschreibung . . . . . . . . . . . . . . . . . . . . . . . . . 27
7.2 Luftfeuchtemessung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 317.3 Bodenfeuchtemessung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34
7.3.1 Schaltungsentwurf . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38
8 Aktuatoren 418.1 Lichtsteuerung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 418.2 Heiz-/Kuhlsteuerung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50
8.2.1 Einleitung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 508.2.2 Aufbau und Struktur des Moduls (Hardware) . . . . . . . . . . . . . . 508.2.3 Regelung (Software) . . . . . . . . . . . . . . . . . . . . . . . . . . . 59
8.3 Futterklappe . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 638.3.1 Einleitung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 638.3.2 Beschreibung der Schaltung . . . . . . . . . . . . . . . . . . . . . . . 63
III Anhang I
A Entwurf der Reglerstrecke I
B Schaltplane/Layouts XIB.1 Master Control Unit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . XIB.2 Busteilnehmergrundmodul . . . . . . . . . . . . . . . . . . . . . . . . . . . . XIIIB.3 Busteilnehmer Piggyback Board . . . . . . . . . . . . . . . . . . . . . . . . . XVB.4 Temperatursensor . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . XVIB.5 Luftfeuchtemessung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . XVIIIB.6 Bodenfeuchtesensor . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . XXB.7 Lichtsteuerung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . XXIB.8 Heiz-/Kuhlelement . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . XXIIIB.9 Futterklappe . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . XXV
C Abbildungsverzeichnis XXVII
D Referenzen XXIX
1 ALLGEMEINE PROJEKTBESCHREIBUNG
Teil IProjektubersicht1 allgemeine Projektbeschreibung
1.1 Einleitung
Die Gruppe ele21 hat sich zur Aufgabe gemacht, eine Terrarien- bzw. Habitatsteuerung zu ent-wickeln. Diese Begriffe werden im Folgenden synonym verwendet.Doch was ist das uberhaupt? Wikipedia, als erste Anlaufstelle, gibt dazu folgende Auskunft:”Terrarien (v. lat. terra: ”Land, Erde”) sind Behalter und Anlagen, die Terrarianer zur Haltungverschiedenster Tiere und Pflanzen betreiben. [...] Oft wird der Lebensraum der gepflegten Tiereoder Pflanzen im Terrarium auf kleinerem Raum nachgebildet. Der Terrarianer bemuht sich umangepasste Klimatisierung: Temperatur, Luftfeuchtigkeit, Wasserwerte und Beleuchtung wer-den gesteuert, inklusive ihrer jahreszeitlichen und taglichen Schwankungen.” Wikipedia vom22.04.09 17.21Uhr)Eine Habitatsteuerung dient demnach im Allgemeinen dazu diese Klimaanpassung automatischvorzunehmen, um fur die im Terrarium befindlichen Lebewesen die in ihrem ursprunglichenLebensraum herrschenden Umweltfaktoren zu simulieren. Der Terrarianer braucht sich keineGedanken mehr daruber zu machen, da dies zentral uber eine automatische Steuerung geschehensoll.Weiterhin ist hierbei nicht nur die Steuerung der Klimadaten interessant. Diese sollten nachMoglichkeit auch gespeichert und spater zu Auswertung wiedergegeben werden konnen.Im Extremfall konnte man sich das Terrarium auch als ”Klimazelle” vorstellen, in dem aufKnopfdruck ein vollig anderer Lebensraum erzeugt wird, wie z.B. der Ubergang vom immer-feuchten Regenwald in ein Sahara-ahnliches Wustenklima.
1.2 Projektidee
Die Grundidee besteht darin ein modulares und vielseitiges Steuerungssystem zu entwickeln, dasdem Anwender spater eine einfache Anpassung an seine Bedurfnisse ermoglicht. Desweiteren istes auch denkbar diese Steuerung beispielsweise fur die Aufzucht von Pflanzen zu modifizierenoder mit dem erlangten Wissen ein eigenes Hausbussystem aufzubauen.In Abbildung 1 ist eine Designstudie zur Illustration zu sehen und in Abbildung 2 ein moglicherBeispielaufbau. Es handelt sich hierbei um ein Terrarium fur einen Wustenbewohner.Im Folgenden sollen kurz die enthaltenen Komponenten vorgestellt werden, um dem Leser einenschnellen Uberblick zu ermoglichen, naheres ist den entsprechenden Teilen in diesem Berichtzu finden. Oben in der Mitte des Bildes sieht man verschiedene Lampen. Die Gelbe stellt exem-plarisch die Grundbeleuchtung dar, die Blaue zusatzlich benotigtes UV-Licht. Rechts danebenist eine Vorrichtung zum Heizen und/oder Kuhlen vorgesehen, um eine dem Lebensraum ent-sprechende Temperatur zu erzeugen. Links oben ist ein Spruhsystem abgebildet, welches zur
1
1.2 Projektidee 1 ALLGEMEINE PROJEKTBESCHREIBUNG
Abbildung 1: Designstudie
Abbildung 2: Beispielaufbau
2
2 ANGESTREBTE FUNKTIONEN
Feuchtigkeitsregulierung zum Einsatz kommt. Das Thermometer und der Wassertropfen stehenexemplarisch fur die Temperatur- und Feuchtigkeitssensoren, welche unterschiedlich fur die Luftund den Boden vorhanden sein sollten.Das Strukturbild in Abbildung 3 zeigt den technischen Aufbau: Die MCU (Master Control Unit),welche auch in der Designstudie gut zu erkennen ist, ist die allgemeine Steuereinheit. Hier laufenalle Informationen zusammen, werden analysiert und es wird entsprechend reagiert. Sie enthaltdie Ein- und Ausgabekomponenten in Form eines graphischen Displays, Drehencodern sowiedie Speicherung auf einer SD/MMC-Card. Als Zeitgeber ist ein DCF-77 Modul vorhanden. Die-se Einheit ist uber einen Bus auf RS485-Basis mit den Sensoren und Aktuatoren verbunden. DerBus soll in der Lage sein mit IDs die einzelnen Teilnehmer zu identifizieren. Es gibt Temperatur-und zwei verschiedene Arten von Feuchtesensoren. Als Aktuatoren sind die Lichtsteuerung vonverschiedenen Lampenarten, eine Heiz-/Kuhlsteuerung und eine Spruhanlage vorgesehen. DasBesondere eines Bussystems ist die Moglichkeit es nahezu beliebig zu erweitern. So kann imPrinzip eine beliebige Anzahl von Sensoren und Aktuatoren verwendet werden. Durch den mo-dularen Aufbau der Busteilnehmer sind auch Erweiterungen und neue Module sehr leicht zurealisieren.
!"#"$%&'#()*
+,- +"- ,)(./0&
1-"/%2
-"344 516
71898:#1;
6$<&%
;#1
1&(=$%&(
> ?&@A&%/*B%'C6?DEEF
> G&HH).I&)*:'#J
> 3&BKLM.I&)*
> 3NHH=*/(2
> OOO
PI*B/*$%&(
> G&)QB(.:RNLHB(.
> +)KL*
> +NS&%
> 5@ABH=.&0&%'C7&H/)=OOOF
> OOO
;B=*&)H(&L@&%'5-
Abbildung 3: Blockbild des Steuerungssystems
2 angestrebte Funktionen
GrundfunktionenGrundfunktionen sind Funktionen die das Mindestziel des Projektes darstellen. Unsere Gruppehat sich hierbei auf folgende Grundfunktionen verstandigt:
• Sonnenauf-/untergangssimulation tagesabhangig
• Uberwachung, Steuerung und Speicherung von Temperatur, Luftfeuchtigkeit
• vorgefertigte ”Klimaumgebungen”, mit der Moglichkeit der nachtraglichen Modifizierung
3
3 PROJEKTSTRUKTUR
• Sensoren: Luft- und Bodentemperatur, Luft- und Bodenfeuchtigkeit
• Aktuatoren: Heizen/Kuhlen, Lichtdimmung, Spruhsystem
• Master-/Slave-Bussystem
• modularer Aufbau
• Master zur Steuerung des gesamten Systems, enthalt LC-Display, Eingabemoglichkeit,SD-Speicher
• Slaves sind samtliche Sensoren und Aktuatoren
Zusatzliche FunktionenZusatzfunktionen sind Funktionen, welche nicht unbedingt notwendig sind um das erstellteGerat sinnvoll zu betreiben. Diese Funktionen sind demnach als variabel anzusehen und wer-den unter Beachtung des Zeit- bzw. Budgetlimits realisiert. Unsere Gruppe hat hierbei folgende,in der Prioritat absteigend aufgezahlte, Funktionen beschlossen:
• PCinterface uber RS232 und/oder USB
• weitere Aktuatoren: Futterklappe
• weitere Sensoren: UV-Lichtsensor
• Bluetooth-Schnittstelle zur Datenkommunikation
• GSM-Modul zur Nutzerbenachrichtigung
• Ethernetanschluß uber xport
• Regelung von mehr als einem Aktuator durch verschiedene Sensoren (abhangige Regel-kreise)
3 Projektstruktur
Da das Projekt sehr kleingliedrig ist wurden die Aufgaben ebenso kleingliedrig verteilt. JederTeilnehmer der Projektgruppe suchte sich einen Busteilnehmer heraus und bearbeitete diesennach seinen Vorstellungen bzw. nach Gruppendiskussionen und Anforderungen. Einzige Aus-nahme bildet die MCU, sie wurde in großen Teilen von Fabian bearbeitet wobei ihn bei einzel-nen Punkten unterschiedliche Gruppenmitglieder zur Hand gingen. Im Bericht ist daher jederAbschnitt durch den Namen des bearbeitenden Studenten gekennzeichnet.
4
4 ARBEITS- UND ZEITPLAN
4 Arbeits- und Zeitplan
Der Zeitplan folgt den Vorgaben des Merkblatts und wurde versucht vollstandig einzuhalten.5. Termin 19.05.09 Wandplakat, Zwischenbericht6. Termin 26.05.09 Platinenlayouts12. Termin 07.07.09 Prasentationsfolien, HomepageAbschlussbericht: 13.07.09Prasentationstermin: 15.07.09
5
5 MCU - MASTER CONTROL UNIT
Teil IIKomponenten5 MCU - Master Control Unit
Fabian CordesDie Master-Einheit (MCU) dient zur Steuerung der der Busteilnehmer, und gleichzeitig zur An-zeige der Steuerdaten auf einem angeschlossenen LCD-Display. Die verschiedenen Komponen-ten werden im folgenden Erlautert.
5.1 Hardware
Bei den Layouts wurde darauf geachtet, die Massen der Peripheriegerate von der (haupt)-Geratemassezu trennen und nur stellenweise miteinander zu verbinden. Dies hat den Vorteil, dass Interferen-zen zwischen zwei Peripheriegeraten unterdruckt werden.Weiterhin wurde darauf Wert gelegt, eine moglichst geringe Zahl von Vias (Durchkontaktie-rungen) zu verwenden, da das Loten ebensolcher relativ viel Zeit in Anspruch nimmt. Nahezualle eingesetzten Komponenten sind SMD-Bauteile, da diese einerseits wesentlich kleiner sind,andererseits erspart dies sehr, sehr viele Bohrlocher.Der Hauptprozessor muss mit einer Vielzahl von Peripheriegeraten kommunizieren. Es befindensich die folgenden Komponenten auf dem MCU-Board:
5.1.1 SD/MMC Kartenslot
Hier kann eine handelsubliche SD-Karte eingesetzt werden, auf der das Gerat Logging-Informationenaufzeichnet. Eine solche Karte wird mit 3.3V betrieben, was es erforderlich macht, eine dement-sprechende Versorgungsspannung bereitzustellen und die Signalpegel des AVRs anzupassen.Fur die Erzeugung der 3.3V Versorgungsspannung ist ein Spannungsregler vorgesehen, der vonder +5V-Versorgung gespeist wird. Die Beschaltung entspricht dem Datenblatt [20]. Bei einemBetrieb an einem PC-Netzteil wird dieser redundant und sollte nicht bestuckt werden.Im zweiten Fall muss man unterscheiden zwischen der Umsetzung von 5V auf 3.3V, die sichauf triviale Weise durch einen Spannungsteiler oder - besser, weil stabiler - mithilfe Z-Dioden(dimensioniert auf einen Querstrom von ca. 2 mA) realisieren lasst, und einer Umsetzung von3.3V auf 5V. Fur diese verwendet die Schaltung einen 74HCT125D [10]. Dies ist ein Bustreiber,der mit +5V versorgt wird, der aber laut diverser Quellen im Internet geeignet ist, die 3.3V-Pegelkorrekt zu identifizieren. Eine andere Moglichkeit ist, die Eingange des AVR mit Widerstandenauf 5V zu legen, und dann uber eine Diode die 3.3V-Seite gegen Masse ziehen lassen. Diesware offensichtlich einfacher als die Verwendung eines integrierten Schaltkreises (keine Ver-sorgungsspannung notig, kleiner, ...). Nachteilig daran ist allerdings, dass so ein permanenterStromfluss unvermeidbar ist. Deshalb wird in der Schaltung trotzdem der 74*125 eingesetzt. Eswird die Hardware-SPI-Schnittstelle des AVRs genutzt, wodurch ein Konflikt am SCK-Pin ent-steht. Dieser wird durch einen 4066D [9] aufgelost. Dies ist ein Schalter, der gesteuert durch die
6
5.1 Hardware 5 MCU - MASTER CONTROL UNIT
Resetleitung SCK entweder mit der SD-Karte oder mit dem ISP-Stecker verbindet. Die Schaltersind aktiv bei HI-Pegeln an den Control-Eingangen (C). Es wird durch den 4049D [8] eine inver-tierte Version des Reset-Signals gebildet und zum durchschalten des jeweils anderen Schaltersverwendet. Da die Resetleitung wahrend des Programmiervorganges auf LOW gezogen wird,wird automatisch zwischen Programmiermodus und Zugriff auf die SD-Karte umgeschaltet. ImProgrammiermodus erhalt die SD-Karte keine Signale an SCK.
5.1.2 LC Display und Port
Dieser besteht im wesentlichen aus einem Stecker fur ein 20-Pol. Flachbandkabel und einemSchaltregler zur Erzeugung der Kontrastspannung (+15V). Der Schaltregler wurde direkt ausder Dokumentation des Bausatzes fur eine Anschlussplatine des Displays von Pollin (Bezugs-quelle siehe Schaltplan) ubernommen, da die Bauteile hierfur bereits vorhanden sind. Das Dis-play an sich ist ein Sharp M078CKA [13] mit einer Auflosung von 240x64 Pixeln. Der Zugriffauf das Display erfolgt uber einen IC vom Typ LH155 [12]. Der Displaycontroller bietet einenintegrierten Grafikpuffer, in den das darzustellende Bild geschrieben wird. Das dazu verwendeteProtokoll ist im Datenblatt des LH155 ausfuhrlich dokumentiert. Da die Datenleitungen (D0..7)Bidirektional arbeiten, d.h. beide Seiten als Ausgang fungieren konnen, sind Schutzwiderstande(R14-21) vorgesehen. Es konnte sonst geschehen, dass durch einen Softwarefehler Displaycon-troller oder AVR dauerhauft beschadigt werden. Es ist moglich, dass durch diese Widerstande einFehlverhalten der Schaltung bedingt wird, weil die parasitaren Kapazitaten innerhalb des Dis-playcontrollers nicht schnell genug umgeladen werden. Wahrend der Entwicklung sollten dieSignaltimings deshalb konservativ angesetzt werden, im Release-Betrieb die Schutzwiderstandedurch Lotbrucken ersetzt und die Timings optimiert werden. Jedoch zeigte sich, dass eine zulangsame Taktung der Zugriffe zu einem Versagen des Displaycontrollers fuhrt. Bei Betrieb mitden optimierten Parametern funktionierte die Kommunikation im weiteren Problemlos.
1. GND 11. D22. !RESB 12. D33. !CSB 13. D44. RS 14. D55. M86 15. D66. +5V 16. D77. !WRB 17. GND8. !RDB 18. +5V9. D0 19. +15V10. D1 20. GND
Tabelle 1: Pinbelegung des Displaysteckers (2x10P. Steckerleiste)
7
5.1 Hardware 5 MCU - MASTER CONTROL UNIT
5.1.3 Bedienpanel
Das Bedienpanel besteht aus zwei Drehencodern mit integrierten Tastern, zwei einzelnen Tasternund einem ATMega 48. Der Mikroprozessor fragt kontinuierlich den Zustand der Taster ab, undwandelt Tastendrucke in binare Codes entsprechend Tabelle 9 im Abschnitt 5.2.6. Zur Anbin-dung des Bedienpanels wird der GPIO-Port auf der Hauptplatine verwendet. Desweiteren gibtes eine LED mit mehreren Kanalen (RGB) die zur Anzeige des Systemstatus verwendet wird.Im normalfall leuchtet die LED grun, im Fehlerfall rot. Tasten werden durch kurzes Aufleuchtendes blauen Kanals signalisiert.
Hauptplatine ↔ Bedienplatine Beschreibung12pol. Federleiste ↔ 10pol. Federleiste Beschreibung
1 ↔ 1 +5V2 ↔ 4 GPIOSIG3 ↔ 2 IO 04 ↔ 3 IO 15 ↔ 5 IO 26 ↔ 6 IO 37 ↔ 7 IO 48 ↔ 8 IO 59 ↔ N/C IO 610 ↔ N/C IO 711 ↔ 10 GND12 ↔ 9 GPIOINT
Tabelle 2: Pinbelegung des Kabels zwischen Bedienpanel und Hauptplatine (2x3P.Steckerleiste)
5.1.4 RS232 Schnittstelle
Wird mit einem MAX232 realisiert. Dies ist ein Pegelwandler, der die Pegel der RS232 Schnitt-stelle von (12V/-12V) zu (5V/0V) umsetzt. Der Schaltplan ist aus dem Datenblatt des MAX232[16] ubernommen. Es sind im wesentlichen nur einige Kapazitaten zur Stabilisierung der Ver-sorungsspannung und der intern erzeugten Spannungen (+12V, -12V) notwendig. Es sind nichtunbedingt notwendige Leitungen fur RTS/CTS (Ready to send, Clear to send) vorgesehen, dieein softwarebasiertes Handshaking ermoglichen, das die Zuverlassigkeit der ubertragung starkerhoht.
5.1.5 ISP Programmierport
uber diesen Port kann die Firmware eingespielt werden. Die Beschaltung des ATMega128 Pro-grammierinterfaces weicht vom Standard ab [23]. Anstatt der ublichen Beschaltung an MI-SO/MOSI werden die MISO/MOSI an PDI/PDO (Program Data In/Out) gelegt. Es ergibt sich
8
5.1 Hardware 5 MCU - MASTER CONTROL UNIT
ein Konflikt mit der RS485-Schnittstelle (RXD, TXD), der wieder uber 4066 als Schalter auf-gelost wird. Ein 2-Pin-Header kann die Resetleitung auch manuell auslosen indem die Kontakteuberbruckt werden. Die Resetleitung ist wie ublich mit einem Widerstand (R13) auf +5V gezo-gen.
1. +5V2. ISP MISO3. ISP MOSI4. ISP SCK5. GND6. ISP RESET
Tabelle 3: Pinbelegung des Programmiersteckers (2x3P. Steckerleiste)
5.1.6 Externer Quartzresonator
Aufgrund der vorraussichtlich hohen Last wird der AVR mit den maximal moglichen 16 MHzbetrieben.
5.1.7 RS485 Schnittstelle
Diese Schnittstelle dient zum Anschluss der Busleitungen. Es sind dafur +12V Versorgungs-spannung, sowie die RXD/TXD Datenleitungen nach aussen gefuhrt. Die +5V werden nichtweiter verwendet. Als Transceiverchip wird ein MAX481CSA verwendet. Details zum Proto-koll finden sich im Abschnitt 6.1.
1. GND2. RXD3. GND4. TXD5. GND6. +12V7. GND8. GND9. +5V
Tabelle 4: Pinbelegung des RS485-Ports
5.1.8 GPIO (General purpose I/O) Schnittstelle
Diese Schnittstelle ist einerseits fur den Anschluss von Tastern und anderen Bedienelementengedacht, kann aber zukunftig zum Anschluss von Erweiterungen verwendet werden. Dazu sind 8
9
5.1 Hardware 5 MCU - MASTER CONTROL UNIT
Parallele Datenleitungen (IO0..7) und zwei Steuerleitungen (IOSIG und IOINT) vorgesehen. Ei-ne der Steuerleitungen (IOINT) fuhrt auf einen Interrupteingang des AVR. Damit ist es moglich,bspw. einen zweiten Prozessor anzubinden, und funktionalitat dorthin auszulagern. Komplettzufallig, aber sehr vorteilhaft ist, dass die GPIO-Pins gleichzeitig auch die Eingange fur JTAGsind. So kann zum debuggen das JTAG-Interface benutzt werden. An den Datenleitungen sindSchutzwiderstande vorgesehen, die aber notfalls durch Lotbrucken ersetzt werden konnen.
1. +5V2. GPIOSIG3. IO04. IO15. IO26. IO37. IO48. IO59. IO6
10. IO711. GND12. GPIOINT
Tabelle 5: Pinbelegung des GPIO-Ports (12P. Steckerleiste)
5.1.9 DCF-77 Modul
Michael Doring
Dieser Abschnitt befasst sich mit dem DCF77-Modul als Hardwarekomponente der MCU.
Die gesetzliche Zeit:In der Bundesrepublik Deutschland ist die PTB1 in Braunschweig fur die Darstellung und Ver-breitung der offiziellen Zeitinformation zustandig.
Die Darstellung wird durch zwei Atomuhren erreicht, welche mit Hilfe einer Caesium-Fontaneeine Wechselspannung der Frequenz 9,192631770 ·10−13 erzeugen. Das ist genau die Zeit ei-nes ubergangs zwischen den beiden Feinstrukturniveaus des Grundzustandes des Cs133-Atoms.Durch Teilung erhalt man daraus die Normfrequenzen und somit den Sekundentakt der gesetz-lichen Zeit. Die relative Standardabweichung liegt bei nur etwa 10−15, was einer Abweichungvon einer Sekunde in 20 Millionen Jahren entspricht.Die Verbreitung dieser Zeitinformation geschieht auf verschiedenen Wegen. Sie wird per Tele-
1Physikalisch-Technische Bundesanstalt
10
5.1 Hardware 5 MCU - MASTER CONTROL UNIT
fon2, Fernsehuhr, Funk, GPS3 und Internet verbreitet. Interessant fur uns ist davon die Verbrei-tung per Langwelle auf der Frequenz 77,5MHz.
Der Sender steht in der Nahe von Frankfurt am Main und ist seit 1959 in Betrieb. Er hat ei-ne Sendeleistung von 50kW und ist im Umkreis von etwa 1500km zu empfangen. Als Sende-antenne dient ein 150m hoher Vertikalstrahler. Ein λ/2-Dipol musste bei dieser Frequenz eineLange von 1935,5m haben. Bei gunstigen Wetterbedingungen konnen auch viel großere Entfer-nungen erreicht werden. So ist es schon vorgekommen, daß Funkuhren in Indien oder Kanadauber Nacht auf die deutsche Zeit eingestellt wurden. Diese ”Weiterleitungen” fuhren mitunterlokal bei normalen Wetterbedingungen zu einer 2. Welle, der sogenannten Raumwelle, welcheauch starker sein kann als die kurzere Bodenwelle. Damit kann es auch im Tagesverlauf zuLauflangendifferenzen zwischen 600 bis 1200km kommen. In einigen hundert Kilometern kanndennoch eine Genauigkeit von bis zu 0,1 ms erreicht werden. Außerdem wird der Langwelleein Phasenrauschen von 645,83 Hz aufmoduliert um eine genauere Bestimmung der Sekun-denanfange zu ermoglichen.Das Sendeschema:Der Sender strahlt ein kontinuierliches amplitudenmoduliertes Signal aus. Jede Sekunde, mitAusnahme der 59., wird auf 25% der Sendeleistung abgesenkt und zwar fur 0,1s um eine 0 zukodieren und um 0,2s um eine 1 darzustellen. Es ergibt sich somit ein Rahmen der Lange von59Bit.
2Die Telefonansage wurde in osterreich am 12. Mai 2009 abgeschaltet, so ist es nur eine Frage der Zeit wann es inDeutschland soweit ist.
3Global Positioning System
11
5.1 Hardware 5 MCU - MASTER CONTROL UNIT
Abbildung 4: Verlauf der Antennenspannung des DCF77 Senders(uber dem Signal: Lange der Absenkung; unterhalb des Signals: Sekunden) (Quelle:ptb.de)
Abbildung 5: Dekodierungsschema des Zeittelegramms (Quelle:ptb.de)
Das Empfangsmodul:Wir haben uns entschieden ein kommerzielles Empfangsmodul zu nehmen, da der Aufbau einesGeradesauslangwellenempfangers heutzutage nicht mehr zeitgemaß ware. Es gibt relativ gunstigfertig bestuckte Platinen, welche einen integrierten Empfanger mit einem 77,5MHz Empfangs-quarz besitzen und somit eine hohe Trennscharfe haben. Diese werden zwischen 2V und 15Vbetrieben und geben das empfangene Signal unkodiert aus. Es muss nun softwareseitig ausge-
12
5.2 Firmware 5 MCU - MASTER CONTROL UNIT
wertet werden.
Abbildung 6: kommerzielles DCF77-Modul
Der Zeitrahmen ist in Abbildung 5 dargestellt. Der Beginn einer neuen Minute (0) wird immermit einem 0Bit signalisiert. Dann folgen 15Bit welche derzeit kommerziell mit Wetterdaten ko-diert werden. Dieser Teil ist verschlusselt und kann nur gegen Lizenzgebuhren dekodiert werden.Jetzt folgt das sogenannte Rufbit, sowie Zeitzonen und Zeitumstellungsinformationen. Hieranschliesst sich die eigentliche Zeitinformation in Form des BCD-Codes4 getrennt fur Minute,Stunde, Kalendertag, Wochentag, Monat und Jahr. Die beiden ersten und der darauffolgendeTeil bekommt zudem noch ein Paritatsprufbit. Die letzte Sekunde (59) wird nicht gesendet unddient der Synchronisation bzw. Rahmenerkennung.Weitere und ausfuhrlichere Informationen finden sich hierzu in [25], [26] sowie [3].
5.2 Firmware
Generell kann der Programmablauf in zwei Phasen geteilt werden, die Initialisierung nach demSystemstart und der normalen Ablauf wahrend des Betriebs. Jede Teilkomponente muss vor demBetrieb initialisiert, was zu einer Baumformigen Struktur der Funktionsaufrufe fuhrt, in der jedeTeilkomponente alle Unterkomponenten, von denen sie abhangt,/ initialisiert.Abbildung 7 zeigt ein recht allgemeines Schaltbild des Programmablaufes. Hauptfunktionensind die Anzeige und das Reglersystem mit dem darunter liegenden Bustreiber.
5.2.1 Scheduler
Der Start des Systems erfolgt durch den Aufruf von startScheduler(). In dieser Funktion ist dieArbeitsschleife untergebracht, in der standig uberpruft wird, welche der Prozesse momentan Pro-zessorzeit benotigen. Der Fenstermanager bzw. die Funktionen zum neuzeichnen des Displayswerden immer aufgerufen. Ein zweiter, von Scheduler gesteuerter Prozess ist die Regelung. Umeine einstellbare Zeitbasis zu erhalten, wird die Ausfuhrung durch ein Flag verhindert, bis die-ses aus einer Interruptroutine des Zeitmanagers aktiviert wird. Nun kann eventuell noch einegewisse Zeit vergehen, da der Interrupt zu jeder Zeit und somit auch mitten im Zeichenvorgangauslosen kann. Am Beispiel des Reglerprozesses fuhrt dieses zu Abweichungen vom gewollten
4engl. Binary Coded Decimal
13
5.2 Firmware 5 MCU - MASTER CONTROL UNIT
Time managementSystem clock source
Bus driver
ReadDevice
Input driver 8 Bit parallel w/
soft flow control
Controlling
CTRL0 CTRL1 CTRLN
Data sinks(1..K) [Actuators]
Data sources (1...J) [Sensors]
Write DeviceFehlerbehandlung
z.B. bei Fehler aus der Liste nehmen
RAM RAM RAM
LCD Interface controller driver 8 Bit parallel w/ soft flow control
soft control lines for register Access
Logging
MSG_INPUTDatabyte: Key ID
SchedulingSystem administration
P a
n e
l M
a n
a g
e r
Look
-up
Tabl
e w
ith fu
nctio
n po
inte
rs
PanelCallback0
PanelCallback1
PanelCallback2
PanelCallbackN
PanelCallback3
PanelCallback4
PanelCallback5
...
GFXTools
Drawing function set gfxPutString gfxPutFrame gfxPutAxis
Window Manager
Activepanels
MessageLoop
MSG_INIT
MSG_DRAWDatabyte:Line no.
GFX SystemState data
i.E.Current line
BeginPaint
EndPaint
Drawing Buffer
Logging
MatchingCache Channel 0
Cache Channel 1
File Buffer
FilterDemultiplex
LogData
Logging
Control Interface logic
EEPROM driver storage driver
LoggingTimer0
systemCallback
MSG_TERMINATE
File System
MMC/SD driverstorage driver
Configuration data Log files
Process Scheduler
Realtimeclock
DCF-77Decoder ISR
ControlManager
Initialization
ctrlCallback
MSG_ENUMRDY MSG_ENUMNOTRDY
Abbildung 7: Blockschaltbild der MCU
Takt, der am Beispiel des Prozesses fur die Regelung moglicherweise zu Rechenfehlern fuhrenkann. Aus diesem Grund sind sind alle Prozesse darauf ausgelegt, haufiger die Kontrolle an denScheduler zuruckzugeben.Zur Verwaltung der verschiedenen darzustellenden Elemente der Ein- und Ausgabe wurde einNachrichtensystem gewahlt. Mit Nachrichten kann effizient auf Tastendrucke reagiert und derkorrekte Empfanger automatisch ausgewahlt werden. Empfanger mussen eine Eventhandler-Funktion (callback”) bereitstellen, die als Parameter den Nachrichtencode und einen 16-Bit uintals Datenwort erhalt.
5.2.2 Fenster und Nachrichtencodes
Ein Fenster, bzw. im folgenden Panel ist eine logische Gruppierung von Bedienelementen, zumBeispiel eine Menuleiste oder ein Dialogfeld mit Einstellungen. Die Kontrolle uber das Verhal-ten obliegt dessen Event-Handlerfunktion. Dieser werden ein Nachrichtssymbol (Tabelle 6), undein Datenwort ubergeben. Beides muss vom Event-Handler decodiert und behandelt (zum Bei-spiel eine anderung der Auswahl nach einem Tastendruck) werden. Als Ruckgabewert werden
14
5.2 Firmware 5 MCU - MASTER CONTROL UNIT
Ziel Symbol Bedeutung DatenwortSystem MSG SHOW Anzeigen eines Fensters ID des FentersSystem MSG HIDE Verbergen eines Fensters ID des Fensters
Reglerprozess MSG CLK Zeittakt fur Profile Aktueller ZeitindexAlle Panels MSG NOP - -Alle Panels MSG INIT Initialisierung vor dem
Anzeigen eines neuenFensters
-
Alle Panels MSG TERMINATE5 Bevor ein Fenster ge-schlossen wird
-
Alle Panels MSG DRAW Zeile zeichnen ZeilenindexAlle Panels MSG INPUT Eingabe Zeichencode
Einige Panels MSG REFRESH Einstellungen neu laden -Einige Panels MSG SAVE Einstellungen speichern -defaulthandler MSG ENUMRDY Enumeration abgeschlos-
sen-
defaulthandler MSG ENUMNOTRDY Enumeration lauft -
Tabelle 6: Bedeutung der Nachrichtencodes
Code Symbol Bedeutung0x00h MSG UNTOUCHED Nicht angenommen0x01h MSG PROCESSED Angenommen
Tabelle 7: Antworten der Event handler
die in Tab. 7 gezeigten Werte erwartet.
5.2.3 Verwaltung der Event-Handler
Um Speicher zu sparen wurde auf eine dynamische Registrierung von Panels verzichtet. Daohnehin beim der Kompilation feststeht, welche Fenster es gibt, wurde stattdessen eine Liste mitden Addressen der Eventhandler-Funktionen als Look-up-table im Programmspeicher abgelegt.Die in panels.h definierten Symbole zeigen auf die Addresse in der Tabelle, auf die gesprungenwerden soll. Alle Panels konnen auf eine gemeinsam genutztes Zeichensystem zuruckgreifenoder selbst in den Zeilenpuffer schreiben.Um das Menusystem in kompakte, leichter wartbare Einheiten zu zerlegen, wurde es in einehierarchische Baumstruktur 8 zerlegt, bei der jede Ebene fur das offnen von neuen Panels, nichtaber fur das Schließen zustandig ist. Im Hintergrund laufen standig das Hintergrundpanel, unddie beiden Graphen.
15
5.2 Firmware 5 MCU - MASTER CONTROL UNIT
Abbildung 8: Struktur des Menusystems
16
5.2 Firmware 5 MCU - MASTER CONTROL UNIT
Symbol Code Empfanger c-filePNL SYSTEM 0x00 Fensterverwaltung gfx.c
PNL BOOT 0x01 Hintergrundpanel panel0.cPNL DATAGRAPH1 0x02 Grafikpanel 1 panel1.cPNL DATAGRAPH2 0x03 Grafikpanel 2 panel2.c
PNL CAT1 0x04 Menu Anzeige” panel3.cPNL CAT2 0x05 Menu Einstellungen panel4.cPNL CAT3 0x06 Menu Tools” panel5.cPNL CAT4 0x07 Menu ”?” panel6.c
... ... .PNL CAT1 OPT1 0x10 Dialog zum Einstellen des linken Grafikpanels panel7.cPNL CAT1 OPT2 0x11 Dialog zum Einstellen des rechten Grafikpanels panel8.c
... ... .PNL CAT2 OPT1 0x20 Dialog zum Einstellen der Reglerkanale panel9.cPNL CAT2 OPT2 0x21 Dialog zum Einstellen von Systemfkt. (Uhrzeit) panel10.c
... Reserviert ... .PNL CAT3 OPT1 0x30 Profileditor panel11.cPNL CAT3 OPT2 0x31 Dialog zur Anzeige der enumerierten Busteilnehmer panel12.c
... Reserviert ... .PNL CAT4 OPT1 0x40 Version panel13.c
... Reserviert ... .SYS CTRL 0xF0 Event-Handler des Reglersystems controlling.c
... Reserviert ... .PNL BROADCAST 0xFF Broadcast an alle Fenster (Abschnitt 5.2.6) gfx.c
Tabelle 8: Empfanger fur Nachrichten
5.2.4 Zeichensystem
Dem Fenster stehen verschiedene Zeichenfunktionen bereit, und es ist moglich, direkt in denZeilenpuffer zu schreiben. Das Zeichensystem ist so konzipiert, das zu beginn einer Zeichenvor-gangs in einer Zeile die Funktion gfxBeginPaint(), und zum Ende die Funktion gfxEndPaint()aufgerufen werden muss. Dieses System hat Zahlreiche Vorteile. Zum einen wird so ein Schutzgegen parallele Ausfuhrung (z.B. aus einer Interruptroutine) geschaffen, andererseits werdendabei die Zustandsdaten (aktuelle Zeile, ...) synchronisiert. Dies bedeutet, dass das Fenster garnicht wissen muss, in welche Zeile gerade geschrieben wird, was dessen Struktur stark ver-einfacht. Lediglich bei speziellen Zeichenfunktionen (z.B. fur die Logging-Graphen) muss dasFenster selbst die Zeile auswerten.
5.2.5 Fensterspezifische Zeichenfunktionen
Die Darstellung der Logdaten gestaltet sich aufgrund des zeilenweisen Zeichenvorgangs alsrecht schwierig. Es mussen immer alle Eintrage im Log, die sich in der gleichen Zeile befinden,
17
5.3 Regelung 5 MCU - MASTER CONTROL UNIT
gemeinsam gezeichnet werden. Im Cache-Puffer liegen die Daten jedoch nach der Zeit sortiert,sodass fur jede Zeile einmal der gesamte Puffer durchlaufen werden muss. Da im Sinne derModularitat Abhangigkeiten der Grafikfunktionen von anderen Programmteilen moglichst ver-mieden werden sollen, wurde ein Teil dieser Funktionalitat in der Zeichenfunktion des Panelsuntergebracht. Dabei wird der Log-Speicher immer Zeilenweise abgetastet an den entsprechen-den Stellen gezeichnet. Diese Abtastung ist im Abschnitt 5.4 erlautert.
5.2.6 Eingabe
Die Behandlung von Benutzereingaben wird durch die Nachrichtenschleife stark vereinfacht.Eine Eingabe wird uber eine Interruptleitung Signalisiert, woraufhin das GPIO-Register ausge-lesen und eine Nachricht mit dem entsprechenden Zeichencode an das aktive Fenster versendetwird.
0x01h KEY LEFT0x02h KEY RIGHT0x03h KEY UP0x04h KEY DOWN0x05h KEY SELECT0x06h KEY ABORT0x07h KEY BTNLR0x08h KEY BTNUD
Tabelle 9: Nachrichtencodes gemaß input.h
Die Eingabeschicht besteht im Wesentlichen aus einer Interruptroutine fur den Externen Inter-rupt 6, die von GPIOINT beim Auslosen einer Taste aktiviert wird. Die Interruptroutine liest dieunteren 6 Bit des GPIO-Ports und verschickt eine MSG INPUT-Nachricht mit einem Symbolentsprechend Tab. 9 an das oberste Fenster. Verweigert dies die Annahme, so werden nach-einander alle anderen Fenster durchprobiert, das Bootpanel stellt die Defaultbehandlung. DieFunktion der Taster ist fur alle Fenster gleich oder zumindest ahnlich gehalten (vertikale Aus-wahl, horizontale Auswahl, OK/Bestatigen, Abbrechen). Die in den Drehencodern montiertenTaster werden nur im Profileditor ausgewertet.
5.3 Regelung
Der dieser Prozess umfasst eine im Quelltext einstellbare Anzahl von Reglern Jeder Reglerbesitzt einen Parameterspeicher im EEPROM und eine Kopie dessen im Arbeitsspeicher, diedurch das MSG REFRESH-Event aus dem EEPROM geladen bzw erneuert wird. Jeder Reglerkann mit einer einstellbaren Zeitbasis ausgefuhrt werden, wobei diese naturlich das in dem Ab-schnitt ?? erlauterten Jitter behaftet ist. Die Reglerbank interpretiert Sensoren und Aktuatorenals einheitenlose Datenquellen bzw. -senken. Eine Regelung kann prinzipiell mit jeder Quellebzw. Senke durchgefuhrt werden, es ist prinzipiell aber auch moglich, Anhand der vom Treiber
18
5.4 Logging 5 MCU - MASTER CONTROL UNIT
gefuhrten Liste eine halbautomatische (bis auf Konflikte, z.B. zwei gleiche Sensoren) Zuord-nung vorzunehmen. Der Regelalgorithmus ist bislang ein einfacher Schwellwertvergleich.
5.4 Logging
Das System bietet die Moglichkeit, Daten auf der angeschlossenen MMC-Karte zu speichern,wenn die entsprechende Hardware bestuckt ist. Dabei konnen verschiedene (Hart codierte) Quel-len unterschieden werden. Aufgrund von Einschrankungen beim Zugriff auf die MMC-Kartekann maximal eine Datei geoffnet sein. Deshalb werden die Daten in Paketen in eine einzelneDatei geschrieben. Um eine spatere Rekonstruktion des Verlaufes zu ermoglichen, werden re-gelmaßig Pakete mit Zeitstempeln eingefugt. Da die Anzeige nicht spaltenweise zeichnen kann,ist die Anzeige der Logdaten umstandlich. Man kann den Cache nach einem bestimmten Werte-bereich zu durchsuchen. Dazu muss zu Beginn die Funktion logSetFilterParam() zum Einstellender Parameter des Filters aufgerufen werden. Jeder folgende Aufruf von logGetCacheMatch()gibt entweder die Position eines gefundenen Datenwerts zuruck, oder LOG CACHE NOHITwenn das Ende des Puffers erreicht ist. Das Fenster ubernimmt die Abfrage und das zeichnender Datenwerte.
5.4.1 Steuerlogik
Ursprunglich war die Steuerlogik vereinigung verschiedener unzusammenhangender Funktio-nalitaten als Prozess im Scheduler vorgesehen. Diese Aufgaben konnten allerdings besser alsEvents in den Panels untergebracht werden. Dies ist ist von Vorteil, da so die unterliegende In-frastruktur klar von der Systemfunktion getrennt ist. Hier sollte die Steuerlogik eine Chronjob-Tabelle bieten, die es ermoglicht, zu festgelegten Zeiten bestimmte Funktionen auszufuhren.Aufgrund des Wegfalls dieses Prozesses wurde sie etwas modifiziert durch die im EEPROMgespeicherten Profile implementiert.
5.4.2 Regler
Im Anhang befindet eine Ausarbeitung zu einer moglichen Implementation der Reglerstreckefur die Temperatur. Sie wurde in dieser Form aber nicht verwendet.
19
6 BUSSYSTEM
6 Bussystem
Sebastian Tiesler
Der Bus ist der Art nach ein Master/Slave System. Die MCU (Master) steuert alle Busteilnehmer(Slaves). Die Busteilnehmer sind Sensoren und Aktuatoren. Die Busschnittstellen sind nach demRS485 Standard entworfen. Dieser sichert die fur Feldbusse typische hohe Storsicherheit beilangeren Leitungen. Der Bus arbeitet im Halbduplexbetrieb d.h. es kann immer nur ein Teilneh-mer (Master/Slaves) ’reden’. Der Master initiiert die Kommunikation mit den jeweiligen Bus-teilnehmern (polling). Uber den Bus werden die Daten, die die Sensoren erzeugen, der MCU zurVerfugung gestellt. Die MCU verarbeitet diese und steuert gegebenenfalls die Aktuatoren uberden Bus aus.
6.1 Busspezifikation
• 8 Adern Twisted Pair (4 Paare)
– 3 Spannungsversorgung (+12V)
– 3 Spannungsversorgung (GND)
– 2 Daten (A, B)
• Kabeltyp 4 Pair 26AWG UTP CAT5
• Anbindung der Busteilnehmer uber Stichleitungen
• maximal 30 Busteilnehmer (Slaves)
6.2 Beschreibung des Grundmoduls
Das Grundmodul, das fur alle Busteilnehmer gleich ist, ist die Schnittstelle zwischen RS485 Busund den jeweiligen Analog- und Digitalteilen der Busteilnehmer.Die verbindende Logik ist ein ATmega48 [11]. Dieser Mikrocontroller der Firma Atmel istleicht programmierbar, gunstig und hat verschiedene Energiesparmoglichkeiten. Seine Periphe-rie enthalt mehrere 10bit SAR (sukzessive approx) Analog-/Digitalumsetzer um analoge Sen-sorsignale zu digitalisieren, digitale Ein- und Ausgange sowie PWM-Generatoren und Inter-ruptports um Aktuatoren zu steuern. Desweiteren ist ein USART enthalten, der eine hochgradigkonfigurierbare serielle Schnittstelle bereitstellt. Diese serielle Schnittstelle ist mit einem exter-nen Transceiverbaustein verbunden, der fur die Anbindung an den RS485 Bus benotigt wird.Der Transceiver ist im Prinzip ein Pegelwandler, er generiert aus den USART Pegeln die diffe-rentiellen RS485 Pegel. Als Transceiverbaustein wurde ein SN75176BD [19] gewahlt, der einAquivalent zum etwas teureren MAX485 [17] ist.Der Transmitter im Transceiver muss vor jedem Senden erst aktiviert werden, da sonst der Busgestort wurde. Dazu ist der DE Pin des Transceivers an einem Portpin des ATmega48 ange-schlossen. Die D- und R-Pins des Transceivers sind mit dem USART des Mikrocontrollers(ATmega48) verbunden. Ausserdem ist der R-Pin des Tranceivers mit einem Interruptpin des
20
6.2 Beschreibung des Grundmoduls 6 BUSSYSTEM
Mikrocontrollers verbunden, dies ist anfanglichen Uberlegungen geschuldet nach denen so demMikrocontroller der Eingang neuer Datenpakete signalisiert werden sollte. Es hat sich jedochherausgestellt das der USART bereits selbst einen Interrupt besitzt, der anzeigt das Daten emp-fangen wurden.In der Programmierung kann nun der USART verwendet werden um, ganz wie bei einer seriellenSchnittstelle, Daten zu senden und zu empfangen. Der Mikrocontroller enthalt die Implemen-tierung des uber den Bus zu sprechenden Protokolls. Ausserdem werden uber eine spezifizierteSteckerleiste seine weiteren Peripherieelemente, wie A/D Umsetzer, Interruptport, digitale Ein-und Ausgange, den Analog- und Digitalschaltungen den Sensor-/Aktorboards zur Verfugung ge-stellt. Aus Grunden der Unabhangigkeit der einzelnen Arbeitsgruppen und den gleichen Grund-funktionen fur jeden Busteilnehmer wurde dieser modulare Ansatz gewahlt. Dafur wurde denTeilnehmern, die einen Busteilnehmer erstellen, ein Grundlayout zur Verfugung gestellt. So ha-ben sie gleich die richtigen Abstande fur die zu verwendenden Buchsenleisten damit ihre Schal-tung als sogenanntes ’piggyback board’5 passgenau auf das Grundmodul gesteckt werden kann.Das dafur erzeugte Layout ist im B.3 zu finden. Aus den uber den Bus gespeisten 12V wird mit-tels eines Linearreglers (7805) die fur den Mikrocontroller benotigte Spannung von 5V erzeugt.Es wurden 6 dieser Grundmodule aufgebaut, daher wurde auf die eigentlich energieeffizientereSpannungswandlung mittels eines Step-Down Reglers, bspw. LM2671M-5.0 [14], aufgrund deshohen Preises von ca. 10 Euro pro Modul verzichtet. Das samplen eines solchen Schaltreglerswurde nicht in Betracht gezogen, da nicht zu erwarten war eine so große Menge zu erhalten.
Abbildung 9: Busteilnehmermodul Oberseite
Die Module werden in nicht temperaturstabilen Umgebungen ihre Anwendung finden, da unserHabitat verschiedene Klimamodelle simulieren konnen soll. Daher enthalten die Module einenQuarz um den internen RC-Oszillator des Mikrocontrollers zu stabilisieren. Außerdem ist fureinen moglist fehlerintoleranten Bus ein stabiler Takt notwendig. Um den Mikrocontroller pro-grammieren zu konnen ist eine Programmierschnittstelle vorgesenen. Dieser ISP Header kann
5dt. Huckepackplatine
21
6.3 Software fur das Grundmodul 6 BUSSYSTEM
bspw. mit dem Stk500 verbunden werden. Der Schaltplan und das Layout sind vollstandig imAnhang B.2 zu finden.
Abbildung 10: Busteilnehmermodul Unterseite
6.3 Software fur das Grundmodul
6.3.1 Grundstruktur
Die Modularitat des Busteilnehmerkonzeptes setzt sich auch in der Software fort. So ist allenBusmodulen die Implementation der Buskommunikation gemein. Sie erfolgt einmal und wirddann allen zur Verfugung gestellt. Sie besteht aus einer main.c in der das F CPU Flag gesetzt,der Pin fur den Transmit Enable Pin des Transceivers definiert wird sowie in der main Routinedie Initialisierung der einzelnen Programmteile und die Endlosschleife in der die Buskommuni-kation und bspw. Sensorabfragen aufgerufen werden.Um kommunizieren zu konnen muss der UART des ATmega aktiviert und konfiguriert werden.Dazu gibt es in den Dateien uart.h und uart.c. Dort wird die Modul eigene eindeutige Adressefestgelegt. Es ist eine Initialisierungsroutine vorhanden, die den Uart auf eine Geschwindig-keit von 9600 Baud einstellt und den Multi Processor Communication Mode (MPCM) einstellt.Der MPC Modus erlaubt es dem UART alle Pakete zu ignorieren, die ein neuntes Bit gesetzthaben. So brauchen die Slaves nur Pakete auswerten, die Adressinformationen enthalten, alsomoglicherweise fur sie bestimmt sind, und konnen sonst alle weiteren ignorieren. Ist ein Paketmit der gleichen Adresse wie die Modul eigene Adresse empfangen worden, so muss dieser Mo-dus naturlich deaktiviert werden, damit die folgenden Datenpakete mit nicht gesetztem neutenBit empfangen werden konnen.Desweiteren sind dort alle Interruptroutinen vorhanden, die benotigt werden um mit dem UARTDaten empfangen und senden zu konnen. Der UART hat ein Empfangsregister, das ein Bytegross ist. Das heißt er kann jeweils nur ein Byte empfangen. Hier werden mehrere empfangeneBytes zu Paketen zusammengefugt oder um zu senden, Pakete in einzelne Bytes zerlegt. Fur die
22
6.3 Software fur das Grundmodul 6 BUSSYSTEM
Implementation des Busprotokolls sind die Funktionen uart send packet(address, data count,packet) und uart getc(packet position) da.Das uber den Bus zu sprechende Protokoll ist in den Dateien bus.h und bus.c implementiert. Dortwerden die einzelnen Paketfelder ausgewertet und daraus Aktionen abgeleitet. Dazu sind in derDatei packet.h verschiedene Flags definiert, die Ausgewertet zu verschiedenen Aktionen fuhren.Diese Aktionsflags sollen die Schnittstelle zu dem Code der Gruppenteilnehmer seien und dortderen set- und get- Routinen triggern. Ausserdem ist hier die Routine bus communicate() defi-niert, die nach einem empfangenen Paket pruft und dieses der Auswertung ubergibt. Sie wird inder Endlosschleife der main Routine aufgerufen und sorgt so fur die Kommunikation.
6.3.2 Beschreibung der Paketstruktur
Der RS485 Bus legt keine Struktur fur die zu ubermittelnden Daten fest. Daher wird ein ru-dimentares Protokoll fur die Datenbeschreibung definiert. Dieses ist paketbasiert. Der Mastersendet ein Paket an einen Slave und erhalt genau ein Antwortpaket. Ein Paket besteht aus 8Datenbytes, dabei hat jedes Byte eine bestimmte Funktion (Tabelle 10). Byte 4 ist das interes-santeste, sein Inhalt, sowie der von Byte 3, ist in der Datei packet.h definiert.
Byte 0 1 2 3 4 5 6 70x00 Destination0x01 Source0x02 Data Count0x03 Type State0x04 Action0x05 Data00x06 Data10x07 Checksum
Tabelle 10: Allgemeine Form eines Paketes
6.3.3 Beschreibung der Enumeration
Die Enumeration der Slaves ist notwendig, da beim ersten Aufbau oder dem Hinzufugen neuerTeilnehmer, dem Master nicht bekannt ist, was am Bus hangt. Dazu geht der Master alle 30moglichen Slaveadressen durch und sendet ein Enumerationspaket der Form (Tabelle 11). Wirdauf ein solches Paket geantwortet (Tabelle 12), speichert der Master die Quelladresse sowie denTyp des Antworters. Erhalt er keine wird nach einem Timeout die nachste Adresse angefragt.Hat der Master alle Adresse abgearbeitet, erstellt er eine Liste aller vorhandener Slaves, die dieAdresse und den Typ enthalt.
23
6.3 Software fur das Grundmodul 6 BUSSYSTEM
Byte 0 1 2 3 4 5 6 70x00 Slave Address0x01 Master Address0x02 0x050x03 MASTER ENUM0x04 HELLO ENUM0x05 0x000x06 0x000x07 CHK
Tabelle 11: Enumerationspaket des Masters
Byte 0 1 2 3 4 5 6 70x00 Master Address0x01 Slave Address0x02 0x050x03 MODULE TYPE IDLE0x04 HELLO ANSWER0x05 0x000x06 0x000x07 CHK
Tabelle 12: Enumerationsantwort eines Slaves
6.3.4 Ablauf der Kommunikation
Der Ablauf der Kommunikation wird am Beispiel des Auslesens eines Tempartursensors dar-gestellt. Um die Temperatur regeln zu konnen, muss sie dem Regler zur Verfugung stehen. DieMCU hat nach der Enumeration eine Liste aller Sensoren und Aktuatoren, ist darunter ein Tem-peratursensor kann sie von diesem die notigen Informationen erfragen. Dazu sendet die MCUein Paket, das die Temperatur erfragt (Tabelle 13). Der Slave empfangt dieses Paket und inter-pretiert das Action Byte, anhand dessen er dann ein Anwortpaket (Tabelle 14) erstellt. DiesesAntwortpaket enthalt das gleiche Action Byte, jedoch im Data0 Feld den vom Sensormodul uberden ADC ausgelesenen und gemittelten Temperaturwert. Naturlich sind Destination und SourceByte angepasst. Der Master empfangt wiederum dieses Paket, interpretiert es und Aktualisiertso den Temperaturwert in seinem System.
6.3.5 Softwareendbetrachtung
Fur die Sensoren gestaltete sich die Implementation der Busmodule als besonders einfach, dajeweils nur ein ADC mehrfach auszulesen war und der gemittelte Wert auf Anfrage des Ma-
24
6.3 Software fur das Grundmodul 6 BUSSYSTEM
Byte 0 1 2 3 4 5 6 70x00 Slave Address0x01 Master Address0x02 0x050x03 MASTER IDLE0x04 GET TEMP 10x05 0x000x06 0x000x07 CHK
Tabelle 13: Anfragepaket des Masters an Temperaturmodul
Byte 0 1 2 3 4 5 6 70x00 Master Address0x01 Slave Address0x02 0x050x03 TEMP SENS 1 IDLE0x04 GET TEMP 10x05 SENSOR VALUE0x06 0x000x07 CHK
Tabelle 14: Antwortpaket des Temperaturmoduls auf Anfrage des Masters
ster gesendet werden musste. Die Integration in die Firmware des MCU Moduls gestaltete sichals etwas schwierig, da sie zu spat geschah und so einige Schwierigkeiten nicht schnell genugbeseitigt werden konnten. So war zur Prasentation leider nur die Enumerationsphase lauffahig.Jedoch schon in vorherigen Tests alle Module ansich funktionstuchtig. Dies wird jedoch nochbehoben und zu einem spateren Zeitpunkt vorgefuhrt.
25
7 SENSOREN
7 Sensoren
Sensoren in unserem Sinne sind elektronische Bauteile die physikalische Umgebungsgrossen,wie Temperatur und Luftfeuchtigkeit, in fur uns messbare elektrische Grossen (Widerstand)wandeln.
7.1 Temperaturmessung
Bilal Khaled
7.1.1 Einleitung
Die Temperatursensoren sind meist elektronische Bauelemente, die eine Temperatur in eine elek-trische Große umwandeln. Sie teilen sich in zwei Gruppen: NTC- und PTC-Sensoren.
NTC-Sensoren:NTC-Sensoren (NTC: Negative Temperature Coefficient) sind Halbleiterwiderstande, deren Wi-derstandswerte mit steigender Temperatur abnehmen. In einem Temperaturbereich von z.B. 0 bis50 C reagieren sie stark auf auch nur geringe Temperaturanderungen. Nachteilig sind jedochdie recht hohen Herstellungstoleranzen.
PTC-Sensoren:Der Widerstand von PTC-Sensoren (PTC: Positive Temperature Coefficient) nimmt mit steigen-der Temperatur zu. Eine derartige Abhangigkeit weisen Platin-Temperatursensoren, Silizium-Ausbreitungswiderstande und in einem bestimmten Temperaturbereich auch Kaltleiter aus do-tierter polykristalliner Titankeramik auf.
Konkret wurde fur das Widerstandsthermometer Pt100 (Temperatursensor) entschieden, das aufder Widerstandanderung von Platin unter Temperatureinfluss basiert.
Die Vorteile des Pt100 sind:
• wesentlich hoheres elektrisches Signal, daher unempfindlicher gegen Storungen
• weitgehend lineare Kennlinie
• hohere Langzeitstabilitat
• keine Vergleichstabelle notwendig
Nachteil:
• maximaler Temperaturbereich bis ca. +800C
In Abbildung 11 ist die Kennlinie des Pt100 im Bereich von -100 bis +800C abgebildet.
26
7.1 Temperaturmessung 7 SENSOREN
Abbildung 11: Kennlinie des Pt100 (aus: [2])
Es ist zu merken dass sich der Widerstandswert fast linear mit der Temperatur andert. Diese qua-si Linearitat ist fur das System ganz wichtig, weil sie die Messung der Temperatur erleichtert.
Der Ziel war es, eine Schaltung aufzubauen, mit der man die Temperatur des Terrariums mes-sen kann. Die zu messende Temperatur soll im Bereich von 0C bis 100C liegen. Ein Wider-standsthermometer, dessen Widerstand sich zwischen 100Ω und 139Ω und mit der Temperaturandert, ist das Kernstuck unserer Schaltung, damit kann die zu messende Große ’Temperatur’ inein elektrisches Signal umgewandelt werden.
7.1.2 Schaltungsbeschreibung
Bruckenschaltung Mit einer Bruckenschaltung kann die Anderung des Widerstands in dieAnderung der Spannung umgesetzt werden. Die Temperatur wird mittels eines Thermometerwi-derstands gemessen, der in eine Bruckenschaltung integriert ist (siehe Abbildung 12). Die ausder Bruckenschaltung gewonnene Differenzspannung wird einem Spannungsfolger zugefuhrtder die Aufgabe hat, eine Eingangsspannung moglichst gering zu belasten und gleichzeitigeine hohere belastbare Spannung zu erzeugen, die der Eingangsspannung gleich ist. Um dieBruckenschaltung bei 100C abzugleichen und 139Ω setzen wir die Widerstande R1 = 47k undR3 = 4, 7k. Das Potentiometer R2 hat fur die spatere Feinanpassung einen verandlichen Wert imBereich von 0 bis 1k. Nach dem Spannungsfolger ist: U′1 = U1 und U′2 = U2.
12V ist die Versorgungsspannung, welche durch den Bus geliefert wird. Aus der Schaltung inAbbildung 12 bekommen wir folgende Gleichungen:
U1 =R2
R1 + R2· 12V (1)
27
7.1 Temperaturmessung 7 SENSOREN
Abbildung 12: Bruckenschaltung (Pspice)
U2 =Rt
R3 + Rt· 12V (2)
R3 muss viel grosser als Rt sein, damit U2 eine Lineare Beziehung zu Rt besitzt. U1 ist dieOffset-Spannung. Sie sorgt dafur, dass die Ausgangsspannung dieser Stufe bei T = 0C bzw.Rt=100Ω, bei 0V liegen kann. Und um die genaue Nullausgangsspannung bei 0C erreichen zukonnen, benutzen wir fur R2 ein Potentiometer.
Verstarkerschaltung Berechnung des Verstarkungsfaktors, nach dem Spannungsfolger be-tragt die Ausgangsspannung bei 100C:
U′1 =R2
R1 + R2· 12V =
100047000 + 1000
· 12V = 0.25V (3)
U′2 =Rt
Rt + R3· 12V =
139139 + 4700
· 12V = 0.34V (4)
Die Ausgangsspannung nach der Verstarkerschaltung betragt bei R4 = R5 = 1k:
Ua =R6
R4(U′2 − U′1) =
R6
R4(0.34 − 0.25) =
R6
R4(0.09) (5)
Um die Ausgangsspannung im Bereich 0V bis 5V zu verstarken, ist ein Verstarkungsfaktor von51k passend, daher wird die Ausgangsspannung bei 100C betragen:
Ua =51k1k
(0.09) = 4.59V (6)
28
7.1 Temperaturmessung 7 SENSOREN
Abbildung 13: Verstarkerschaltung (Pspice)
Schaltungssimulation mit Pspice In Abbildung 14 ist das Gesamtschaltbild mit Pspicedargestellt.
Abbildung 14: Pspice Schematics des Temperatursensors
Hier sind einige Simulationsberechnungen, in einer Tabelle zusammengefasst:
29
7.1 Temperaturmessung 7 SENSOREN
Temperatur in C Widerstand des Pt100 Ausgangsspannung in V0 100 020 107,9 0,9830 111,6 1,4440 115,8 1,9660 123,6 2,9390 134,7 4,30100 139 4,59
Aus den Berechnungen wird deutlich, dass die Ausgangsspannung mit zunehmender Tempera-tur in die Sattigung geht.
Zum Abschluss noch ein Foto der vollstandig aufgebauten Platine (Bild 15).
Abbildung 15: Fertige Platine des Temperatursensors
Im Anhang B.4 sind in Abbildung 60 das Gesamtschaltbild und in Abbildung 61 das Platinenlay-out des Temperatursensors dargestellt. Des weiteren befindet sich in Tabelle 17 eine Auflistungder benotigten Bauteile.
30
7.2 Luftfeuchtemessung 7 SENSOREN
7.2 Luftfeuchtemessung
Miruna Raceala
Einleitung Wichtig bei dem Aufbau eines Terrariums ist die Moglichkeit die Feuchtigkeit derLuft messen zu konnen und somit auch zu steuern. Deshalb ist es notig einen Sensor einzubau-en, der die aktuelle Luftfeuchtigkeit messen kann. Zur Messung der relativen Luftfeuchte wirdein Sensor vom Typ EFS-10der Firma Hygrosens eingesetzt. Dieser ist ein elektrolytischer Po-lymersensor, der den aktuellen Feuchtewert in eine Impedanz umsetzt. Das physikalische Mes-sprinzip beruht auf den Eigenschaften eines hygroskopischen Materials, das die Leitfahigkeit inAbhangigkeit von der Luftfeuchte in der Umgebung andert. Der Sensor kann in einem Tempera-turbereich von 0 bis 60C eingesetzt werden und hat einen Feuchtigkeitsmessbereich von 20%bis 95% relativer Feuchtigkeit.
Begriffserklarung
Absolute Feuchte Die absolute Feuchte Fabs gibt diejenige Wassermenge an, die in einembestimmten Luftvolumen enthalten ist. Es gilt
Fabs = Masse des WassersLuftvolumen [g/m3]
Sattigungsfeuchte (Fsat) Die Sattigungsfeuchte Fsat gibt die maximal mogliche Wassermen-ge an, die in einem bestimmten Luftvolumen enthalten sein kann. Fsat ist von der Tempe-ratur abhangig und steigt mit dieser stark an.
Relative Feuchte (Frel) Die relative Feuchte Frel ist eine Angabe, die sich aus dem Verhaltnisvon absoluter Feuchte zur Sattigungsfeuchte ergibt.
Sensor Die eigentliche Messgroße, die relative Luftfeuchtigkeit, ist nicht nur von der in derLuft existierenden absoluten Luftfeuchte abhangig, sondern auch von der Sattigungsfeuchte, dieihrerseits abhangig von der Umgebungstemperatur unterschiedliche Werte annehmen kann.Wegen der Abhangigkeit der relativen Luftfeuchte von der Temperatur muss daher in der ent-worfenen Schaltung eine Temperaturkompensation erfolgen, um die an dem Temperatursensorgemessenen Impedanzwerte auch richtig interpretieren zu konnen.Abbildung 16 beschreibt die Abhangigkeit der Sensorimpedanz von der relativen Luftfeuchtig-keit und der Umgebungstemperatur (hier logarithmisch abgebildet). Wurde man die Spannungdirekt am Sensor lesen, musste man abhangig von den, von dem Temperatursensor geliefertenWerte,softwaremaßig die Ergebnisse im Mikrocontroller auswerten. Die relative Luftfeuchtig-keit wird hier als Funktion der sich am Schaltungsausgang ergebenen Spannung interpretiert.Eine weitere Moglichkeit ware die Luftfeuchtigkeit anhand der Signalfrequenz am Ende desSensorelementes zu interpretiern.
31
7.2 Luftfeuchtemessung 7 SENSOREN
Abbildung 16: Abhangigkeit des Sensorwiderstandes von Temperatur und RelativerLuftfeuchtigkeit
Schaltungsaufbau Die Schaltung ist im Anhang B.5 zu finden. Sie wertet das Sensorsignalaus und liefert am Ausgang ein kalibriertes Spannungssignal 0· · ·5V. Die Schaltung kann sowohlvom Offset- als auch vom Gainwert justiert werden. Die Messung der Impedanz muss mittelseines Wechselstroms (ohne DC-Anteil) erfolgen. Die von den Herstellern empfohlene Betriebs-frequenz betragt 1 kHz bei einer Messspannung von maximal 1Ve f f . Die Spannungsversorgungmit zwei Bandgap-Referenzdioden ist stabil und versorgt den Messkreis mit genau 4.8V. DieMittenspannung von 2,4V dient als virtueller Bezugspunkt fur die Operationsverstarker. Umdie von dem Sensor benotigte Sinus-Wechelspannung zu erzeugen, baut man mit den Opera-tionsverstarker U3A und U3B einen amplitudenstabilen Sinusoszillator auf, der auf ca. 1kHzschwingt. Die Kapazitat C8 trennt das Gleichspannungs-Offset ab und speist den Sensor.Der Operationsverstarker U2B kompensiert das logarithmische Verhalten des Sensorelementsuber die Diodenkennlinie. Zur Temperaturkompensation wird eine 1N4148 Diode durchgefuhrt,die an zwischen den Klemmen 1 und 2 am Sensorelement anliegt. Der OperationsverstarkerU2A ist ein Spitzenwertgleichrichter. An C7 steht die linearisierte und temperaturkompensiertefeuchtigkeitsabhangige Spannung an. Der Instrumentenverstarker mit U1A, U1B und U1D dientmit Hilfe der Potentiometer R10 und R12 zur getrennten Einstellung von Offset und Gain. Dieanschließende Einstellung der Steigung beeinflusst den Offsetabgleich nicht, da der Drehpunktder Gain-Einstellung bei 3,3V (33%) liegt. Die Schaltung gibt jetzt eine Ausgangsspannungzwischen 0 und 10 Volt heraus, abhangig von der gemessenen Luftfeuchtigkeit. Da an dem Buseine Maximalspannung von 5 Volt liegen muss, dient ein zusatzlicher Potentiometer als Span-nungsteiler, und begrenzt die Ausgangsspannung auf maximal 5 Volt. Die Ausgangsspannung
32
7.2 Luftfeuchtemessung 7 SENSOREN
Abbildung 17: Blockschaltbild der Schaltung zur Feuchtigkeitsmessung
wird nachher mit Hilfe des Mikrocontrollers in die entsprechende Luftfeuchtigkeit umgesetzt.
33
7.3 Bodenfeuchtemessung 7 SENSOREN
7.3 Bodenfeuchtemessung
Mohamed Goni
Einteil unseres Projekts ist die Implementierung eine geeignete Schaltung zur Auswertung vonBodenfeuchte. Je nach dem angewandten Prinzip lassen sich die Bodenfeuchtemessverfahren ineinige Kategorien unterteilen. Bei der Messung durch Wasserdruckanderung kommt der Ten-siometer zum Einsatz. Dieser Messbauteil beruhet auf einer mechanischen Verformung. Bo-denporen konnen durch Kapillarwirkung Wasser aufsaugen und so einen Unterdruck erzeugen.Dann wird ein mit Wasser gefullter Tonkegel nur Wasser, aber keine Luft hindurchlassen. Darumkann sich der Unterdruck auch im Kegel ausbilden. Am Ende des Schlauchs ist ein Differenz-druckmesser angeschlossen. Andere Konzepte zur Bodenfeuchtemessung ist die Messung durchpassive Sensoren. Solche Elemente beeinflussen physikalische Eigenschaften wie Widerstand,Kapazitat. Um ein entsprechendes Ausgangssignal zu erhalten, ist eine externe Spannungsersor-gung notwendig.
Wann braucht man Wassergehalt und wann Wasserpotenzial?
Die Bodenfeuchte (das Wasser im Boden) kann mit zwei Großen charakterisiert werden: Was-sergehalt und Wasserpotenzial.
Wahrend der Wassergehalt die Wassermenge bezogen auf das Gewicht oder auf das Volumenangibt, zeigt das Wasserpotenzial Arbeit an, die benotigt wird, um eine Einheitsmenge Wasserder Bodenmatrix zu entziehen. Das Wasserpotenzial hat daher die Einheit joule/m3 = N/m2=pascalund gewohnlich ein negatives Vorzeichen, weil Arbeit aufgewendet wird. Der wesentliche Unter-schied zwischen Wassergehalt und Wasserpotenzial besteht darin, dass der Wassergehalt nichtsuber das Krafteverhaltnis (Fließrichtung, Verfugbarkeit fur Pflanzen) aussagt. Hoher Wasserge-halt bedeutet nicht zwangslaufig eine bessere Verfugbarkeit uber Wasser. Aus diesem Grundmacht ein Vergleich vom Wassergehalt verschiedener Bodentypen fur viele Fragestellungen kei-nen Sinn. Hingegen ist das Wasserpotenzial eine absolute”Große und kann unabhangig vom Bo-dentyp direkt miteinander verglichen werden (-5 bar ist trockener als -4.5 bar). Das Wasserpoten-zial ist die Summe aus Matrix-, osmotischem und gravimetrischem Potenzial. Das osmotischePotenzial ist in Nicht-Salzboden vernachlassigbar gering und das gravimetrische Potenzial istbei bekanntem Bezugspunkt direkt zu berechnen. Messtechnisch ist deshalb nur das Matrixpo-tenzial, das in der Regel auch den großten Anteil des Wasserpotenzials ausmacht, von Interesse.Das Matrixpotenzial wird nicht nur durch den Wassergehalt, sondern auch durch andere Boden-eigenschaften maßgeblich bestimmt. Daher besteht kein allgemeiner Zusammenhang zwischenWassergehalt und Matrixpotenzial. Hohes Matrixpotenzial bedeutet nicht zwangslaufig, dass imBoden mehr Wasser vorhanden ist. Ob Wasserpotenzial oder Wassergehalt gemessen werdensoll, hangt von der Fragestellung ab. Soll die im Boden vorhandene Wassermenge bestimmtwerden, ist der Wassergehalt die geeignete Große. Fur folgende Aufgabenstellungen ist die Be-stimmung des Wasserpotenzials dagegen unbedingt notwendig:
• Charakterisierung der Wasserverfugbarkeit fur Pflanzen (z.B. Trockenheit, Trockenstress);.
34
7.3 Bodenfeuchtemessung 7 SENSOREN
• Pflanzenphysiologische Untersuchungen (z.B. Vergleich mit dem Xylemwasserpotenzial);
• Berechnung (Abschatzung) der Wasserbewegungen im Boden;
• Berechnung der Verdunstung;
• Bewasserungssteuerung:
In der Literatur wird Trockenheit oder Wasserstress oft mit Wassergehalt beschrieben. In solchenDarstellungen weiß man zum einen nicht, wie trocken der Boden wirklich ist, und zum zwei-ten sind die Daten miteinander nicht vergleichbar. In extremen Fallen konnen auf einem Bodenmit 10 prozentigem Wassergehalt je nach Bodentyp Wasserkulturen gedeihen oder Kakteen ver-trocknen.
Uberblick uber Methoden zur Wasserpotenzialmessung
Wahrend die Bestimmung des Wassergehalts im Boden relativ einfach durchzufuhren ist, ge-staltet sich die kontinuierliche Messung (Monitoring) vom Matrixpotenzial sehr schwierig. Dievier am haufigsten gebrauchten Instrumente und Verfahren wie Druckaufnehmer-Tensiometer,Psychrometer, TDR bzw. FDR-Sonde in Kombination mit pF-Kurven und Gipsblock konnen dieAnforderungen in der Praxis nur bedingt erfullen.
• Methodenvergleich
35
7.3 Bodenfeuchtemessung 7 SENSOREN
Methoden Mess −
bereich(kPa)Vorteile Nachteile
Gipsblocke ab -100 1. preisgunstig.2. fur Dauermessung ge-eignet.
1. Messwerte abhangigvon Bodeneigenschaften.2. Eichkurve instabil, un-genau. 3. starke Hystere-se. 4. kurze Lebensdauer.
Psychrometer ab -200 1. besonders geeignet fursehr trockene Messberei-che;2. misst das Gesamtwas-serpotenzial.
1. sehr anfallig gegenuberTemperaturschwankun-gen;2. schmutzanfallig;3. fur feuchtere Bereichenichtgeeignet;4. sehr wartungsintensiv.
pF-Kurve mitWassergehaltsmes-sungen
0...-1500 1. breiter Messbereich. 1. aufwandig;2. ungenau.
Transducer- Ten-siometer
0...-85 1. hohe Genauigkeit 1. nur in feuchtemMessbereich einsetzbar;2. sehr wartungsintensivund daher auch teuer;3. Messwerte von Tempe-ratur abhangig.
Das Druckaufnehmer-Tensiometer funktioniert nur im feuchten Messbereich zwischen 0 bis -85kPa. Bei einer Unterschreitung der Messgrenze von -85 kPa muss das Tensiometer erneut ausge-baut und befullt werden. Somit ist diese Technik sehr wartungsintensiv und letztlich auch teuer.Wegen des begrenzten Messbereichs ist mit dem Druckaufnehmer-Tensiometer mit Ausnahmevon wenigen feuchten Gebieten kein luckenloses Monitoring moglich Das Psychrometer ist nureinsetzbar ab -200 kPa. Weil der Messfuhler (Thermoelement) sehr schmutz- und temperatur-empfindlich ist, ist ein Dauereinsatz im Boden praktisch nicht moglich. Unter Freilandbedin-gungen sind bei Dauermessungen Ablagerungen gasformiger Stoffe an der Thermoelemento-berflache nicht zu vermeiden. Tagliche Temperaturschwankungen und der Temperaturgradientim Boden werden uber das Anschlusskabel an den Messfuhler ubertragen, was die Messwerteerheblich verfalschen kann. Aus diesem Grund hat sich die Psychrometrie in der Bestimmungder Bodenfeuchtigkeit nie durchgesetzt. Eine andere Moglichkeit ist es, mit der TDR- oder FDR-Technik zunachst den Wassergehalt zu bestimmen und diesen mit Hilfe von der pF-Kurve in dasMatrixpotenzial umzurechnen. Die Erfahrungen zeigen jedoch, dass diese Methode nur eine gro-be Abschatzung ermoglichen kann, weil die TDR- und FDR-Sonden unter Freilandbedingungenoft mit hohen Fehlerquoten arbeiten. Außerdem ist die Ermittlung der pF-Kurve zeitaufwandigund teuer. Der Gipsblock, der durch Messung elektrischer Leitfahigkeit den Ruckschluss aufdas Matrixpotenzial erlaubt, ist nur im trockenen Boden (unterhalb -100 kPa) einsetzbar. Einwesentlicher Nachteil ist die Beeinflussung der Kalibrierkurve (Zusammenhang zwischen elek-trischer Leitfahigkeit und Matrixpotenial) durch Bodeneigenschaften. Bei Anwesenheit von Na-
36
7.3 Bodenfeuchtemessung 7 SENSOREN
trium wird die Leitfahigkeit erhoht, ohne dass der Boden feuchter wird. In sauren Boden laßtsich der Gipsblock mit der Zeit auf. Wegen dieser Probleme finden die Gipsblocke trotz derniedrigen Anschaffungskosten nur selten Anwendung.
Vergleich der Reaktionsgeschwindigkeit des Equitensiometers (gestrichelte Linie) mit Transducer-Tensiometer (durchgezogenene Linie)
Studie der Technischen Universität München: Bestimmung des Matrixpotentials in einem Mischwald mit Hilfe von Equitensiometern
Quelle: Theodor Friedrichs & Co. Meteorologische Geräte und Systeme GmbH, D-22858 Schenefeld
Abbildung 18: Statistik
37
7.3 Bodenfeuchtemessung 7 SENSOREN
7.3.1 Schaltungsentwurf
ImpedanzmessungEine praktische einfache Elektronikschaltung zur Uberwachung des Bodeneuchtegrades kannman durch varieren Leitfahigkeits der erde entwerfen. Dieser Sensor ist im Prinzip so aufge-baut, das man die Ausgangswiederstand (R4) messen kann. Der Sensor wird mit einer 12Vstabilisierten Spannungsquelle betrieben. Entscheidend ist bei diesem Sensor die Dimensionie-rung des Widerstands R55 , da dieser den Basisstrom fur den Transistor T1 bestimmt. Wirddieser Widerstand zu klein dimensioniert, meldet der Sensor schon ein HIGH Signal (5V) amEmitter des Transistors T2 bei ganz geringer Feuchte der Bodenerde. Im Falle einer zu großenDimensionierung des Widerstandes R55 wurde der Sensor nur ein HIGH Signal liefern, wennder Terarrienerde unter Wasser stehen wurde. Auch hier funktioniert der Sensor so, dass so-bald die Kontakte F.1 und F.2 im Erdreich durch genug Feuchtigkeit kurzgeschlossen werden,ein Basisstrom (IB1) im Transistor T1 impliziert wird. Der Emitterstrom (IE1) von T1 steuertnun den Transistor T2 auf, wegen IE1=IB2. Durch das Aufsteuern des Transistors T2 fangt dieLED an zu leuchten und am Emitter des Transistors T2 wird das benotigte digitale HIGH Signal(5V) abgegriffen . Das Signal am Ausgangswiederstand (R4) wird uber den BUS an die Mcuweitergeleitet und dort weiter verarbeitetBauteile:
• 2 Transistoren des Typs BC546C .
• 1 rote LED
• Widerstande: 1x1MΩ R2,1x4.7kΩ R3,1x330Ω R1,1x560Ω R4Ω,1x560kΩ R55
Dimensionierung und SimulationDie Dimensionierung der schaltung folgt durch die unterscheidung von zwei fallen
• 1. Leerlauffall
Beim Leerlauf stellen wir uns vor,sehr trockene Bodenerde.Diese vorstellung ergibt sehrhohe Ubergangswiderstand d.h die Elektrischeleitfahigkeit sterbt zu null.das hat die Wir-kung ,daß die T1 und T2 sperren .dem zu folge fahlt am (siehe Abb. 19 und Abb. 20)Ausganswiderstand (Sensor) eine Spannung mit Logischen 0V(Low) ab und die Diodebleibt aus.
• 2. Kurzschlußfall
Der Kurzschlußfall bedeutet,das die Erde der Terarrien elektrisch leitend das erreicht manPhysikalisch, indem man die Klemmen F1 und F2 Kurz schliesst.in diesem Fall ist dieUbergangswiderstand gleich (0) und wir messen am Ausgang (R4) eine Spannung (sieheAbb. 21 und Abb. 22) von 5V(High)
Layout und Schaltplan befinden sich im Anhang B.6.
38
7.3 Bodenfeuchtemessung 7 SENSOREN
5
5
4
4
3
3
2
2
1
1
D D
C C
B B
A A
Sensor
Überganswiederstand(Sensorklemmen)
V+
V-
V+
V-
99.55nV
0V
235.3mV
12.00V
0V
0V
12.00V
1.988uV
235.3mV
12.00V
12.00V
1.988uV
12.00V
1.988uV
<Doc> <RevCode>
Bodenfeuchtesensor
A
1 1Friday, May 15, 2009
Title
Size Document Number Rev
Date: Sheet of
F1
F2
0
0
C1
100u
R3
4.7k13.66pA
R4
560
177.8pA
R1
560
164.1pA
Q1
Q2N2222-1.988pA
15.64pA
-13.66pA
V1
12Vdc179.8pA
R55
560k
0A
R2
1meg
1.988pA
Q2
Q2N2222
13.66pA164.1pA
-177.8pA
R6
250
164.1pA
Abbildung 19: Schaltplan Leerlauf
Abbildung 20: Simulation Leerlauf
39
7.3 Bodenfeuchtemessung 7 SENSOREN
5
5
4
4
3
3
2
2
1
1
D D
C C
B B
A A
Sensor
Überganswiederstand(Sensorklemmen)
V+
V-
V+
V-
V+
V-
4.940V
0V
5.647V
5.012V
0V
0V
9.843V
7.162V
6.561V
12.00V
12.00V
12.00V
12.00V
12.00V
<Doc> <RevCode>
Bodenfeuchtesensor
A
1 1Saturday, May 16, 2009
Title
Size Document Number Rev
Date: Sheet of
F1
F1
0
0
C1
100u
R3
4.7k194.4uA
R4
560
8.821mA
R1
560
8.627mA
Q1
Q2N22221.476uA
192.9uA
-194.4uA
V1
12Vdc8.828mA
R55
560k8.639uA
R2
1meg
7.162uA
Q2
Q2N2222
194.4uA8.627mA
-8.821mA
R6
250
8.627mA
Abbildung 21: Schaltplan bei Kurzschluß der Klemmen
Abbildung 22: Simulation bei Kurzschluß der Klemmen
40
8 AKTUATOREN
8 Aktuatoren
8.1 Lichtsteuerung
Felix Schmidt
Allgemein Die Funktion dieses Aktuators besteht darin das Sonnenlicht und dessen Zeitver-halten zu simulieren. Er besteht aus drei unterschiedlichen Lampen:
1. Hier wird eine handelsubliche Gluhlampe mit 40 bis maximal 100 Watt verwendet. Diesesoll durch so genannten Phasenanschnitt gedimmt werden. Das fuhrt dazu, dass die auf-genommene Leistung und somit die Lichtintensitat, der Gluhlampe in einem bestimmtenBereich einstellbar wird. Die Leistung ist direkt proportional zum Zeitverlauf des Stroms,der in Sinusform aus dem 230V Netz entnommen wird. Die Flache unter der Kurve (pro-portional zum Integral) und somit die aufnehmbare Leistung lasst sich durch Anschneidender Phase verringern. Das wird uber eine Schaltung realisiert, die zum einen den Null-durchgang des Sinusverlaufs detektiert und dann die Stromzufuhr nach einer durch dieMCU gesetzten Verzogerung offnet. Ein von einem Mikrocontroller angesteuerte Triac isteine typische Umsetzung dafur.
2. Eine weitere Lichtquelle wird in Form einer UV-Leuchtstoffrohre eingebaut, um den Be-darf an UV-Licht einiger Lebewesen decken zu konnen. Diese wird uber ein Relais je nachzu simulierender Umgebung zugeschaltet, wenn der Dimmer die maximale Helligkeit er-reicht hat.
3. Ursprunglich sollte uber ein zweites Relais eine weitere, normale Leuchtstoffrohre zuge-schaltet werden konnen. Der Wirkungsgrad einer Gluhlampe bezogen auf den sichtbarenBereich des Lichtes ist relativ gering, da uber 95% der aufgenommenen Energie in In-frarotstrahlung umgewandelt wird. Mochte man eine hohe Intensitat im sichtbaren Spek-tralbereich erzeugen, entsteht ebenso viel Warmeenergie. Die entstehende Warme kannmit Hilfe des Heizelements auch auf effektiverem Weg erzeugt werden. Darum soll eineLeuchtstoffrohre dann zugeschaltet werden, wenn die Gluhlampe den maximalen Hel-ligkeitswert ereicht hat. Die Gluhlampe kann kann dann ganz abgeschaltet werden. DieTriacschaltung verbraucht naturlich auch Energie. Auch dieser Anteil an der Verlustener-gie wird eleminiert. Die nicht zu vernachlassigende Heizwirkung wird bei der Steuerungder Heiz-/ Kuhlsteuerung berucksichtigt. Leider ist es bis zuletzt nicht gelungen, den Feh-ler in der Ankopplung des einen Relais an den Mikrocontroller ausfindig zu machen undzu beheben.
Dimmer Die Technik des Phasenanschnitts ist die einfachste Moglichkeit bei Lasten, die mitsinusformigen Wechselsignalen versorgt werden, dynamisch die Leistungsaufnahme zu begren-zen. Das bezieht sich jedoch nur auf ohmsche und induktive Verbraucher. Kapazitive Lasten und
41
8.1 Lichtsteuerung 8 AKTUATOREN
TRIACOK
OK
Mikrocontroller
H-Brücke
H-Brücke
Relais 1
Relais 2
Sicherung
230V Netz
galvanische Trennung
+12VBUS
UV
Leuchtstoffröhre
Glühlampe
Abbildung 23: Blockschaltbild der Lampenschaltung
manche Schaltnetzteile konnen nur mit anderen Mitteln in ihrer Leistungsaufnahme begrenztwerden.Die Funktionsweise ist in Bild 25 dargestellt. Nach dem detektierten Nulldurchgang der Sinus-welle wartet die Schaltung eine einstellbares Zeitinterval, bevor der Strom durchgeschaltet wird.Dadurch veringert sich die aufgenommene Leistung, die proportional zum Integral uber derStromkurve ist. Das An- und Ausschalten wird mit einem Leistungshalbleiter, einem TRIAC,hier TIC225S, realisiert. Bild 26 ist ein schematischer Aufbau eines Triacs dargestellt. Im hoch-ohmigen Zustand, also wenn die RZL 2 (Raumladungszone 2) sehr breit ist und dadurch keineLadungstrager durch die NPNPN-Schichten fließen konnen, liegt zwischen MT1 und MT2 dievolle Netzspannung von 230 Volt an. Solange das Gate keine Verbindung zu MT2 hat ist immereine der beiden RLZs groß und die andere klein. Das hangt davon ab, ob gerade die positiveoder die negative Halbwelle anliegt. Wird nun der Ausgangs Pin PD3 high (+5V) gesetzt, dannfließt ein Strom von maximal I = (5V − 1, 5V)/330Ω = 10mA in die Leuchtdiode des Opto-kopplers, hier ein MOC3023, und der Ausgang des OK1 wird niederohmig. Somit liegt das Gateplotzlich auf dem Potential von MT2. Die jeweils große RLZ, in diesem Beispiel RLZ2, wirdvon Ladungstragern uberschwemmt, bis die Spannung zwischen MT1 und MT2 die kleiner wer-dende RLZ2 mit Ladungstragern uberspringen kann, diese uberschwemmt und dann die ganzeNPNPN-Schichten niederohmig wird. Die RLZ2 in diesem Beispiel schrumpft, weil sie plotzlichvon beiden Seiten das gleiche Potenzial sieht, und dann nicht mehr wie eine Sperrschicht berie-ben wird. Der Widerstand R12 dient hier dazu, den Strom durch den Ausgang des Optokopplerszu begrenzen. Dieser vertragt nur 130mA, also ist R = U/I = (230V−1, 3V)/(130mA) ≈ 1, 8kΩ.Der komplette Strom fließt nun durch den niederohmigen Triac, bis die Sinushalbwelle sich demNulldurchgang nahert. Dann wird die notige Minimalspannung an den NPNPN-Schichten unter-schritten und er wird wieder hochohmig. Dieser Zustand bleibt solange bis uber den Optokopplererneut gezundet wird.Wie in Bild 24 zu sehen, ist der Triac zusatzlich mit einer Glattungsspule L1 und einem Dampfungsglied,
42
8.1 Lichtsteuerung 8 AKTUATOREN
!"#$% !"#$%
!"##% !"##%
&'
()
)&
&'
()
)&
&'
()
)&
&'
()
)&
*'+
#),#),
&-.,&-.,
!"##%!"##%
/&
$0
!"##%
!"##% !"##%
!"##%
!"#$% !"#$%
&'
()
)&
&'
()
)&
&'())&&'())&
#),#),
&-.,&-.,
/&
$0
*'+
12"#)$#
*'+
##)34"$$56
&-%(,7&8
&))9:7;5<
&))=>
$-5<
?".&(
@.)7)-58
/5
0
$5)
*'+
()-5$-@
()-5$-@
/&
$0*'+
/5
0
$$)7&8
$$)7&8
A& A$
3& 3$
+&
+$
+#
+(
B&B$
B#B(
3#3(
& $ # ( 5 @ % .
60
$
35
3@ 3%
3.
A# A(
+5
+@
+% +.
B5B@
B%B.
&
$
2C&
@
(
B&)
3DB&$
$&E&
"&
>&
&
(
@
%
3B&
&
$#
(
2C$
B&#
B&5
$$
$&
$(
&$
&&
&(
<$<&
$$
$&
$(
&$
&&
&(
<$<&
&$#
60
#
F&G&
F&G$
F$G&
F$G$
F#G&
F#
G$
F(G&
F(G$
&$#(5
60
(
BD
B&&
B&
(
?B
4
6H
"
?+%?+@
?!&?!)
?+5
?+#
&50 $#)0
Abbildung 24: Schaltplan des Dimmers
C1 und R14, beschaltet. Das Dampfungsglied verhindert, dass die hochfrequenten Oberwel-len der 50Hz aus dem Netz in die Kabel ausserhalb der Platine gelangen und dort eventuellungeschirmt abgestrahlt werden. Die Strahlung konnte massive Storungen in anderen Geratenverursachen. Die Oberwellen entstehen, weil der Triac einen steilflankigen Schaltvorgang her-voruft. Bekannterweise ist die Leistung in einem Spektrum eines solchen Signals mit ”scharfenKanten“ nicht nur auf die Grundwelle verteilt, sondern auch zu beachtlichen Teilen in den Ober-wellen verteilt. Aus der Fourieranalyse ist bekannt, dass diese Kanten scharfer werden, destomehr Oberwellen mit signifikanten Leistungen im Spektrum zu finden sind. Die Oberwellenentstehen im Triac, somit kann der Triac wie eine Hochfrequenzquelle aufgefasst werden. DasRC-Dampfungsglied liegt nun parallel zu dieser Quelle. Die Impedanz der Reihenschaltung vonC1 und R14 ist frequenzabhangig, ZC,R(ω) = R + 1/jωC. Der Verlauf des Betrags der Impedanz|ZC,R(ω)| ist in Abbildung 27 skizziert. Die Frage ist nun ab welcher Frequenz f die Impedanzdes R-C-Glieds kleiner als die der Last wird, sodass die hochfrequenten Oberwellen uber diesenZweig fließen anstatt uber die Last. Bei einer Last von 25 Watt, was das Minimum darstellt,fließt ungefahr ein Strom von I = P/U = 25W/230V = 0, 11A, sodass die Impedanz der LastRL = U/I = 230V/0, 11A ≈ 2000Ω ist. Die Frequenz wird nun wie folgt berechnet:
43
8.1 Lichtsteuerung 8 AKTUATOREN
I
I
t
t
P
Abbildung 25: Phasenanschnitt
|ZC,R(ω)| =
√R2
14 +1
(ωC1)2 = RL (7)
⇒ ω =
√1
(R2L − R142)C2
1
(8)
⇒ f =1
2π
√1
(R2L − R142)C2
1
(9)
hier als Beispiel: f =1
2π
√1
(2000Ω)2 − (50Ω)2)(100nF)2 ≈ 800Hz (10)
Das bedeutet, dass ab 800Hz der Großteil des Stromes uber dem R14 in Warme umgewandeltwird. Wird die Last großer, dann wird der Lastwiderstand kleiner und die Frequenz steigt. Die800Hz entsprechen der 16.Oberwelle. Die Frage ist, was mit den darunter liegenden Oberwellen-anteilen passiert. Diese werden auf die Last ubertragen, jedoch konnen sie aufgrund der relativgeringen Frequenz sich nicht so gut von den Leitungen losen und zu Strahlung werden. Hier ent-scheiden die Kosten. Denn man konnte die anderen Oberwellen nur dann dampfen, wenn maneine großere Kapazitat wahlen wurde, die aber mehr kostet.Die Spule dient zwar auch als HF-Drossel, jedoch ist die Induktivitat L nicht groß genug, um einepassable Dampfung in dem betrachteten Frequenzbereich zu erzielen. Sie liegt bei 25W Last beieinigen MHz: f = 2000Ω/(2π100µH) ≈ 3MHz. Sie sinkt zwar mit steigender Last, kommt abernicht in den Bereich des RC-Glieds. Die Funktion dieser Spule ist den Stromverlauf zu glatten,den starke Stromanstiege konnen im Halbleiter zu hohen Stromdichten fuhren und ihn zerstoren.Liegt an einer entladenen Induktivitat plotzlich eine Spannung an, ist die Impedanz dieser ersteinmal sehr hoch, bis sich die Magnetfelder aufgebaut haben. Das heißt zu Anfang kann nochkein großer Strom fließen, sondern er wachst uber die Zeit langsam an. Dieses Verhalten glattet
44
8.1 Lichtsteuerung 8 AKTUATOREN
P
P
N
N
NN N
MT2
MT1 Gate
RLZ1
RLZ2
Abbildung 26: schematische Darstellung eines Triacs, hier als Beispiel: das PotenzialVMT1 > VMT2
den steilen Anstieg des Stromverlaufs. Um den Wert der Induktivitat L zu bestimmen, verwendetman die bekannte Differentialgleichung:
Uind = −L ·dIdt
(11)
Es wird davon ausgegangen, dass der Strom durch die Spule im Zeitinterval ∆t von 10% auf90% des Maximalwerts gestiegen sein soll. Die Gleichung 11 vereinfacht sich dann zu:
dt → ∆t,Uind = 230V, dI → Imax(0.9 − 0.1) = Imax0.8L =Uind
Imax·
∆t0, 8
(12)
Fur ∆t kann man zum Beispiel 100ns ansetzen. Hohere Werte wurde die Induktivitat groß undteuer machen. Hier ein paar Werte fur unterschiedliche Laststrome:
Laststrom in A P in W L in µ H0,11 25 2400,22 50 1310,43 100 66
Als guter Kompromiss wurde hier 100µH genommen, weil man davon ausgehen kann, das eherhohere Lasten betrieben werden. In Bild 28 ist der Stromverlauf mit der Glattungsinduktivitat inrot dargestellt.
45
8.1 Lichtsteuerung 8 AKTUATOREN
finHz
|Z|inOhm
R14
RL=2000
800
AbhierhatdasR-C-GliedeinegeringereImpedanzalsdieLast.
Abbildung 27: skizzierter Impedanzverlauf
I
t
Abbildung 28: Stromverlauf mit Glatungsinduktivitat
Nulldurchgangserkennung Um den Nulldurchgang zu erkennen, wird das 230V Netzsi-gnal mit einem Trafo auf 15V heruntertransformiert. Darauf folgt ein Widerstand, der den Ein-gangstrom des Optokopplers 2 begrenzt. Bei 1,2V Spannungsabfall an den Eingangsdidoden desOK2 sieht die Dimensionierung wie folgt aus:
R13 =UI
=(5V − 1, 2V)
20mA= 690Ω (13)
Da die maximale Leistung an R13 P = 14, 8 · 20mA = 296mW die zulassigen 250mW fur nor-male Kohleschichtwiderstande uberschreitet, muss hier ein 500mW-Typ gewahlt werden. DerEingangsstrom von 20mA erzeugt einen Basisstrom im Ausgangstransistor, welcher niederoh-mig wird und eine Strom von 22mA durch die Kollektor-Emitter-Strecke fuhren kann. Die Span-nung UCE uber der Kollektor-Emitter-Strecke muss 1,5V betragen, sodass der Transistor sicheraufsteuert. Daraus ergibt sich die Dimsionierung von R15:
R15 =UI
=(5V − 1, 5V)
22mA= 160Ω (14)
46
8.1 Lichtsteuerung 8 AKTUATOREN
UinV
t
-15V
t
t
I
V
20mA
PD3
F
3,5V
0V
-1,2V
1,2V
VTrafo
VOK2ein
Abbildung 29: Zeitverlaufe bei der Nulldurchgangserkennung
Der Eingang PD3 ist auf low(0V) wenn der Ausgangstransistor hochohmig ist und auf high (hier3,5V, wegen UCE) wenn der Transistor niederohmig ist. Der Zeitverlauf fur den Eingang PD3ist in Bild 29 graphisch dargestellt. Man sieht, dass man den Interrupt im Mikrocontroller aufder steigende Flanke auslosen lassen muss. Wie zu erkennen ist entsteht auch eine Verzogerung,die wie folgt berechnet werden kann:
t = 2 ·arcsin 1,2V
U
2π f= 2 ·
arcsin 1,2V15V
2π50Hz= 424µs (15)
Die Formel ist hergeleitet vom Zeitverlauf der Spannung U(t) = U sin(ωt), der mit der Schwell-spannung der Eingansdioden (U = 1,2V) gleichgesetzt wird.
Relais Um die Leuchtstoffrohren zu schalten wurden hier zwei bistabile Relais verwendet.Diese konnen auch ohne Dauerstrom in beiden Schalterpositionen ihren Schaltzustand beibehal-ten. Dazu wird mit einem unbegrenzten Strom ein Kern magnetisiert, der den Wechsler anzieht.Um den Kern wieder zu entmagnetisieren wird ein begrenzter Strom in Gegenrichtung durch dieSpule geleitet. Ein Widerstand von 220Ω = 12V/55mA begrenzt hier den Strom. Diese Umset-zung von bistabilen Relais mit nur einer Spule ist nicht sonderlich ublich und hat in der Anfangs-phase auch zu erhebliche Problemen gefuhrt, weil die Notwendigkeit den Strom zu begrenzennicht auf Anhieb im Datenblatt ersichtlich ist.Die Umkehrung wurde mit einer H-Brucke realisiert. In Bild 30 ist eine der beiden H-Brukendargestellt. Wenn der Pin PD6 auf high also +5V gesetzt wird, dann wird T5 niederohmig undder Strom kann von +12V in den Kollektor von Q1 und zur Basis von Q1 fließen. Hier fließt erdurch T3 in die Basis von T2. Q1 und T2 werden niederohmig und der Pin A1 des Relais wirdmit 12V verbunden. A2 wird uber T2 mit GND verbunden. Der Strom kann nun von +12V durch
47
8.1 Lichtsteuerung 8 AKTUATOREN
!"#!$#!%&'!(!!&&)*'#$!&&+,-./0+.01-2'+314./4,+56-789:;<+60,=-28071401;:+>!!%8"8$?24:8:-60/@#@AB&C3B--1(&'+'D
EFG>$ EFG>$
EFGG$ EFGG$
'H
I!
!'
'H
I!
!'
'H
I!
!'
'H
I!
!'
JHK
G!7G!7
'#L7'#L7
EFGG$EFGG$
M'
>N
I!#O>#"
>>!P'Q
R' R>
S' S>
K'
K>
KG
KI
T'T>
TGTI
SGSI
>>
>'
>I
'>
''
'I
U>U'
VI8'
VI8>
T%
9K$9K"
Abbildung 30: Schaltplan der Relaistreiberschaltung
die Spule des Relais nach GND fließen und der Wechsler wird in die An-Stellung gezogen. Nach14 ms geht der Pin PD6 wieder auf low, denn der Schaltvorgang benotigt 7ms.Wird PD7 auf high gesetzt werden T4, Q2 und T1 niederohmig. Jetzt ist der A2 Pin des Relaismit +12V verbunden und A1 mit GND. Wobei am Emitter von T1 der strombegrenzende Wi-derstand angeschlossen ist. Der Strom von maximal 55mA fließt jetzt in der entgegengesetztenRichtung durch die Spule und entmagnetisiert diese. Der Wechsler fallt in die Aus-Stellung. DieDioden parallel zu den Kollektor-Emitter-Strecken verhindern hohe Gegenspannungen an denempfindlichen Transistoren. Denn Induktivitaten erzeugen nach dem Abschalten eine Gegen-spannung um den Strom aufrecht zu erhalten.
Software Die Schaltung arbeitet so, dass durch einfaches high(+5V) setzen des jeweiligenAn-Pins inklusive low(0V) am korrespondierenden Aus-Pins die Relais geschaltet werden konnen.Dabei muss dieser Zustand ein paar ms gehalten werden, bevor alle Pins wieder auf low gehen.Hier ein Auflistung der Pinbelegung:
Pin Ein/Aus FunktionPD3(INT1) Ein Nulldurchgangsinterupt
PD5 Aus Zundung des TriacPB1 Aus Relais 1 anPB0 Aus Relais 1 ausPD6 Aus Relais 2 anPD7 Aus Relais 2 aus
Es folgt eine kurze Beschreibung des Dimmeralgorithmus. Bei eine steigenden Flanke an PD3
48
8.1 Lichtsteuerung 8 AKTUATOREN
wird die Interupt-Service-Routine zu
INT1_vect
aufgerufen. Hier wird ein Timer gestartet, der bei einem vorher gesetzten Comparewert einenInterupt auslost. Dieser neue Interrupt zundet dann den Triac und startet einen neuen Timer, dereinen festen Comparewert hat, der die notige Zunddauer reprasentiert. Der dynamische Compa-rewert vom ersten Timerlauf reprasentiert den Helligkeitswert indem er die Verzogerung in derStromzundung innerhalb der halben Periode angibt. Fur die Wahl des richtigen Prescalers, derdie Frequenz, mit dem der Timer hoch gezahlt wird in Abhangigkeit von der internen Taktfre-quenz (hier 4MHz) angibt, mussen Umrechnungen ausgefuhrt werden.Ein halbe Periode des 50Hz Singnals dauert 10ms. Die Helligkeitswerte bzw. Verzogerungszeiten,werden in 8bit langen Zahlen von 0 bis 255 angegeben. Wenn man einen Prescaler von 256 ver-wendet, dann ist die Timerfrequenz ftimer = 4MHz
256 = 15, 625kHz. Das entspricht einer Perioden-dauer von T = 64µs . Somit stehen 10ms
64µs ≈ 156 Helligkeitsschritte zur Verfugung. Nun muss der8bit-Wert, der von 0 bis 255 geht linear auf das Interval 0 bis 156 umskaliert werden:
x156 =35· x256 (16)
Das gilt, da zum Beispiel der Maximalwert von x256 auf den Maximalwert von x156 passen muss.
x156,max = 156 , x256,max = 255⇒ 156 = a · 255⇔ a ≈ 0, 61 ≈35
(17)
Wenn irgendwann der maximale Helligkeitswert erreicht wird, dann wird einfach die Funktiondes Relais 1 oder 2 aufgerufen und der Dimmerinterrupt ausgeschaltet.
Abschluss Die Inbetriebnahme war von einigen Pannen begleitet. Zu Begin ging weder derDimmer noch die Relaisansteuerung. Bei den Relais wurde die oben beschriebene Strombegren-zung nachtraglich auf der fertigen Platine aufgebaut. Desweiteren stellte sich heraus, dass deranfangs verwendete Triac fur den Betrieb im erstem Quadranten der Spannungs-Strom-Ebenevorgesehen ist. Die Schaltung wurde jedoch fur Triacs entworfen, die im ersten und dritten Qua-dranten betrieben werden. Es wurde ein entsprechender Triac nachgekauft und die Schaltungabgeandert. Sie funktioniert jetzt einwandfrei.
49
8.2 Heiz-/Kuhlsteuerung 8 AKTUATOREN
8.2 Heiz-/Kuhlsteuerung
Michael Doring
8.2.1 Einleitung
Dieser Abschnitt behandelt den Aktuator ”Heiz-/Kuhlsteuerung”. Aufgabe dieses Moduls ist derTemperaturausgleich und die Sicherstellung einer vorgegebenen Temperatur im Terrarium bzw.Habitat durch aktive Warmezufuhr oder -abgabe. Naheliegend ware hierfur eine Heizmatte odereinen Heizdraht zu verwenden, doch um eine umfassende Temperatursteuerung zu ermoglichensollte es auch machbar sein die Temperatur in einem Habitat abzusenken. Dieser, wenn auchseltene Fall, kann z.B. eintreten wenn das Terrarium an einem sonnigen Ort steht und so vonaußen ubermassig erwarmt wird. Die einzigen Bauteile welche sowohl heizen, wie auch kuhlenkonnen sind Thermoelektrische Module, sogenannte ”Peltierelemente”. Im Folgenden soll nunder Aktuator umfassend erlautert werden.
8.2.2 Aufbau und Struktur des Moduls (Hardware)
Der Aktuator besteht aus vier Baugruppen, dem Busteilnehmergrundmodul, dem Aktuatorboardund der ”aktiven” Einheit. Diese umfasst die Baugruppen Kuhlkorper, Lufter sowie Temperatur-sensor als einen Block sowie das Peltierelement. Bild 31 zeigt ein Foto des Gesamtaufbaus.
(a) Seitenansicht (b) Draufsicht
Abbildung 31: Gesamtmodul
Da das Busteilnehmergrundmodul einen ATmega48 enthalt, welcher fur die gesamte Kommuni-kation mit der MCU zustandig ist, werden samtliche Berechnungen und logischen Operationenin Software ausgefuhrt.
50
8.2 Heiz-/Kuhlsteuerung 8 AKTUATOREN
Die ”aktive” Einheit ist wie folgt aufgebaut: Die zwei Kuhlkorper sind auf die aktiven Flachenober- und unterhalb des Peltierelementes aufgebracht und mit Luftern versehen. Die Tempe-ratursensoren befinden sich zwischen den Kuhlrippen des Kuhlkorpers um eine relativ genaueTemperaturmessung sicherzustellen. Dieser Aufbau wird so in den Gehausedeckel eingearbeitet,dass das Peltierelement die Grenzschicht zwischen außen und innen darstellt. So wird sicherge-stellt, dass kein Luftaustausch mit der Umgebung stattfindet. Der Hauptvorteil eines solchengeschlossenen Systems ist ein hoherer Wirkungsgrad. Auch wird so eine Entfeuchtung des In-nenraumes vermieden. Diese soll an anderer Stelle durch einen Lufter geschehen.Die zwei Betriebsarten des Moduls sind in Abbildung 32 gezeigt. Die Grundschaltung des Ele-mentes ist Heizen. Zur Kuhlung wird das Peltierelement verpolt und der Vorgang kehrt sich um.Die Warmseite wird nun gekuhlt und die Kaltseite erwarmt sich.
(a) Heizbetrieb (b) Kuhlbetrieb
Abbildung 32: Betriebsarten (verandert nach memmert.com)
Temperatursensor, Lufter und Kuhlkorper
Die Aufgabe dieses Teilmoduls ist im Wesentlichen die Gleiche, wie sie in einem gewohnlichenComputer an der CPU auftritt. Es soll Abwarme von etwa 50 oder mehr Watt von einem Bauteilwegtransportiert und verteilt werden. Deshalb lag es nahe hierfur PC-Lufter aus einem Altbe-stand zu nutzen. Zum Einsatz kamen Gerate der Firma ”ARCTIC Cooling” mit der Typenbe-zeichnung ”Super Silent 4 Pro TC”.
Temperatursensor: Die verwendete Lufter- Kuhlkorper- Kombination enthalt einen einge-bauten Temperatursensor in Form eines NTC-Widerstands (Negative Temperature Coefficient).Ein solcher temperaturabhangiger Halbleiterwiderstand hat einen stark negativen Temperatur-koeffizienten und wird deshalb im Deutschen auch als ”Heißleiter” bezeichnet. Da dieser auch
51
8.2 Heiz-/Kuhlsteuerung 8 AKTUATOREN
original zur Drehzahleinstellung genutzt wurde bietet es sich an, ihn zur Temperaturbestimmungweiterzunutzen. Es ließ sich jedoch nicht herausfinden, was fur ein Typ herstellerseitig verwen-det wurde. Deshalb musste die Kennlinie approximiert werden.Die Kennlinie eines NTC ist nichtlinear und kann zum Beispiel durch die Steinhart-Hart Ther-mistor Gleichung [27, p. 497] ermittelt werden. Die Gleichung bildet den logarithmischen Zu-sammenhang zwischen der Temperatur (1/T) und dem Widerstand (ln(R)) ab. Im allgemeinenFall lautet sie:
1T
= A0 + A1 · ln(R) + · · · + AN · ln(R)N (18)
Wobei die enthaltenen Variablen T fur Temperatur in Kelvin und R fur den Widerstand beidieser Temperatur stehen. A0 bis AN sind die gesuchten Koeffizienten. Es reicht allerdings aus,die Formel bis zum Term dritter Ordnung auszuwerten, wobei der quadratische Term keinenGewinn bringt und deshalb ausgelassen wird. Die vereinfachte Gleichung lautet somit:
1T
= A0 + A1 · ln(R) + A2 · ln(R)3 (19)
Die Konstanten A0 bis A2 sind individuell fur jeden Thermistor. Man kann sie errechnen, indemman drei Temperatur- Widerstand- Wertepaare durch Messen ermittelt und fur diese das lineareGleichungssystem lost. Mit den ermittelten Konstanten kann nun die Temperaturkennlinie direkterrechnet werden. Die Kennlinie des verwendeten Thermistors ist in Abbildung 33 dargestellt.Man sieht, dass weitere gemessene Werte dem Kurvenverlauf entsprechen und die Berechnungbestatigen. Weitere Erlauterungen zum Approximationsverfahren sind in [6] zu finden und sol-len hier nicht vertieft werden.
!!" " !" #" $" %" &" '" (" )" *" !"""
!"
#"
$"
%"
&"
'"
("
)"
+,-.,/012/3435637
89:,/;10<:343=!37
3
3
>,-,;;,<,38,/1,
0../?@9-9,/1,3A,<<B9<9,
Abbildung 33: Kennlinie des ”Super Silent 4 Pro TC”- NTC-Widerstandes
52
8.2 Heiz-/Kuhlsteuerung 8 AKTUATOREN
Wichtig fur den gegebenen Aufbau ist der Wert fur 80C, da dieser die maximale Temperaturo-bergrenze fur die Heizseite des Peltierelements darstellt. Dieser Wert ist etwa 1,4kΩ. Auch wenndieser Wert im normalen Betrieb nicht erreicht wird, musste spatestens hier das Peltierelementnotabgeschaltet werden.Der NTC wird uber einen Spannungsteiler an einen ADC6-Pin des ATmega48 angeschlossen(Abbildung 35). Die Ausgangsspannungswerte des Spannungsteilers sind in Abbildung 34 auf-getragen. Durch den Vorwiderstand von 10kΩ wird die Kennlinie im Bereich von etwa 8C bis45C linearisiert. Um fur den gesamten Bereich von -10C bis 80C eine Linearisierung zu er-halten mussen die anderen Bereiche durch zusatzliche Geradengleichen angepasst werden. InTabelle 15 sind diese mit den dazugehorigen Temperaturbereichen angeben.
!!" " !" #" $" %" &" '" (" )" *" !"""
"+&
!
!+&
#
#+&
$
$+&
%
%+&
&
,-./-012304546748
93:;1<;4=/1<<3<;:2->?-0454@48
4
4
0-1?-4A-<<?><>-
?><-10>:>-02-4A-<<?><>-
Abbildung 34: Ausgangsspannung des Spannungsteilers
Intern arbeitet der ATmega48 mit einem 10Bit AD-Umsetzer. Diese Genauigkeit von 1024 (28)Werten ist mehr als ausreichend fur diese einfache Messschaltung. Die fehlenden zwei Bit wer-den als Rauschen interpretiert und verworfen. Nach der Analog-Digital-Umsetzung wird somitjedem Spannungswert eine binare Zahl zwischen 0 (0V) und 1023 (5V) zugeordnet. In Abbil-dung 36 ist nocheinmal die Kennlinie mit den dazugehorigen Linearisierungen durch die obengenannten Geradengleichungen gezeigt. Die Berechnung nach der AD-Umsetzung wird spatervollstandig in Software implementiert werden, daher wird hier nicht weiter darauf eingegangen.
6Analog-Digital-Converter
53
8.2 Heiz-/Kuhlsteuerung 8 AKTUATOREN
Abbildung 35: Spannungsteiler (Ausschnitt aus demGesamtschaltbild Abb. 68)
!"" #"" $"" %"" &"" '"" (""!)"
"
)"
!"
#"
$"
%"
&"
'"
("
*"
)""
+,-.,/012/3435637
896!3:,/1,343;,<=-0>37
3
3
/,0>,3?,@@>=@=,
>=@,0/=A=,/1,3?,@@>=@=,
Abbildung 36: ADC-Umsetzung mit Kennlinienapproximation
54
8.2 Heiz-/Kuhlsteuerung 8 AKTUATOREN
ADC-Wert Geradengleichung zur Temperaturbereichunterer oberer Approximation in C
< 120 außerhalb des Messbereichs > 81C120 191 y = −x/5 + 105 81C − 66C192 300 y = −x/7 + 94 66C − 51C301 800 y = −x/10 + 81 51C − 1C801 870 y = −x/7 + 115 1C − (−10)C> 870 außerhalb des Messbereichs < (−10)C
Tabelle 15: Kennlinienapproximation durch Linearisierung des NTC
Lufter: Die beiden Lufter werden durch eine Transitorschaltung direkt an zwei Ports des At-mega48 betrieben (vgl. Abb. 37). Wichtig sind die Dioden parallel zu den Lufteranschlussen,da ein Luftermotor eine induktive Last darstellt und es sonst zu hohen Stromspitzen beim ab-schalten des Motors kommt, welche die Transistoren zerstoren konnen. Angesteuert werden dieLufter durch die interne PWM (Pulsweitenmodulation) des Atmega48. So ist eine gute Dreh-zahlsteuerung moglich.Bei der Pulsweitenmodulation (engl. Pulse Width Modulation) wird die Ein- und Ausschaltzeiteines Rechtecksignals bei fester Grundfrequenz variiert. Das Verhaltnis tein/(tein+taus) wird als Tast-verhaltnis (engl. Duty Cycle (DC)) bezeichnet und liegt zwischen 0 und 1. Fur den Mittelwertder Spannung mit der Periode tein + taus = T gilt:
Um =1T
∫ T
0u(t)dt =
1T
∫ te
0Ueindt +
1T
∫ T
tein
Uausdt (20)
Um = Uaus + (Uein − Uaus) ·tein
tein + taus(21)
Uaus ist 0V und Uein ist die Betriebsspannung VCC von 12V. Daraus ergibt sich vereinfacht:
Um = VCC · DC (22)
In der Praxis hat sich ergeben, daß die Lufter eigentlich die ganze Zeit vollkommen angeschaltetbetrieben werden konnen, da der Prozeß des Erwarmens und Abkuhlens der Kuhlkorper sehrTrage ist. In den fertigen Aufbau wurde ein dritter Lufter eingefugt. Dieser ist ein ”Stutzlufter”und dient zur Kuhlung der Leistungseinheit. Er wird parallel zu einem der anderen Lufter be-trieben.Um die momentane Drehzahl des Lufters zu ermitteln dient der in Abbildung 37 gezeigte Tran-sitor Q9, welcher an den Tacho-Ausgang des Lufters angeschlossen ist. Die Widerstande R14und R15 konnen dabei recht willkurlich gewahlt werden. Es sollte lediglich darauf geachtet wer-den, dass kein unotig hoher Strom fließt. Am Tacho-Ausgang lasst sich ein Rechtecksignal mitder Amplitude von ca. 11 Volt messen (Abbildung 38). Die Periodenlange des Signals ist beimaximaler Drehzahl etwa 11ms, was einer Drehzahl von 90,9Hz bzw. 5454 Umdrehungen pro
55
8.2 Heiz-/Kuhlsteuerung 8 AKTUATOREN
Abbildung 37: Schaltung zur Taktruckgewinnung und PWM-Ansteuerung(Ausschnitt aus dem Gesamtschaltbild Abb. 68)
Minute (UPM) entsprechen wurde. Die meisten Tacho-Ausgange von Computerluftern gebenjedoch nicht die genaue Drehzahl aus, sondern Vielfache der Pole des eingebauten Motors (vgl.[15, p.3]). Der hier verwendete Motor hat vier Pole, was darauf hindeutet, dass die ermittelteDrehzahl durch zwei zu teilen ist. Laut technischer Beschreibung von ”Arctic-Cooling” [1] hatder Lufter eine maximale Drehzahl von 2800 UPM, was die Vermutung bestatigt.Zum Kuhlkorper muss hier nicht mehr erwahnt werden, außer das es sich um eine Standard-CPU-Rippenkuhlkorper handelt.
Peltier-Element Besonders interessant ist das Thermoelektrische Element. Es ist im Allge-meinen eher in Nischenanwendungen, wie z.B. dem Kuhlen von Hochleistungslasern, in CCD-Sensoren zur Rauschminderung sowie immer haufiger in Thermobehaltern fur Kfz und Boote zufinden [21]. Wie die Beispiele zeigen werden Peltierelemente mehr zum Kuhlen als zum Heizeneingesetzt, warum das so ist und welche Vor- und Nachteile ein solches Element hat, soll imfolgenden geklart werden. Daher wird hier das Peltier-Element etwas umfangreicher betrachtet,um dem Leser einen Einblick zu geben.
Die physikalische Grundlage bildet der thermoelektrische Effekt, von welchem es zwei Arten zuunterscheiden gibt. Zum einen beschreibt der Seebeck-Effekt die Entstehung einer elektrischenSpannung entlang eines Temperaturgradienten uber zwei unterschiedlichen miteinander verbun-dene Halbleitern und zum anderen gibt es den Peltier-Effekt, der die Entwicklung von Warmeoder Kalte an der Verbindungsstelle zweier unterschiedlicher Halbleiter, wenn Strom hindurch-
56
8.2 Heiz-/Kuhlsteuerung 8 AKTUATOREN
Abbildung 38: Oszillatorbild des Tacho-Ausgangs des Lufters bei maximaler Drehzahl
fließt, beschreibt. Benannt ist der Peltier-Effekt nach seinem Entdecker Jean Peltier (1785-1845).
Aufbau des Peltierelementes:
Der Peltier-Effekt beruht auf dem Kontakt von zwei Halbleitern unterschiedlichen Energienive-aus, daher besteht das Peltier-Element aus mindestens zwei oder mehr kleinen Quadern je ausp- und n-dotiertem Halbleitermaterial (Bismut-Tellurid, Silizium-Germanium), die abwechselndoben und unten durch Metallbrucken miteinander verbunden sind (vgl. hierzu Abb. 39 und 40).Die Metallbrucken bilden zugleich die thermischen Kontaktflachen und sind durch eine auflie-gende Folie oder eine Keramikplatte isoliert. Immer zwei unterschiedliche Quader sind so mit-einander verbunden, dass sie eine Reihenschaltung ergeben. Der zugefuhrte elektrische Stromdurchfließt alle Quader nacheinander. Abhangig von Stromstarke und -richtung kuhlen sich dieoberen Verbindungsstellen ab, wahrend die unteren sich erwarmen. Ein elektrischer Strom derStromstarke I setzt somit an der Grenzflache zwischen zwei verschiedenen Leitern pro Zeit einebestimmte Warmemenge frei. Die Effizienz fur das Kuhlen ist allerdings nicht besonders hoch,so muss fur 1 W Kuhlleistung etwa 3 W elektrische Leistung aufgebracht werden. Das ”Heizen”erfolgt also mit der 3-fachen Leistung gegenuber dem ”Kuhlen”. Bei typischer Umgebungs-temperatur (Raumtemperatur) lassen sich Temperaturdifferenzen ∆T von bis zu 69 Kelvin inAbhangigkeit der der Kuhlleistung Q erreichen. Bei Q = 0 wird ∆T = Tmax erreicht, bei Qmax istmeist das ∆T = 0. Die maximale Temperatur der ”Warmseite” liegt bei etwa 80C. Man solltedie Arbeitskennlinie ausserdem nie vollkommen ausgenutzen, da sonst bei zunehmender elek-trischer Leistung ein Effizienzverlust eintritt. Typisch ist etwa 2/5 bis 4/5 des maximalen Stromes
57
8.2 Heiz-/Kuhlsteuerung 8 AKTUATOREN
Imax ([24, p.6]).
Abbildung 39: Schematischer Aufbau (verandert nach hardinfo.net)
Wie in der Einleitung angesprochen werden Peltier-Elemente eher zum Kuhlen als zum Heizenverwendet. Das hangt damit zusammen, das Heizmatten oder -drahte deutlich wirtschaftlicherHeizen. Denn hier wird die gesamte Energie zu genau diesem Zweck verwendet. So ist es nichtverwunderlich, das sich in der Literatur meist nur Vergleiche mit herkommlichen Kompressor-Kuhltechniken finden. Das Peltier-Element ermoglicht die thermischen Vorgange lediglich durchdie oben beschriebenen Vorgange im Halbleiter und hat somit keine mechanischen Verschleiß-komponenten. Laut Datenblatt hat es eine Lebensdauer von etwa 200.000 bis 300.000 Schaltzy-klen.
Abbildung 40: Peltierelement - Einzelmodul
Da ein Terrarium meist im Bereich der Zimmertemperatur betrieben wird, sei hierzu angemerkt,dass die Peltier-Technik in der Nahe der Umgebungstemperatur besonders wirtschaftlich arbei-tet, da im Gegensatz zur Kompressortechnologie nur dann Energie benotigt wird, wenn geheizt
58
8.2 Heiz-/Kuhlsteuerung 8 AKTUATOREN
oder gekuhlt werden muss. Dabei kann die Heiz- oder Kuhlfunktion besonders fein dosiert wer-den. Wie bei einer Warmepumpe wird im Heizbetrieb Warmeenergie aus der Umgebungsluftentnommen und dem Innenraum zugefuhrt.Das Element wird durch Gleichstrom gesteuert. Die entsprechende Gleichspannung sollte dabeikeinen hoheren Wechselanteil als 10% aufweisen, da dann die Leistung des Elementes starkeinbrechen wurde. Wahrend der ”Aus”-Phase der PWM diffundiert die Warme zur ”Kaltseite”und erwarmt sie. Ein mit einer PWM angesteuertes Element wurde somit im schlimmsten Fallauf beiden Seiten nur etwa lauwarm werden. Da im Terrarium eine relativ lange Zeit benotigtwird bis sich die gewunschte Temperatur einstellt bzw. die Latenzzeit bis die Kuhlkorper dieWarme-/Kalte aufnehmen und wieder abgeben ebenfalls sehr lange ist, kann das Element durchein einfaches an/ausschalten gesteuert werden. Ein Schaltzyklus ist so geregelt, dass solangegeheizt wird bis der NTC der Warmseite 65C misst. Jetzt wird das Element abgeschaltet unddie Lufter drehen weiter bis die Temperatur unter 50C fallt. Diese Schalthysterese wird solangewiederholt bis die MCU kein weiteres heizen anfordert. Genauso erfolgt das Kuhlen, auch hierwird die Warmseite des Elementes uberwacht, das Kuhlen erfolgt quasi ”passiv”.Die Ansteuerung des Peltierelementes erfolgt mit einer Leistungs-H-Brucke. Da das Element inDurchschnitt etwa 3,5 A benotigt, musste hier schon auf etwas leistungsorierentierte Elektronikzuruckgegriffen werden. Die Transistoren Q3 bis Q6 konnen eine Leistung von bis zu 10A schal-ten. Ihnen sind die Transistoren Q2 und Q8 als Treiber vorgeschaltet. Die Widerstande R3 undR4 mussen den recht hohen Basisstrom der Leistungstransistoren von 120mA einstellen. Beietwa 10,3V ist das immerhin eine Verlustleistung von 1,24W. Eine H-Brucke hat einen Zustandder nie eintreten darf. Sind beide Eingange, hier die Transitoren Q2 und Q8, zeitgleich geoffnetentsteht in der Brucke ein Kurzschluss. Um diesen Zustand auszuschließen ist der Brucke eineTTL-Logik vorgeschaltet, deren Schaltzustande in Tabelle 16 zusammengefasst sind. So ist esmoglich mit zwei Ports des ATmega48 die Brucke an bzw. abzuschalten, sowie die Spannungam Peltierelement zu vertauschen. Man hatte die Logik auch direkt mit dem Mikrocontrollererzeugen konnen, sie stellt jedoch eine zusatzliche Sicherheit gegen Programmierfehler dar.
Port OK1 Port OK2 Ausgang 3 Ausgang 40 0 0 00 1 0 01 0 1 01 1 0 1
Tabelle 16: Logiktabelle des 4001
8.2.3 Regelung (Software)
Der Aktuator ist in sich abgeschlossen und kommuniziert mit der MCU nur uber einen Befehls-rahmen. Er erhalt von der MCU eine 8-Bit Integerzahl. Der Bereich von 0 bis 127 wird alsBefehl ”kuhlen” interpretiert. 128 ist der Zustand ”aus” und der Rest 129 bis 255 ist somit ein
59
8.2 Heiz-/Kuhlsteuerung 8 AKTUATOREN
Abbildung 41: H-Brucke mit zugehoriger Logik(Ausschnitt aus dem Gesamtschaltbild Abb. 68)
Aufruf zum ”’heizen”. In Abbildung 42 ist die Statemachine des Aktuatorcodes abgebildet.
60
8.2 Heiz-/Kuhlsteuerung 8 AKTUATOREN
pelt_init
pelt_action_init set_state
aus
pelt_observation
threshold
pelt_fan_stay_on
HEAT
COOL
temperature
under threshold
off
no
change
nachlauf
temperature
over threshold
pelt_off
Abbildung 42: Statemachine der Heiz-/ Kuhlsteuerung
Das Modul wird so initialisiert, dass alle Komponenten ausgeschaltet sind. Solange von außenkein neuer Befehl uber den Bus eintrifft bleibt das Modul in diesem Zustand. Wird eine 8-BitZahl durch den Bus in die ’state’-Funktion geschrieben, setzt diese entsprechend einen der drei-oben genannten Zustande und ruft die Initialisierung des neuen Status auf. Hiernach geht sie indie ’oberservation’-Routine. Diese uberpruft, durch auslesen des NTCs, ob die Warmseite desPeltierelementes die kritische Temperatur von 80C erreicht. Wenn dies der Fall ist wird dasPeltierelement abgeschalten, wenn nicht bleibt es angeschalten. Hiernach geht es zuruck zum’state’-Zustand, welcher uberpruft ob ein neuer Befehl vorliegt. So bleibt der Aktuator in sei-nem jeweils letzten Zustand, bis ein state-Wechsel eintritt und durchlauft die eben beschriebeneSchleife. Folgt dem ”Heizen” ein ”Kuhlen” oder andersherum bzw. kommt der ’aus’-Befehl,wird der ”nachlauf” aktiviert. Das bedeutet, das das Peltierelement abgeschalten wird, aber dieLufter anbleiben. In dieser Zeit wird auch kein neuer Befehl entgegengenommen. Der Nach-lauf soll thermische Spannungen im Peltierelement vermeiden, denn diese wurden z.B. durchUbergange von hohen auf niedrige Temperaturen bzw. andersherum entstehen und das Elementirreversibel durch starke mechanische Beanspruchung (losen der inneren Lotstellen) schadigen.
Diskussion In der Gruppe wurden verschiedene Arten einer moglichen Heizsteuerung be-sprochen und dabei festgestellt, dass eine Steuerung dieser Art die Interessanteste sei. Als Al-ternativen boten sich im wesentlichen nur Heizmatten bzw. Heizdrahte an. Diese sind jedoch
61
8.2 Heiz-/Kuhlsteuerung 8 AKTUATOREN
nur lokal einzusetzen und stellen somit eher eine partielle Heizquelle dar. Auch ist naturlichkein kuhlen mit diesen Alternativen moglich. Man sollte bedenken das die Heizfunktion diedauerhafte Grundfunktion darstellt, kuhlen als Funktion wird nur in seltenen Fallen notig sein.Daher ist es auch relativ irrelevant das es eine Zeit dauert bis der Aktuator vom Heiz- in denKuhlzustand ubergegangen ist, da sich erst die gesamte Peripherie umstellen muss.
62
8.3 Futterklappe 8 AKTUATOREN
8.3 Futterklappe
Louai Barake
8.3.1 Einleitung
Dieser Abschnitt beschreibt den Aufbau und die Steuerung der Futterklappe. Fur die Steue-rung der Futterklappe benotigt man eine Steuerung eines Schrittmotors. Fur diverse mechani-sche Steuerungen eignen sich Schrittmotoren perfekt. Denn Computertreiber sind einfach zuprogrammieren und im Unterschied zu Gleichstrommotoren sehr prazise. Schrittmotoren unter-scheiden sich in vielerlei Hinsicht: Schrittgroße, Unipolar-/Bipolarbetrieb, Kraft.
8.3.2 Beschreibung der Schaltung
Fur die Ansteuerung des Motors wurde eine H-Bruckenschaltung gewahlt. Damit ist es moglich,die Drehzahl und die Richtung des Gleichstrommotors zu steuern. Dazu hat die Schaltung vierDigitaleingange, welche je nach Status den Motor in vier unterschiedliche Zustande bringen.Die Schaltung besteht aus vier Mos-FET Transistoren und benutzt 12V als Spannungsversor-gung und 5V um die Steuerung zu betreiben.
Ansteuerung des Motors
Y1 Y2 Y3 Y4STATE1 0 1 0 1STATE2 1 0 0 1STATE3 1 0 1 0STATE4 0 1 1 0
Mit einem Schritt von oben nach unten in der Tabelle fuhrt der Motor einen Schritt nach rechts,mit einem Schritt von unten nach oben fuhrt der Motor einen Schritt nach links durch. Genaudas muss im Code umgesetzt werden. Daher gibt es insgesamt vier Zustande: STATE1, STATE2,STATE3 und STATE4.
Schrittmotor
Motortyp: Tandon KP4M2-203Bipolar Schrittmotor fur den universellen Einsatz. Der Motor besitzt zwei wellenenden.
Schrittauflosung 1.8
Strom pro Wicklung 0.15ASpannung pro Wicklung 12VWiederstand pro Phase 37.5 Ω
Gewicht 0.27Kg
63
8.3 Futterklappe 8 AKTUATOREN
Abbildung 43 zeigt die Kennlinie des Schrittmotors. Die Kennlinie zeigt den Zusand in dem derSchrittmotor sich befindet. Die Kurve (....) bezeichnen die Grenzkurven im Start/Stoppbereichund die Kurven (—-) bezeichnet die Grenzkurve im Beschleunigungsbereich.
Abbildung 43: Kennlinie des Schrittmotors (aus: [18])
Mechanik
Die Mechanik besteht aus folgendem Komponenten:
• einer Holztur
• einem Schienensystem, in dem die Holztur auf und ab fahrt
• dem Schrittmotor
• ein Gehause, wo das Futter gelagert wird
Im Anhang B.9 sind in Abbildung 71 das Gesamtschaltbild der Futterklappe, sowie in Abbildung70 das Platinenlayout dargestellt. In der Tabelle 18 findet sich die Stuckliste dieses Aktuators.In Abbildung 44 sieht man den fertigen Aufbau der Platine.
64
8.3 Futterklappe 8 AKTUATOREN
Abbildung 44: Fertige Platine der Futterklappe
65
A ENTWURF DER REGLERSTRECKE
Teil IIIAnhangA Entwurf der Reglerstrecke
Mohamed Goni
Das Ziel dieses Teils ist, zu zeigen, wie ein vollstandiges Temperaturregelungsystem entwor-fen werden kann und das von den ersten Grundsatzen an. Das Design eines Mikrocontroller-basierten Regelungsystems wird von der Modellierung bis zur Prozesskontrolle gezeigt. DerTerrariumsraum ist der Beispielprozess. Eine elektrisches Heiz- /Kuhlelement (vgl. Abschnitt8.2) wird verwendet, um die Temperatur der Luft im Terrarium zu andern und das Ziel ist es, dieTemperatur auf einen gewunschten Wert einzustellen.Wie in Abschnitt 7.1 gezeigt, wird die Lufttemperatur durch einen analogen Sensor (PT100,integrierte Schaltung) gemessen. Das Sensorausgangssignal wird in digitale Form umgewandeltund wird mit einer gespeicherten gewunschten Temperatur verglichen und zur Generierung ei-nes Fehlermeldungsignals benutzt (vgl Abb. 45). Es wird ein PI-Controller Algorithmus in denMikrocontroller implementiert, um das gewunschte Ausgangssignal zu erhalten.
Prozessregelung
!"#$%& Mikrocontroller!"#$%& Mikrocontroller '()*+)%&
Abbildung 45: Blockschaltbild
Das mathematische Modell Das Design des Controllers basiert auf der ”Ziegler-NicholasOpen-Loop Tuning-Methode” und damit ist eine genaues mathematische Modell des Systemsnormalerweise nicht erforderlich. Als erstes wird die Warme-Gleichgewichtsgleichung fur denTerarriumsraum aufgestellt.Die gepumpte Warme in das System = Die steigende Warme im System + Die Warmeverluste
• m1 = Masse der Luft im Terarrium
• m2 = Masse der Gehause (Glas)
• c1 = Spezifische Warmekapazitat der Luft cpG = 1,005 kJ/kgK im Gehause
• c2 = spezifische Warmekapazitat des Glases
I
A ENTWURF DER REGLERSTRECKE
!!
!"#$"%&'()*"%
!"
+"%%,%#(-!"!
Isolierung
"#$%&'()$"*$+!,$-.,/)(
""#%&'()0)'12,/)
Temperatursystem
"!#+")$$&23)')$4)(5)'!/2'
Abbildung 46: Temperatursystem
Beim Ignorieren der Warmeverluste durch die Wande des Glases und der Warmekapazitat desHeiz-/ Kuhlelementes kann man die folgenden Gleichungen schreiben:
• Die steigende Warme im System = (m1c1 + m2c2) · dTt .
• Die Warmeverluste aus dem Behalter = h · A · (T − Ta).
Wo, Ta die Umgebungstemperatur, A ist der Behalterflache und h ist eine Konstante, die von derOberflache und der Umgebungstemperatur abhangt.
E = (m1 · c1 + m2 · c2 ·dTt
) + h · A · (T − Ta) (23)
Wenn man davon ausgeht, dass die Umgebungstemperatur konstant ist und Tq = T − Ta. Kannman Gleichung 23) in 24) umschreiben:
E = (m1 · c1 + m2 · c2 ·dTq
t) + h · A · Tq (24)
oder vereinfachter wenn k1 = m1 · c1 + m2 und k2 = h · A, sowie unter Berucksichtigung derLaplacetransformation:
Tq(s)E(s)
=1
s · k1 + k2(25)
Diese Gleichung beschreibt ein System erster Ordnung mit der Zeitkonstante k1/k2. Die Glei-chung 25 beschreibt die Abhangigkeit zwischen der Lufttemperatur im System und der hinzu-gepumpten Warmemenge. Temperaturregelsysteme weisen immer eine Transport-Verzogerungauf. Diese ist die Zeit, in der die Temperatur des Mediums einen endlichen Wert erreicht. DieTransport-Verzogerungszeit und die Systemsparameter k1 und k2 werden durch den Sprungsant-worttest des System bestimmt.
II
A ENTWURF DER REGLERSTRECKE
Abbildung 47: Blockschaltbild der offenen Kette (Quelle: [22])
Systemidentifikation Die System-Identifikation wird durch anlegen eines Sprungseingangsi-gnals und Beobachtung der Reaktion der offenen Kette (Open-Loop-System) bestimmt.Die Temperatur der Luft im Behalter wird standig gemessen und erfasst. Fur die Simulation derSystemsprungantwort konnen Hardware wie DrDaq und Software wie Picolog oder labVIEWbenutzt werden. DrDaq ist eine kleine elektronische Karte, die an der parallelen Schnittstel-le des PCs angeschlossen wird. Die Karte dient zur Messung mit Sensoren der physikalischenGroßen wie z. B. die Lichtintensitat, Lautstarke, Spannung, Feuchtigkeit und Temperatur. Pico-log Software lauft auf einem PC und kann benutzt werden, um Aufzeichnung der Messungender DrDaq-Karte in Echtzeit. Die Einschaltdauer des Microcontrollersausgangs ist 10-Bit breitund kann von somit von 0 bis 1023 geandert werden. Der Duty Cycle kann variiert werden bisdas man einen Wert erreicht, mit dem das Ausgangssignal des Sensors stabilisiert wird. DieSystem-Parameter werden mit Hilfe der Ziegler-Nicholas Open-Loop-Schritt Antwort-Methodewie folgt abgeleitet.
Ziegler-Nichols PID-Tuning-Algorithmus Ziegler und Nicholas haben Werte fur die PID-Parameter einer Anlage auf der Grundlage des ”Open-Loop-und Closed-Loop-Tests” vorge-schlagenen.
OPEN-LOOP TUNING
Nach Ziegler und Nichols, kann ein Open-Loop-Prozess durch die Ubertragungsfunktion G(s)approximiert werden.
G(s) =k · esTD
(1 + S · Tl)(26)
• K ist die statische Verstarkung
• TD ist die Totzeit
III
A ENTWURF DER REGLERSTRECKE
• Tl Zeitkonstante bei einem Sprung
wobei die Koeffizienten K,TD,Tl durch eine einfache Open-Loop-Sprungsantwort des Prozessesbestimmt werden.
Abbildung 48: Sprungsantwort des Systems (Quelle: [7])
Ziegler-Nichols Verfahren schlagt dann die folgenden Controller-Einstellungen vor:
Ziegler-Nichols Verfahren (Open-Loop)Controller Kp TI TD
Proportional TIkTd
Proportional + Integral 0.9 TIkTd
3.3Td
Proportional + Integral + Derivative 1.2 TIkTd
2Td 0.5Td
Mit der PID Regelergesetz
U(s) = Kp[1 +1
TI s+ TDs]E(s) (27)
Diese Einstellungen fuhren zur Minimierung des absoluten Fehlerintegrals fur einen gegebenenSollwert. Es wird notiert, dass die Ziegler-Nicholas Methode keinen Auskunft daruber gibt, wel-che Regelertypen eingesetzt werden sollten. Aber meistens erreicht man die beste Performancemit Hilfe der PID-Regeler. Nach der Bestimmung der Transferfunktion der Regelstrecke G(s)wird der geschlossenen Regelkreis untersucht.CLOSED-LOOP TUNING
Ziegler-Nichols (closed-loop tuning) Methode bezieht sich auf den Test des geschlossenen Re-gelkreises. Eine Standardprozedur ist das folgende:
• Deaktivierung von I und D Anteile und den Test mit P-Glied
• Test:Eingabe einem Sollwert und Beobachtung der Fuhrungsprungsantwurts
IV
A ENTWURF DER REGLERSTRECKE
Lufter/Heiz-
El tPI-Regler!
SollwertT=60°
R(t)
U(t)
YE(t)
ElementPI ReglerR(t) -
Y
"#$%#&'()&*#+*,&"#$%#&'()&*#+*,&
Abbildung 49: Der geschloßene Regelkreis
• Wiederholung der Sollwertstest mit Erhohung (oder vermindern) der Reglerverstarkungbis die gewunschte Oszillation erreicht wird. Diese Verstarkung Ku wird ultimate gain”grundlegendeVerstarkung genannt.
• Lesung der stabilen Oszillationsperiode Pu
• Berechnung von Regelerparameter mit Hilfe der folgenden Formeln:
– Proportional und integral Regler:Kp = 0.45Ku und Ti = Pu/1.2
– Proportional-integral-derivative Regler:Kp = 0.6Ku, Ti = Pu/2 und TD = Tu/8
Abbildung 50: Ziegler-Nichols closed-loop Test (Quelle: [7])
Diskrete Softwarerealisierung des Regelers Der diskrete PID Regler wird nach der Z-transformation wie in Gleichung 28 geschrieben. Der Regler wird fur die parallele Programmie-rung entworfen und das bedeutet, dass die Ubertragungsfunktion in Summanden zerlegt werdenmuss und alle Summenterme (Moduls) sind dann parallel geschaltet. Ein Vorteil dieser Form istdie vereinfachte Realisierung von Schaltungen bzw. Implementierung des Algorithmus.
U(z) = E(z)Kp[1 +T
TI(1 − z−1)+ TD
(1 − z−1)T
] (28)
V
A ENTWURF DER REGLERSTRECKE
Abbildung 51: Struktureller Aufbau eines PID-Reglers (Quelle: [7])
Nach Uberschreiben der Gleichung 28:
U(z)E(z)
= a +b
(1 − z−1)+ c(1 − z−1) (29)
wobei a = Kp, b = KpT/TI und c = KpTD/T sind.
Abbildung 52: Parallele Realisierung der PID-Regler(Quelle: [7])
Fur die Programmierung konnen dann nach Abbildung 52 die folgenden Gleichungen geschrie-ben werden:
p(kT ) = b.e(kT ) + p(kT − T )q(kT ) = c.e(kT ) − ce(kT − T )
u(kT ) = p(kT ) + a.ek(t) + q(kT )
Man kann nun die folgende PDL (Seitenbeschreibungssprache) entwickeln um den PID Algo-rithmus zu implementieren:
• BEGIN
– DO FOREVER
∗ Get set point: r(kT)
VI
A ENTWURF DER REGLERSTRECKE
∗ Get system output: y(kT)
∗ Calculate error: e(kT) = r(kT) - y(kT)
∗ Calculate I term: p(kT) = be(kT) + p(kT-T)
∗ Calculate D term: q(kT) = ce(kT) - ce(kT-T)
∗ Calculate PID output:u(kT) = p(kT) + ae(kT)+q(kT)
∗ Send control to actuator
∗ Save variables: p(kT-T) = p(kT)
∗ e(kT-T) = e(kT)
∗ Wait for next sample
– ENDDO
• END
Ein praktisches Problem welches immer beim Entwurf von PID-Reglern eintritt, ist die Integral-wirkung auch bekannt als Integral windup”. Dieses verursacht langere periodische Uberschwingungenin der Sprungsantwort des Systems. Das Integral-Windup entsteht wegen des Uberlaufs im Mi-krocontroller und bedeutet, dass die Stellgroßen ihren maximalen Werte uberschreiten. Das wirddann durch die Integration der Fehler in langere periodische Zeiten. Ein Weg zur Beseitigungder integral windup Wirkung ist die Begrenzung der Stellgroße durch Saturation (Sattigung desSignals) in der Mikrocontroller in Minimum und Maximum. Abbildung 53 zeigt die PraktischeRealisierung des PID-Regelers mit Anti-Wind Up.
Abbildung 53: Praktische Realisierung der PID-Regler mit Anti-Wind up (Quelle: [7])
VII
A ENTWURF DER REGLERSTRECKE
Beim designen von digitale Regelsystemen ist die Wahl von Abtastintervallen sehr wichtig, dadie schnelle Abtastung große Abtastraten erfordert (Hohe Bits Stellen) d.h teure A/D Wand-lung. Auf der anderen Seite treten bei niedrigen Abtastraten Signalverluste auf. Es gibt mehrereAnsatze fur die Wahl der Abtastraten. Der folgende ist als Leitfaden fur die Wahl der minimaleAbtastrate gedacht:
• Fur die Sprungsantwort der PID-Regler, der durch Ziegler-Nichols open-loop Methodesimuliert wird, gilt
– T < TI/4
In Bezug auf Abbildung 53 wird die Implementierung des PID Regler Algorithmus mit Anti-Wind wie folgt notiert:
• BEGIN
– DO FOREVER
∗ Get set point: r(kT)
∗ Get system output: w(kT)
∗ Calculate error: e(kT) = r(kT) - w(kT)
∗ Calculate I term: p(kT) = be(kT) + p(kT-T)
∗ Calculate D term: q(kT) = cw(kT) - cw(kT-T)
∗ Calculate PID output:u(kT) = p(kT) +aw(kT)+ q(kT)
∗ IF u(kT) ¿ MAX
∗ p(kT) = p(kT-T) + MAX - u(kT)
∗ u(kT) = MAX
∗ ELSE IF u(kT) ¡ MIN
∗ p(kT) = p(kT-T) + MIN - u(kT)
∗ u(kT) = MIN
∗ END IF
∗ Send control to actuator
∗ Save variables: p(kT-T) = p(kT)
∗ w(kT-T) = w(kT)
∗ Wait for next sample
– ENDDO
• END
VIII
A ENTWURF DER REGLERSTRECKE
Tempraturegelercode /*****************************************************************************Fur eine Temperaturregelung reicht eigentlich ein PI-Regler.Temperaturregelungen sind meistrelativ trage, es kommt aber wirklich darauf an, was man genau aufwarmen mochte. Interessantware hier zu wissen, wie schnell von einer niedrigen Temperatur A zu einer hoheren TemperaturB aufgeheitzt werden kann.Regler:PROJECT: PIFILE: PI.CDATE: 22.6.2009PROCESSOR: Atmega128COMPILER: Avrstudio CThis program implements the PI algorithmThe PI parameters are: a = 10.9b = 0.37 T = 20 seconds R = 300 mV (30C)Der Regler wird periodisch aufgerufen. Die Periodendauer last sich hier schlecht angeben, sie istabhangig von der Tragheit des Systems und die Wertebereiche von Regelabweichung und PWM,ich wurde sie einfach mal auf 1. Regelabweichung ist die Differenz von Istwert und Sollwert, derIstwert wird zum Beispiel mit dem ADC gemessen, an dessen Eingang der Pt100(RTD)-Sensorangeschlossen ist. ISumme muss beim Start der Regelung initialisiert werden. Hier erfolgt dieIntegration in der Regelroutine. PWM ist zum Beispiel der Wert fur die Pulsweitenmodulation,die ein Heizelement ansteuert.Ein Verfahren, um P und I experimentell zu ermitteln:1-Erst einmal den I-Anteil entfernen.2-Den P-Anteil (also P) so wahlen, dass die Temperatur nachgeredet wird, aber nicht ganz dieSolltemperatur erreicht, sonst kommt es zum Uberschwingen.3-Dann den I-Anteil wieder hinzufugen, I ist kleiner als P . I so wahlen, dass der Sollwertmoglichst schnell erreicht wird, aber es nicht zum Uberschwingen kommt.Regelabweichung = Istwert - Sollwert ; Regelabweichung ermittelnISumme = ISumme + I*Regelabweichung ; IntegrationPWM = P*Regelabweichung + ISumme ; Stellgroße******************************************************************************/
Weitere Informationen finden sich unter [4], [7] sowie [22].
IX
A ENTWURF DER REGLERSTRECKE
C:\Dokumente und Einstellungen\M.Nour\Desktop\PID_controller-Terarrien\Terarienregler.c
/*************************************************************************************Autor Mohamed Goni**************************************************************************************/#include <avr/io.h>#include <inttypes.h>#include <util/delay.h>#include <avr/io.h>#include <math.h>#include <stdlib.h> //Konstantentypedef struct
int Ta; // Abtastzeit in msint I; // Integralanteilint Kp; // Verstärkungint D; // Differenzieller Anteilint e; // Regelabweichungint esum; // Summe der Regelabweichungenint ealt; // Regelabweichung zum ZP z-1
PID_Einstellung; // Struktur PID_Einstellungen erzeugen //Prototypen void PID_Init(void); int PID_Cyclic(int, int, PID_Einstellung*); PID_Einstellung Regler1; // Variable Regler1, je nach Bedarf erweiternvoid main(void)
PID_Init();int Ausgang, w,x;while(1)
Ausgang = (PID_Cyclic(x,w,&Regler1) / 4); void PID_Init(void) // In der Init müssen die Reglereinstellungen gemacht werden //Ta<T1/4;T1 sprungantwortzeit aus Ziegler-Nicholsopen-loop verfahern Regler1.Ta=10; Regler1.I=100; Regler1.D=0; Regler1.Kp=1; Regler1.esum=0;
Regler1.e=0; // Für weiteren Regler einfach Neue Variable erstellen Regler1.ealt=0; // und hier Werte mit Regler2.xx=0 einstellen
int PID_Cyclic (int x, int w, PID_Einstellung* PID)
int y;PID->e = w - x; // aktuelle Regelabweichung bestimmenif ((y < 1023)&&(y > 0)) // bei Übersteuertem stellglied Integration einfrieren
// (Anti-Windup) PID->esum = PID->esum + PID->e; // Summe der Regelabweichung aktualisieren y = (PID->Kp*PID->e)+(PID->I*PID->Ta*PID->esum)+(PID->D*((PID->e-PID->ealt))/PID->Ta); // Reglergleichung
PID->ealt = PID->e; // Regelabweichung für nächste Abtastung merkenif (y > 1023) // Stellgröße auf 0..1023 begrenzen (10 bit PWM)
y = 1023;
if (y < 1) y = 0;
return y; // Stellgröße zurückgeben
Page: 1 X
B SCHALTPLANE/LAYOUTS
B Schaltplane/Layouts
B.1 Master Control Unit
470
100n
100n
10k
16 MHz
100n
100n
R1
C9
C16
R13
Q2
C11
C12
1
6
15 9
6
2,54
F091
12
1
15 9
6
2,54
F09
1
1
1
20
1
IC1C1C2
SD
/MM
C
C3
C4
C5
C6
IC2
ISP
RS
232G
PIO
IC5
C7
C8
C15C17
C18
DC
F77
IC6
IC13
R2
R3R
4R
5
RS
485
R6R7R8R9
R10R11R12
PO
WE
R
RE
SE
T
R14
R15
R16
R17
R18
R19
R20
R21
IC7
IC8
IC3
IC4
R22
R23
D4
C14
R24
C20C21
L1
R25
R26
R27
C10
C13
ZD2
ZD1
ZD3
DIS
PLAY
BACKLIGHT
ME
GA
128-A
22p22p
FPS
009-30003
1u
1u
1u
1u
MAX232ECWE
MAX481CSA
100n
100n
100n
100n
100n
78L05SMD
74HC
T125D
10k860860
860470470470470470470470
470470
470470
470470
470470
4066D
4049D
4066D
MC34063AP
1
180
SB
130
100u/16V
180
100u/25V
500p10k
2.2k
1.0k
100n
330n
3.3V Z D
iode
3.3V Z Diode
3.3V Z D
iode
Abbildung 54: Boardlayout der MCU
XI
B.1 Master Control Unit B SCHALTPLANE/LAYOUTS
Not connectedNot connected
Not connected
Not connected
Reserved
Reserved
CSELDINGND
GND
+3.3VSCK
DOUTN/CN/C
Reserved
Reserved
Reserved
Reserved
Reserved
Masseverbindung manuell
Masseverbindung manuell
Masseverbindung manuell
ACHTUNG: Wird von der Rückseite eingelötet
Wird auf bottom
bestückt
Wird auf bottom bestückt
An Taster o.ä. Wird auf bottom
bestückt
MEG
A128-A
22p22p
GNDGNDGND
FPS009-30003
470
1u1u
1u
1u
MAX232ECWE
MAX481CSA
100n100n
100n
100n
100n100n
100n78L05SM
D
74HCT125D
74HCT125D
74HCT125D
74HCT125D
10k
860
860
860
470470470470470470470
10k
16 MHz
470470470470470470470470
4066D
4066D
4066D
4066D
4049D
4049D
4049D
4049D
4049D
4049D
100n
4066D
4066D
4066D
4066D
100n
MC
34063AP
1
180
SB130
100u/16V
180
100u/25V
500p
10k
2.2k
1.0k
100n330n
3.3V Z Diode
3.3V Z Diode
3.3V Z DiodePF0(AD
C0)
61PF1(AD
C1)
60PF2(AD
C2)
59PF3(AD
C3)
58PF4(AD
C4/TC
K)57
PF5(ADC
5/TMS)
56PF6(AD
C6/TD
O)
55PF7(AD
C7/TD
I)54
(RXD
/PDI)PE0
2(TXD
/PDO
)PE13
(XCK0/AIN
0)PE24
(OC
3A/AIN1)PE3
5(O
C3B/IN
T4)PE46
(OC
3C/IN
T5)PE57
(T3/INT6)PE6
8(IC
3/INT7)PE7
9
(T2)PD7
32
(T1)PD6
31
(XCK1)PD
530
(IC1)PD
429
(TXD1/IN
T3)PD3
28
(RXD
1/INT2)PD
227
(SDA/IN
T1)PD1
26
(SCL/IN
T0)PD0
25
(A15)PC7
42
(A14)PC6
41
(A13)PC5
40
(A12)PC4
39
(A11)PC3
38
(A10)PC2
37
(A9)PC1
36
(A8)PC0
35
(OC
2/OC
1C)PB7
17
(OC
1B)PB616
(OC
1A)PB515
(OC
0)PB414
(MISO
)PB313
(MO
SI)PB212
(SCK)PB1
11
(SS)PB010
(AD6)PA6
45(AD
7)PA744
(AD5)PA5
46
(AD4)PA4
47
(AD3)PA3
48
(AD2)PA2
49
(AD1)PA1
50
(AD0)PA0
51AVC
C64
AGN
D63
AREF
62
XTAL124
XTAL22352
VCC
2153G
ND
22
PG3(TO
SC2)
18
PG4(TO
SC1)
19
PG0(W
R)
33PG
1(RD
)34
PG2(ALE)
43
RESET
20
PEN1
IC1
C1C2
SD/MMC
123456789
R1
C3
C4
C5
C6
C1+1
C1-3
C2+4
C2-5
T1IN11
T2IN10
R1OUT12
R2OUT9
V+ 2
V- 6
T1OUT 14
T2OUT 7
R1IN 13
R2IN 8
IC2
1615GND VCC
IC2P
135
ISP
246
162738495
RS232
123456789
101112
GPIO
RO1
RE/2
DE3
DI4
6
7
A
B
IC5
85GND VCC
IC5P
C7
C8
C9
C15
C16
C17
C18
123
DCF77
VIN8
VOU
T1
2367
IC6
GN
D
1
2 3IC13A
4
5 6IC13B
10
9 8IC13C
13
1211
IC13D
7 14IC13P
GND VCC
R2
R3
R4
R5
16
27
38
49
5
RS485
R6R7R8R9R10R11R12
12345
POWER6
R13
1 2R
ESET
Q2
R14R15R16R17R18R19R20R21
A1 B 2
C13
IC7A
A4 B 3
C5
IC7B
A8 B 9
C6
IC7C
A11 B 10
C12
IC7D
714
IC7P
VDD
VSS2
3IC
8A
4 5
IC8B
6 7
IC8C
10 9
IC8D
12 11
IC8E
15 14
IC8F
81
IC8P
VDD
VSS
C11
A1 B 2
C13
IC3A
A4 B 3
C5
IC3B
A8 B 9
C6
IC3C
A11 B 10
C12
IC3D
714
IC3P
VDD
VSSC12
DR
C8
IPK7
VCC
6
CO
MP
5
SWC
1
SWE
2
TC3
GN
D4
IC4
R22
R23
D4
C14
R24
C20
C21
L1
R25
A E
S
R26R
27
C10
C13
ZD2
ZD1
ZD3
135
246
79
810
111315
121416
1719
DISPLAY
1820
12
BACKLIGHT
D[0..7],BLEN,RESB,CSB,RS,M86,WRB,RDB,+5V,+15V,GND
IO[0..7],CSEL,MISO,MOSI,RXD/PDI,TXD/PDO,CTS,RTS,RXD1,TXD1,SCK,D[0..7],BLEN,RESB,CSB,RS,M86,WRB,RDB,RE,DE,DCF77INT,GPIOINT,RESET,RESET,GPIOSIG,+3.3V,+5V,+12V,+15V,-5V,GND
ISP_RESET,ISP_MISO,ISP_MOSI,ISP_SCK,+5V,GND
SD_CSEL,SD_MISO,SD_MOSI,SD_SCK,+5V,+3.3V,GND
GND,CTS,RTS,RXD2,TXD2,+5V,-5V
DCF77INT,+5V,GND
GND
GNDGND
GND
GN
D
GN
D
GNDGND
GND
GND
GN
D
GNDGND
GND
GND
GND
GN
D
GND
GND
GND
GND
GND
GNDGND
GND
GND
GND
GNDGND
GND
GND
GND
GND
GND
GND
GND
GND
GND
GND
GND
GND
GND
GND
GND
GND
D0
D0
D0D0
D1
D1
D1D1
D2
D2
D2D2
D3
D3
D3D3
D4
D4
D4D4
D5
D5
D5D5
D6
D6
D6D6
D7
D7
D7D7
RDB
RDB RDB
RD
B
WRB
WRB WRB
WR
B
M86
M86M86
M86
RS
RSRS
RS
CSB
CSBCSB
CSB
RESB
RESB RESB
RESB
+15V
+15V+15V
+15V
+5V
+5V
+5V+5V
+5V
+5V
+5V+5V
+5V
+5V+5V
+5V +5V
+5V
+5V
+5V+5V
+5V
+5V
+5V+5V
+5V
+5V
+5V
+5V
+5V
+5V+5V
+5V
+5V
+5V
SCK
SCK
SCK
MO
SI
MOSI
MISO MISO
RESET
RESET
RESET
RESET
RESET
RESET
ISP_SCK
ISP_SCK
SD_SCK
SD_SCK+3.3V
+3.3V+3.3V
+3.3V
+3.3V
SD_CSEL
SD_CSEL
TXD/PD
O
TXD/PDO
TXD/PDO
RXD
/PDI
RXD/PDI
RXD/PDI
ISP_RESET
ISP_RESET
ISP_MOSIISP_MOSI
ISP_MISOISP_MISO
RXD2
RXD2
TXD2
TXD2
-5V
-5V-5V
TXD1
TXD1
TXD1TXD1
RXD
1
RXD1RXD1
RXD1
DC
F77INT
DCF77INT
DCF77INTDCF77INT
IO0
IO0IO0
IO0
IO1
IO1IO1
IO1
IO2
IO2IO2
IO2
IO3
IO3IO3
IO3
IO4
IO4IO4
IO4
IO5
IO5IO5
IO5
IO6
IO6IO6
IO6
IO7
IO7IO7
IO7
GPIO
INT
GPIOINTGPIOINT
GPIOINT
XTAL2
XTAL1
RE
RERE
RE
DE
DEDE
DE
+12V+12V
+12V
CSEL
CSEL
SD_MOSI
SD_MOSI
SD_MISO
SD_MISO
BLEN
BLEN BLEN
BLEN
RTS
RTSRTS
RTS
CTS
CTSCTS
CTS
GPIO
SIG
GPIOSIG
GPIOSIG
RESET
RESET
RESET
+
+
+
+
ABCDEFGHIJK
ABCDEFGHIJK
12
34
56
78
910
1112
1314
1516
+
+
150 uH / 100 m
A
Schaltplan übernomm
en aus Dokum
entation zum Bausatz von Pollin.de
Spule aus Bausatz
Ansteuerplatine f. Sharp M078C
KABest. N
r. 120 487
Interner Pull-Up
an PEN
Abbildung 55: Schematic der MCU
XII
B.2 Busteilnehmergrundmodul B SCHALTPLANE/LAYOUTS
B.2 Busteilnehmergrundmodul
!"#$%&'$()*
#+,
-+./0.12,
%!34
))5
))5
#+,
.&*/6
0**70**70*8
9/:
90): 9/:
#+,
%.7
0*;
9/: 0**7
<-=1=<+
9/:
#+,
90):
#+,
0**79/:
9/:
#+,
90):=>?@A
9/:
#+,
-BCDBE@CFB@G)
-BCDBE@CFB@G0
HE@II@
=2/J-KHL0.
=2.JM6$N)O6P-K)L&
=21JM6$N0O6P-K0L.
#+,Q
#+,/
:KK%
:KK1
$#+,)0
$R"S)*
$:KK0&
=2%J!<-PL01
=2QJ!P-<OPK)L0/
=2)J--OPK02L0%
=20JPK0$L0Q
=2*J<K=L0)
=,.J$<+0L00
=,1J$<+*L0*
=,/J60LT
=,%JMKHO6*L)
=,QJ<+60L0
=,)J<+6*LQ)
=,0J6M,LQ0
=,*JRM,LQ*
$,K.))
$,K10T
=K/J$,K/O-KNL)&
=K%J$,K%O-,$L).
=KQJ$,KQL)1
=K)J$,K)L)/
=K0J$,K0L)%
=K*J$,K*L)Q
=K1JOR"-"6L)T
<K0
RP0
R"O)
,"Q
,<%
1
.
$
2
<K)
& /#+,:KK
<K)=
)0
U0
K0
K)
:<0
)
:PQ
<KQ
#+,
KQK%K/
K&
R0 K1
0
Q
/
-:Q
)
%
1
K.
0
)
Q
V=0
0
)
Q
%
/
1
.
&
-:)
0
)
Q
%
/
1
.
&
T
-:0
M)'0
M)')
M)'Q
M)'%
0
)
V=)
#+,
#+,
9/:
9/:
!<-P-KH
R"-"6
!P-<
$,K*
$,K*$,K%
$,K%
$,K0$,K0$,K)$,K)
$,KQ
$,KQ
$,K1
$,K1
$,K.
$,K.
=2)
=2)
=20
=20
=2*=2* =,.
=,.
=,1
=,1
=,/
=,/
=,%
=,%
=,Q
=,Q
9
Abbildung 56: Schaltplan Busteilnehmergrundmodul
XIII
B.2 Busteilnehmergrundmodul B SCHALTPLANE/LAYOUTS
Abbildung 57: Layout Busteilnehmergrundmodul
XIV
B.3 Busteilnehmer Piggyback Board B SCHALTPLANE/LAYOUTS
B.3 Busteilnehmer Piggyback Board
!"#$%
&'()*$+,$-*.$/0
&'()*$+,$-*.$/1
1
0
2
3!1
1
0
2
4
5
6
7
8
9:0
1
0
2
4
5
9:1
6
7
8
;<=>
<=>
?5:
?5:
@>AB
@>A4
@>A1
@>A0
@>A2
@>A6
@>A7
!&0
!&1
!&B
!>7
!>6
!>5
!>4
!>2
?10:
Abbildung 58: Belegung der Buchsenleisten des Busteilnehmer Piggyback Board
Abbildung 59: Layout Busteilnehmer Piggyback Board
XV
B.4 Temperatursensor B SCHALTPLANE/LAYOUTS
B.4 Temperatursensor
Abbildung 60: Eagle Schematics des Temperatursensors
Part Package Library WertR1 0207/10 rcl 47kR3 0207/10 rcl 4, 7kR4 0207/10 rcl 1kR5 0207/10 rcl 1kR6 0207/10 rcl 51kR7 0207/10 rcl 51kR2 PT − 10S rcl 0 − 1kRt PT − 10S rcl 100 − 139C1 C025 − 050X050 rcl 100nF
IC1A,IC1B,IC1C LM324N DIL14 linear
Tabelle 17: Partliste des Temperatursensors
XVI
B.4 Temperatursensor B SCHALTPLANE/LAYOUTS
Abbildung 61: Eagle Layout des Temperatursensors
XVII
B.5 Luftfeuchtemessung B SCHALTPLANE/LAYOUTS
B.5 Luftfeuchtemessung
!"#$%
&'()'*$(+'$,-
&'()'*$(+'$,.
/01-23
/01-23
/01-23
/01-23
.445
.445
.445
.445
.445 .65 .44565
.447
.47
839
.:-5
-;5
<=4>
2;5
2;5
.47
2:;?
2:;?
2:;?
@A&24
@AB.CC
2;D
.32.2=
/01-23
/01-23
/01-23
/01-23
/01-23
/01-23
/01-23
/01-23
.47.447
2;7
.0
--45
.:-5
--45
.40
-:6 -:6
<=4>
2;5 2:;5
4:.?
4:.?
65
839
839
839
839
839
839
839
839
839
E.-B
.45
839
839839
839 839 839 839839 839 839 839
E.-B
. - 1
F!.
. - 1 2 6 < ; =
&B-
. - 1 2 6
&B.
< ; = C
-1
.
G.9A
< 6
;
G.9@
C
.4
=
G.9H
.1
.-
.2
G.99
2 ..
>..:-
>..:.
>C:.
>C:-
>C:1 >1. >..:1AI
&
>.4
H.-
H1
>.;
>-1
>.1
>-<
>.2
H.
H;
H<
H.6
92J@A&-.
@ABCC
H6
91
- 1
. G1A
< 6
; G1@
C
.4
=
G1H
.1
.-
.2
G19
2 ..
- 1
.
G-A
< 6
;
G-@
C
.4
=
G-H
.1
.-
.2
G-9
2 ..
H-H2
H=
/&!. /&!-
>.
>-
>1
>2
>;
/&!1
9. 9-
>.=
>6
>14 >-C
H.<
H.1
A I
&
>.-
AI
&
><
839
839
E6B
E6B
A9H4
A9H2
A9H.
A9H-
A9H1
A9H<
A9H;
!@-
!@.
!@4
!9;
!9<
!96
!92
!91
E.-B
E
E
E
Abbildung 62: Feuchtesensorschaltung (Eagle)
XVIII
B.5 Luftfeuchtemessung B SCHALTPLANE/LAYOUTS
Abbildung 63: Layout Feuchtesensorschaltung (Eagle)
XIX
B.6 Bodenfeuchtesensor B SCHALTPLANE/LAYOUTS
B.6 Bodenfeuchtesensor
16.5.2009 01:25:15 D:\Eigene Dateien\Pspice\blumengiesser-N1.sch (Sheet: 1/1)
BC547
15k
120k
4.7k
330
BC547
2v56
0
GND
+12V
+12V
T1
R1F
R2
R3F
R4S
T4
LED
1
R5F
LSP
1
LSP2
-1-2
X1
A
B
C
D
1 2 3 4 5 6
A
B
C
D
1 2 3 4 5 6
Sensor
plus 12v
Masse
sensor minus
K1 minus
K2 plus
Abbildung 64: Simulation bei Kurzschluß der Klemmen
Abbildung 65: Layout
XX
B.7 Lichtsteuerung B SCHALTPLANE/LAYOUTS
B.7 Lichtsteuerung
Abbildung 66: Schaltplan Lichtsteuerung
XXI
B.7 Lichtsteuerung B SCHALTPLANE/LAYOUTS
!"
#$
%!
"#
$%
!"
##
%!
"#
#%
&'())&
&'())&
&'())&
&'())&
*'
+
#)
,#
),
&-.
,&
-.,
!"
##
%!
"#
#%
/&$0
!"
##
%
!"
##
%!
"#
#%
!"
##
%
!"
#$
%!
"#
$%
&'())&
&'())&
&'
()
)&
&'
()
)&
#)
,#
),
&-.
,&
-.,
/&$0 *'
+
12
"#
)$
#
*'
+
##
)3
4"$
$5
6
&-%
(,7&
8
&)
)9
:7;5
<
&)
)=
>
$-5
<
?"
.&
(
@.
)7)
-58
/50
$5
)
*'
+
()
-5$
-@
()
-5$
-@
/&$0
*'
+
/50
$$
)7&
8
$$
)7&
8
A&
A$
3&
3$
+&
+$
+#
+(
B&
B$
B#
B(
3#
3(
&
$
#
(
5
@
%
.
60$
35
3@
3%
3.
A#
A(
+5
+@
+%
+.
B5
B@
B%
B.
& $
2C
&
@(
B&
)
3D
B&
$
$&
E&
"&
>&
&(
@ %
3B
&
& $#(
2C
$
B&
#
B&
5
$$
$&
$(
&$
&&
&(
<$
<&
$$
$&
$(
&$
&&
&(
<$
<&
&
$
#
60#
F&
G&
F&
G$
F$
G&
F$
G$
F#
G&
F#G$
F(
G&
F(
G$
&
$
#
(
5
60(
BD
B&
&
B&(
?B4
6H"
?+
%?
+@
?!
&?
!)
?+
5 ?+
#
&5
0$
#)
0
Abbildung 67: Layout Lichtsteuerung
XXII
B.8 Heiz-/Kuhlelement B SCHALTPLANE/LAYOUTS
B.8 Heiz-/Kuhlelement
!"#$$#
%"&
'!()
*+,(-..
*+,(-..
*+,/$..
*+,/$..
!"#$$#
!"#$$#
!"#$$#
!"#$$#
!$$0(1
234567&8$
'.)
%"&
94//85!:
/$;
%"&
'.)
!"#$$#
%"&
'!()
234567&8$!$;
'.)
%"&
94//85!:
%"&
'.)
#$$!&
#$$!&
#$$!&
#$$!&
#"//
%"&
#8$
8<$.=
!$$>
!$$>
#"//
%"&
#8$
#8$#8$
'?9
'?9
%"&
'.)
'!()
@AB.!$
@AB.!$
9&!/-
9&!/-
!$C
'.)0!
'.)0!
'.)0!
!;
!;
!;
D%"&
D%"&
D%"&
D%"&
/$;
!$;
!$;
!;
!$;
!$$0(1
&!
! ( /
=?,B3,A(
E/
E#
E.
E:
&(
&/
&#
&.
A/
!
2,=3@,A'
!
2,=3@,A5
A8
E8
A-
&:
! ( /
=?,B3,A!
A!(A!/
E-
! (
/
@4#D
. :
#
@4#9
< -
!$
@4#4
!(
!/
!!
@4#&
8!# @4#2
)&& )66
! (
7;!
: #.A!:
)@
/
(
)7
!
@4!
%"&
4!
4(
! (
7;(
: #.
A!
A!8A!<
!(/
6)/
E!
E!$
E(
E<
4/
A!.
A:
A.
A!#
A(
A!!
A!$
A<
A#
F!5!
F!5(
! ( / # .
6)(
! ( /
6)!
'
Abbildung 68: Schaltplan Heiz-/Kuhlelement
XXIII
B.8 Heiz-/Kuhlelement B SCHALTPLANE/LAYOUTS
! !
! !"
! #!
"$
!
"$
!
%!
&'()*(+"
,$
,-
,#
,.
%"
%$
%-
%#
+$
/(&*0(+1
/(&*0(+2
+3
,3
+4
%.
&'()*(+!
+!"
+!$
,4
05-
67!+!.
05! 5!
5"
67"
+!
+!3
+!8
9:$
,!
,!;
,"
,85$
+!#
+.
+#
+!-
+"
+!!
+!;
+8
+-
<!
9:"9:!
Abbildung 69: Layout Heiz-/Kuhlelement
XXIV
B.9 Futterklappe B SCHALTPLANE/LAYOUTS
B.9 Futterklappe
Anzahl Bauelemente Wert4 Transistor MOSFET2 Transistor NPN2 Transistor PNP6 Diode 1N40041 Z-Diode 1N85481 Kondensator 1uF1 Kondensator 0.1uF4 Widerstand 33Ω
2 Widerstand 10Ω
2 Widerstand 750Ω
2 Widerstand 3.3KΩ
2 Widerstand 10KΩ
Tabelle 18: Partliste der Futterklappe
Abbildung 70: Layout der Futterklappe
XXV
B.9 Futterklappe B SCHALTPLANE/LAYOUTS
Abbildung 71: Schaltplan der Futterklappe
XXVI
Abbildungsverzeichnis C ABBILDUNGSVERZEICHNIS
C Abbildungsverzeichnis
1 Designstudie . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22 Beispielaufbau . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23 Blockbild des Steuerungssystems . . . . . . . . . . . . . . . . . . . . . . . . . 34 Verlauf der Antennenspannung des DCF77 Senders
(uber dem Signal: Lange der Absenkung; unterhalb des Signals: Sekunden) (Quelle:ptb.de) . 125 Dekodierungsschema des Zeittelegramms (Quelle:ptb.de) . . . . . . . . . . . . . . . 126 kommerzielles DCF77-Modul . . . . . . . . . . . . . . . . . . . . . . . . . . 137 Blockschaltbild der MCU . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 148 Struktur des Menusystems . . . . . . . . . . . . . . . . . . . . . . . . . . . . 169 Busteilnehmermodul Oberseite . . . . . . . . . . . . . . . . . . . . . . . . . . 2110 Busteilnehmermodul Unterseite . . . . . . . . . . . . . . . . . . . . . . . . . 2211 Kennlinie des Pt100 (aus: [2]) . . . . . . . . . . . . . . . . . . . . . . . . . . 2712 Bruckenschaltung (Pspice) . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2813 Verstarkerschaltung (Pspice) . . . . . . . . . . . . . . . . . . . . . . . . . . . 2914 Pspice Schematics des Temperatursensors . . . . . . . . . . . . . . . . . . . . 2915 Fertige Platine des Temperatursensors . . . . . . . . . . . . . . . . . . . . . . 3016 Abhangigkeit des Sensorwiderstandes von Temperatur und Relativer Luftfeuch-
tigkeit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3217 Blockschaltbild der Schaltung zur Feuchtigkeitsmessung . . . . . . . . . . . . 3318 Statistik . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3719 Schaltplan Leerlauf . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3920 Simulation Leerlauf . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3921 Schaltplan bei Kurzschluß der Klemmen . . . . . . . . . . . . . . . . . . . . . 4022 Simulation bei Kurzschluß der Klemmen . . . . . . . . . . . . . . . . . . . . . 4023 Blockschaltbild der Lampenschaltung . . . . . . . . . . . . . . . . . . . . . . 4224 Schaltplan des Dimmers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4325 Phasenanschnitt . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4426 schematische Darstellung eines Triacs, hier als Beispiel: das Potenzial VMT1 >
VMT2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4527 skizzierter Impedanzverlauf . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4628 Stromverlauf mit Glatungsinduktivitat . . . . . . . . . . . . . . . . . . . . . . 4629 Zeitverlaufe bei der Nulldurchgangserkennung . . . . . . . . . . . . . . . . . 4730 Schaltplan der Relaistreiberschaltung . . . . . . . . . . . . . . . . . . . . . . . 4831 Gesamtmodul . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5032 Betriebsarten (verandert nach memmert.com) . . . . . . . . . . . . . . . . . . . . . . . . . . 5133 Kennlinie des ”Super Silent 4 Pro TC”- NTC-Widerstandes . . . . . . . . . . . 5234 Ausgangsspannung des Spannungsteilers . . . . . . . . . . . . . . . . . . . . . 5335 Spannungsteiler (Ausschnitt aus dem Gesamtschaltbild Abb. 68) . . . . . . . . 5436 ADC-Umsetzung mit Kennlinienapproximation . . . . . . . . . . . . . . . . . 5437 Schaltung zur Taktruckgewinnung und PWM-Ansteuerung (Ausschnitt aus dem
Gesamtschaltbild Abb. 68) . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5638 Oszillatorbild des Tacho-Ausgangs des Lufters bei maximaler Drehzahl . . . . 57
XXVII
39 Schematischer Aufbau (verandert nach hardinfo.net) . . . . . . . . . . . . . . . . . . . . . 5840 Peltierelement - Einzelmodul . . . . . . . . . . . . . . . . . . . . . . . . . . . 5841 H-Brucke mit zugehoriger Logik (Ausschnitt aus dem Gesamtschaltbild Abb. 68) 6042 Statemachine der Heiz-/ Kuhlsteuerung . . . . . . . . . . . . . . . . . . . . . 6143 Kennlinie des Schrittmotors (aus: [18]) . . . . . . . . . . . . . . . . . . . . . . 6444 Fertige Platine der Futterklappe . . . . . . . . . . . . . . . . . . . . . . . . . . 6545 Blockschaltbild . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . I46 Temperatursystem . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . II47 Blockschaltbild der offenen Kette (Quelle: [22]) . . . . . . . . . . . . . . . . . III48 Sprungsantwort des Systems (Quelle: [7]) . . . . . . . . . . . . . . . . . . . . IV49 Der geschloßene Regelkreis . . . . . . . . . . . . . . . . . . . . . . . . . . . V50 Ziegler-Nichols closed-loop Test (Quelle: [7]) . . . . . . . . . . . . . . . . . . V51 Struktureller Aufbau eines PID-Reglers (Quelle: [7]) . . . . . . . . . . . . . . VI52 Parallele Realisierung der PID-Regler(Quelle: [7]) . . . . . . . . . . . . . . . . VI53 Praktische Realisierung der PID-Regler mit Anti-Wind up (Quelle: [7]) . . . . VII54 Boardlayout der MCU . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . XI55 Schematic der MCU . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . XII56 Schaltplan Busteilnehmergrundmodul . . . . . . . . . . . . . . . . . . . . . . XIII57 Layout Busteilnehmergrundmodul . . . . . . . . . . . . . . . . . . . . . . . . XIV58 Belegung der Buchsenleisten des Busteilnehmer Piggyback Board . . . . . . . XV59 Layout Busteilnehmer Piggyback Board . . . . . . . . . . . . . . . . . . . . . XV60 Eagle Schematics des Temperatursensors . . . . . . . . . . . . . . . . . . . . XVI61 Eagle Layout des Temperatursensors . . . . . . . . . . . . . . . . . . . . . . . XVII62 Feuchtesensorschaltung (Eagle) . . . . . . . . . . . . . . . . . . . . . . . . . XVIII63 Layout Feuchtesensorschaltung (Eagle) . . . . . . . . . . . . . . . . . . . . . XIX64 Simulation bei Kurzschluß der Klemmen . . . . . . . . . . . . . . . . . . . . . XX65 Layout . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . XX66 Schaltplan Lichtsteuerung . . . . . . . . . . . . . . . . . . . . . . . . . . . . XXI67 Layout Lichtsteuerung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . XXII68 Schaltplan Heiz-/Kuhlelement . . . . . . . . . . . . . . . . . . . . . . . . . . XXIII69 Layout Heiz-/Kuhlelement . . . . . . . . . . . . . . . . . . . . . . . . . . . . XXIV70 Layout der Futterklappe . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . XXV71 Schaltplan der Futterklappe . . . . . . . . . . . . . . . . . . . . . . . . . . . . XXVI
D Referenzen
D Referenzen
[1] Homepage ”arctic-cooling”. http://arctic-cooling.com/.
[2] Pt-100 kennlinie. www.ephy-mess.de/deutsch/daten/pt100k.htm.
[3] Wikipedia - Die freie Enzyklopadie. http://de.wikipedia.org/wiki/Wikipedia:Hauptseite.
[4] Microcontroller Based Temperature Monitoring. Control, Elsevier, 2002.
[5] Peter Baumann. Sensorschaltungen. Vieweg und Sohn Verlag, 1.auflage edition, Februar2006.
[6] BetaTHERM. Steinhart-Hart Thermistor Equation. http://www.betatherm.com/
stein.php.
[7] Tietze U Schenk Ch. Halbleiter-Schaltungstechnik. 1999.
[8] Datasheet. 4049D. http://www.alldatasheet.com/view.jsp?Searchword=
HEF4049&q=HEF4049.
[9] Datasheet. 4066D. http://pdf1.alldatasheet.com/datasheet-pdf/view/8175/NSC/4066.html.
[10] Datasheet. 74HCT125D. http://pdf1.alldatasheet.com/datasheet-pdf/view/15534/PHILIPS/74HCT125D.html.
[11] Datasheet. ATMega48. http://atmel.com/dyn/resources/prod_documents/
doc2545.pdf.
[12] Datasheet. LCD Controller LH155. http://serdisplib.sourceforge.net/ser/doc/lh155.pdf.
[13] Datasheet. LCD M078CKA. http://serdisplib.sourceforge.net/ser/doc/
Sharp%20M078CKA-A3QKLA0057.pdf.
[14] Datasheet. LM2671M-5.0. http://sigma.octopart.com/11710/datasheet/
National-Semiconductor-LM2671M-5.0.pdf.
[15] Datasheet. Maglev ”Fan and Blower”.
[16] Datasheet. MAX232. http://pdf1.alldatasheet.com/datasheet-pdf/view/
73047/MAXIM/MAX232.html.
[17] Datasheet. MAX485CSA. http://sigma.octopart.com/121712/datasheet/
Maxim-MAX485CSA.pdf.
[18] Datasheet. Schrittmotor. http://www.cybertux.nl/elektronica/datasheets/
Stappenmotoren/Conrad%20967645-da-02-de-Schrittmotor.pdf.
XXIX
[19] Datasheet. SN75176BD. http://sigma.octopart.com/24999/datasheet/
Texas-Instruments-SN75176BD.pdf.
[20] Datasheet. Spannungsregler 78L33. http://www.datasheet4u.com/html/7/8/L/78L33_STMicroelectronics.pdf.html.
[21] G. Gromov. Thermoelectric cooling modules. Technical report, RMT Ltd.
[22] Dr Ibrahim. Microcontroller Based Applied Digital Control. 2000.
[23] Information. ATMega128 Programmierinterface. http://www.mikrocontroller.net/topic/10682#70366.
[24] melcor corp. Thermoelectric Handbook. Technical report, melcor.
[25] Helmut Pape. Projekt: Zeitzeichenempfanger. Wege in der Physikdidaktik, 2, 1991.
[26] PTB. Seite des PTB in Braunschweig. http://www.ptb.de/de/org/4/44/442/
dcf77_1.htm.
[27] I.S. Steinhart and S.R. Hart. Calibration. curves for thermistors. Deep Sea Research, Vol.15, 1968.