Wintergartensteuerung (ConvCtrl)
Wintergartensteuerung ConvCtrl


Wintergartensteuerung ConvCtrl:

Direktsprung zu Kapiteln Motivation und Zielsetzung
Funktionsbeschreibung
Umsetzung und Realisierung
Stücklisten
Schaltpläne
Bestückpläne
PCB's
Software
Dokumentation und Daten
Mitgeltende Unterlagen und Sonstiges
Direktsprung zu Kapiteln
Direktsprung zu Kapiteln


Link an das Ende


Motivation und Zielsetzung

Wintergarten von innen
Wintergarten von innen
Das Projekt Wintergartensteuerung ConvCtrl sollte eigentlich und richtiger Weise "Mikrokontroller gestützte Wintergarten-Steuerung für Licht-, Umwelt- und Beschattungsfunktionen" heißen. Da Wintergarten auf Neudeutsch conservatory heißt kam ich auf das Kunstwort ConvCtrl von dem ich auch im folgenden sprechen werde.

In doer besser an dem Haus welches wir im Jahre 2002 erwarben, befindet sich ein Wintergarten der vor ca. 20 Jahren über die damals freie Außenterasse installiert wurde. Mit Glasfronten auf zwei Seiten Richtung Süden und Westen hat der Wintergarten auch ein voll aus Glas bestehendes Dach. Zum Schutz vor Wärme und einer Überdosierung Sonnenlicht wurde eine außen liegende Markiesenbeschattung mit Zwangsführung über entsprechende motorisierte Antriebswellen ausgeführt. Um die Beschattung selbst vor Nässe zu schützen und - ich denke ein Stück weit - auch aus Komfort-Gründen gabe es einst eine kleine Steuerung dazu welche komplett auf analoger Elektronik basierte.
Mittels Windmesser wurde die Windgeschwindigkeit gemessen und einstellbar die Beschattung zum Schutz eingefahren. Der Windmesser, selbst aus Kunststoff, war schon durch das Zeitliche gesegnet dahingeschieden. Zusätzlich gabe es noch einen integrierten Helligkeits- / Regendetektor welcher auch nicht mehr funktionierte. Und die Steuerung selbst konnte wegen eingedrungenem Schwitzwasser und Oxydation / Korrosion nur noch zum manuellen Auf- und Zufahren verwendet werden.

Wintergarten von auß
Wintergarten von außen
Nachdem wir für das Jahr 2008 eine komplette Renovierung des Wintergartens geplant hatten war klar, eine neue Steuerung muss her, nur welche? Als begeisterter Bastler und Löter hatte ich sehr schnell die Idee gebohren, die Steuerung selbst zu entwickeln und mit einem Mikrocontroller umzusetzen. Die Vorteile lagen klar auf der Hand. Fun bei der Umsetzung, Definition von eigenen Funktionen und Eingriffmöglichkeiten wenn etwas nicht gefällt. Von Nachbarn hörten wir nämlich Geschichten, dass die alte Steuerung unmotiviert auf- und zugefahren währe usw.

Mein Ziel war es, es einfachbesser zu machen und das Projekt ConvCtrl war geboren. Ich wollte eine Steuerung implementieren mit der es möglich ist, abhängig von Wind und Wetter und Innentemperatur die Antriebe für die Beschattung zu steuern und nicht nur manuell sondern auch bei Bedarf automatisch auf- und zufahren zu können.
Bei genauer Betrachtung der Problemstellung und der Wintergartenrenovierung kamen mir noch weitere Ideen welche ich gleichzeitig in die Steuerung integrieren wollte. So wurde z.B. eine Lichterzeile zur Beleuchtung des Wintergartens integriert welche ich über einen integrierten Dimmer in der Steuerung direkt mit steuern wollte. Schnell kamen Helligkeitsüberwachung, Dimmer, Antriebsteuerung, Winderfassung, Regenerfassung, Innentemperaturerfassung, Luftfeuchtigkeit usw. dazu. Das Projekt wuchs und wuchs.
Für Automatik-Funktionen erschien mir auch die Zeitinformation als notwendig und somit wurde das System noch mit DCF77 und Echtzeituhr abgerundet. Und nachdem ich alle Daten zur Laufzeit im System verfügbar hatte wollte ich die Umweltdaten noch aufzeichnen und bei Bedarf über RS232 zur Auswertung an einen PC übertragen.

So wurde sehr schnell aus einer reinen Antriebssteuerung eine eierlegende Wollmilchsau mit einer ganzen Menge Funktionen und einem schönen Benutzermenü mit LCD-Display und Tastatur. Mehr dazu befindet sich aber weiter unten in der Funktionsbeschreibung oder in der Umsetzung und Realisierung beschrieben.

Auf jeden Fall hatte ich ein Projekt geschaffen, welches in Umfang und Ausführung alles bisherige was ich gemacht hatte in den Schatten stellte und was mich bald 2 Jahre in jeder freien Minute beschäftigte. Um so mehr bin ich stolz darauf das Projekt erfolgreich zuende gebracht und in Betrieb genommen zu haben und es hier auf meinen Seiten präsentieren zu können.

Link an den Anfang


Funktionsbeschreibung

Tatort der Entwicklungsarbeiten
Tatort der Entwicklungsarbeiten
Da die einzelnen Funktionen sehr komplex sind und ich im Bereich der Realisierung näher auf die einzelnen Themen eingehen möchte beschränke ich mich hier an dieser Stelle zunächst auf die reinen Umfänge meines Systems. Natürlich lasse ich mir es nicht nehmen nochmals explizit auf die Gefahr von Netzspannung hinzuweisen!

Für alle Interessierten sei an dieser Stelle auch auf meine Dokumentation verweisen, welche sich als 20 Mbyte großer Download im Bereich Dokumentation und Daten
befindet.

Im Folgenden wird der Leistungsumfang und die Teilfunktionalität beschrieben, welche ConvCtrl besitzt und dem Benutzer zur Verfügung stellt:

Achtung - Eltern haften ür Ihre Kinde
Achtungshinweis

Konstruktionszeichnung Gehäse
Konstruktionszeichnung Gehäse

Das Projekt ConvCtrl verfügt über die folgenden einzelnen Funktions- / Teilkomponenten welche ich unter Umsetzung und Realisierung noch genauer beschreiben möchte:

  • Spannungsversorgung für +5V und +12V - SUP
  • Mikrocontroller ATmega32 oder ATmega128 (inkl. ISP, RS232 und Reset) - MEGA
  • LCD-Display 3x16 (inkl. Rahmen) - LCD
  • Tastatur und Schalter - SW
  • LED-Anzeigen für Status- und Funktionsanzeige - LED
  • Windmesser (pro Tick = 2,5m/sec Windgeschwindigkeit) - WIND
  • Regensensor (ja/nein Detektion inkl. Detektorheizung) - RAIN
  • Temperatursensor (Anschluss über I2C Bus) - TEMP
  • Luftfeuchtigkeit (Anschluss über I2C Bus) - HUM
  • Dimmungssteuerung für Beleuchtung (inkl. ein/aus Relais) - DIM
  • Motorsteuerung für Beschattung (inkl. Relaisverriegelung und Relais-Timeout) - CONV
  • Gehäusebelüftung mit Option Lüftersteuerung über ATmega - FREEZ
  • Datenspeicher / Datenlogger über EEPROM (Anschluss über I2C Bus) - LOG
  • DCF77 Funkuhrempfang (Conrad) - DCF
  • Passendes Selbstbaugehäuse aus Aluminium und rauchgläserner Front - BOX
  • Helligkeitsmessung (Licht - DC-Wandler mit OPAmp) - LIGHT
  • Anzeige von Zeit- und Datumsinformationen - CLOCK
  • Akustisches Feedback über Piezo Schallwandler - SOUND
  • Selbstcheck bei StartUp und ggf. Ausgabe von Warnmeldungen und Signalen - CHECK
  • Timersteuerung zeitkritischer Applikationen (Tasten, Dimmer, Helligkeit Display) - TIME



Link an den Anfang


Umsetzung und Realisierung

Steckverbindungen und elektromechanische Komponenten
Stecker und elektromechanische Komponenten

Im folgenden befinden sich die Detailbeschreibungen zu den einzelnen Funktionskomponenten und Teilmodulen. Doch zu Beginn möchte ich nochmals kurz auf das Gesamtkonzept eingehen.

Durch die große Anzahl an Teilfunktionen und Komponenten war schon während der Konzeptions- und Spezifikationsphase klar, dass ich sehr schnell den durch Eagle limitierenden Faktor in der Größe der PCB's mit 160 x 100 cm erreichen werde.
Aus diesem Grund wurde ConvCtrl von Anfang an als Mehrplatinen-Lösung mit einem eigenen separaten Netzteil geplant und designed. Das fertige Projekt besteht aus drei verschiedenen PCB's die im folgenden als Controller-Board, Konsolen-Board und Power-Board (Netzteil) bezeichnet werden

Die Bedeutung des Netzteils ist klar. Auf diesem befindet sich das eigenst für das Projekt entwickelte Schaltnetzteil für die Spannungen von +5V und +12V.

Auf dem Controller-Board befindet sich der zum Einsatz gekommene ATMEL ATmega128, der größte Teil des Digitalteils und der Sensoren und der komplette Leistungsteil. Der Leistungsteile besteht aus dem Dimmer und den Relais für den Beschattungsantrieb.

Das Konsolen-Board mach seinem Namen alle Ehre und ist die Ausgabe- und Eingabeeinheit. Auf dem Board befinden sich alle haptischen Elemente wie Eingabetaster, Reset-Taster, LCD-Display, Status-LED's und die wichtigen von außen zugänglichen Sensoren wie z.B. der Lichtsensor.

Die Verbindung zwischen Netzteil und Controller-Board erfolgt über gewinkelte Stiftleisten im Raster 2,54 direkt von PCB zu PCB. Das Konsolen-Board wird über dem Controller-Board platziert und ist mittels 40-poligem Flachbandkabel und Steckverbinder verbunden.

ConvCtrl ist damit als 3-Platinen-System ausgelegt. Die Funktionen sind klar getrennt und zugeordnet. Auf diesem Weg bot sich ausreichend Platz für alle Funktionen.

Doch nun wird es Zeit, die einzelnen Details genauer zu betrachten!

Controller-Board PCB1 Power-Board PCB3 Konsolen-Board PCB2
Controller-Board Power-Board Konsolen-Board
Connector PCB1 zu PCB2 Connector PCB1 zu PCB3 Hochspannung Connector PCB1 zu PCB3 Niederspannung
PCB1-PCB2 PCB1-PCB3 Hochspannung PCB1-PCB2 Niederspannung


Spannungsversorgung

Pinbelegung und Maße Trafo
Pinbelegung und Maße Trafo

Nach Analyse der notwendigen Spannungen und maximal auftretenden Ströme im System wurde die Festlegung getroffen, ein Netzteil selbst zu designen. Für die Spannungsversorgung des Projekts ConvCtrl werden die zwei Spannungen +5V und +12V mit gemeinsamen Massebezug GND bereitgestellt. Der komplette Digitaltechnik-Teil funktioniert mit 5V. Einige Aktuatoren wie z.B. die Relais oder der Lüfter arbeiten mit +12V und werden über Transistorstufen gesteuert. Da im Volllastbetrieb laut Rechnung eine Stromaufnahme von bis zu 500 mA für beide Spannungen auftreten können wurde zunächst ein Netzteil mit Festspannungsregler dimensioniert und aufgebaut. Mir erschien es als wenig Gewinnbringend auf irgendwelche fertigen Netzteile auszuweichen und fertige, auf dem Markt befindliche Produkte einzusetzen.

Nach Aufbau eines Prototyps des Festspannungsregler-Netzteils und Fertigstellung der PCB's durch Leiton war das Netzteil in der Testphase und im Pilotbetrieb durch starke Eigenerwärmung im Lastbetrieb auffällig. Das System sollte aber für einen Dauerbetrieb ausgelegt werden und auch höhere Umgebungstemperaturen welche im Wintergarten durchaus bei eingefahrener Beschattung mal 50° betragen können aushalten.
Somit wurde das Konzept des Netzteils mit Festspannungsregler verworfen und es wurde ein Schaltnetzteil dimensioniert und umgesetzt was auch im fertigen Projekt umgesetzt wurde. Um ausreichend Leistung bereitzustellen wurde jeder Spannungszweig für einen Dauerstrom von 1A ausgelegt.

Für die Spannungsversorgung selbst wird ein Transformator der Firma BLOCK - FL30/15 mit 2 nachgeschalteten Schaltspannungsreglern für die Spannungen +5V und +12V eingesetzt. Der Trafo besitzt eine angegebene Sekundärspannung von 15V.

Schaltnetzteil
Schematic Auszug des Schaltnetzteils
Kühlkörper
Kühlkörper

Als Bestückunsalternative wurde die Schottky-Diode 1N5821 und eine 220 µH Spule umgesetzt.
Die Kondensatoren C3 und C4, die Dioden D1 und D2 sowie die Spulen L1 und L2 wurden zur Vermeidung von Spannungsriffel so nah wie möglich am Schaltregler zu platziert. Die Brückengleichrichter B40C1500 (BR1 und BR2) sind für eine Spannung von 40V und einem Strom bis 2A ausgelegt uns damit ausreichend dimensioniert. Die verwendeten Schaltregler für 5V und 12V (U1 und U2) sind für einen Strom bis 3A ausgelegt. Die Kühlung der Schaltregler erfolgt mittels Aufsteckkühlkörper für TO-220 Gehäse. Die beiden verwendeten Leuchtdioden LED1 und LED2 zeigen die Verfügbarkeit der Betriebsspannungen +5V und +12V an und sind als Low Current LED ausgeführt.

Unterschiedliche Technologien haben unterschiedliche Bezeichnungen für die notwendigen Spannungsversorgungen. Für CMOS Bausteine gelten die Bezeichnungen VCC und GND. TTL-Logik verwendet die Bezeichnungen VDD und VSS. VDD und VSS werden im Projekt durch 0Ω-Widerstände (Drahtbrücken) erzeugt um EAGLE die korrekte Behandlung der Spannungen zu ermöglichen.

Für das Projekt gelten die folgenden Bezeichnungen in den Netzen:

Symbolfestlegung für Spannungsversorgungen
Symbolfestlegung für Spannungsversorgungen
Hauptschalter
Hauptschalter



Die gesamte Anlage kann durch einen Hauptschalter ein- und ausgeschaltet werden.
Dafür wurde ein durch eine LED beleuchteten Hauptschalter ausgesucht.
Für den direkten Betrieb der Schalter-LED an 230V musste eine Vorschaltung umgesetzt werden.

Das Konzept sieht die Umsetzung entsprechend des folgenden Schaltplan vor. Die LED-Vorschaltung wurde als integraler Bestandteil auf dem Netzteil platziert.

LED-Vorschaltung
LED-Vorschaltung


System - Mikrocontroller

Pinout des ATmega128
Pinout des ATmega128



Im Projekt ConvCtrl wird der Mikrokontroller ATmega128 von ATMEL mit einem externen Quarz 16 MHz eingesetzt. Erste Konzepte wurden mit dem ATmega32 und ATmega64 ausprobiert. Es zeigte sich jedoch sehr schnell bei der Zuordnung der Ressourcen, dass nicht alle Funktionen mit einem Mega32 oder Mega64 umsetztbar sind, da nicht ausreichend PIN's vorhanden sind. Aus diesem Grund wurde in der Konzeptphase auf den ATmega128 in der Variante TQFP Gehäuse gewechselt.
Im Folgenden wird die Ressourcen-Zuordnung der Einzelfunktionen auf die PIN's des ATmega128 dargestellt:

Ressourcenzuordnung ATmega128
Ressourcenzuordnung ATmega128


Zur In-System-Programmierung wird die ATMEL ISP-Schnittstelle in der 10 PIN-Variante umgesetzt. Die Programmierung im Projekt erfolgt direkt über BASCOM mit Hilfe STK500 oder AVRISP mkII von ATMEL. Sowohl STK500 als auch AVRISP mkII besitzen die 6-Pin-Variante. Somit wird ein kleiner Adapter notwendig welcher auch aus folgendem Schaltbild hervorgeht.

ISP connection Pinout
ISP connection Pinout

ISP Programmierer AVRISPmkII
ISP Programmierer AVRISPmkII


So, nun widmen wir uns noch der Basis-Gesamtbeschaltung des ATmega128.
Die im folgenden dargestellte Schaltung bildet die Basisbeschaltung des AVR ATmega128.

Zum Einsatz kommt ein externer Quarz mit 16.000.000 Hz (16 MHz).
Weiter ist im Schaltplan der Anschluss eines externen RESET-Tasters S1 vorgesehen.

Bei einem ATmega32/64 können die Leitungen des ISP-Interface direkt an MISO und MOSI des Controllers angeschlossen werden. Beim ATmega128 sind diese nicht direkt belegt und intern nicht verdrahtet. Achtung! Beim ATmega128 findet die Beschaltung über Port E und die Leitungen RXT0 und TXD0 statt!

Der PEN Eingang (Pin 1) wird mit einem 1kΩ Widerstand R1 definiert auf VCC gezogen!

Für die Beschaltung des ISP-Interfaces wird eine Entkopplungskondensator C13 am Stecker vorgesehen der als solches auch nahe beim/am Stecker bestückt werden muss!

Für die Analog-Digital-Umsetzung mit dem ATmega wird der Eingang ADC0 des ATmega verwendet. Als Referenzspannung wird die Betriebsspannung des ATmega VCC auf Pin AVCC verwendet. Der externe Referenzspannungseingang AREF wird nicht verwendet. Da sich im Projekt einige störungsausstrahlende Komponenten befinden (z.B. Triac-Steuerung für Dimmung) wird eine, spezielle im Datenblatt vorgeschlagene analoge Störsignalreduktion umgesetzt welche aus L1 und C2 befindet.

Die serielle Datenübertragung zum und vom ATmega wird mit einem serielles Interface nach RS232 Standard mit einem Maxim MAX232 Baustein umgesetzt. Die serielle Datenübertragung dient auch für die Möglichkeit, Loggingdaten aus dem externen EEPROM an einen PC zur späteren Messdatenauswertung zu übertragen.
In der Software sind sehr viele Trace-Ausgaben implementiert welch über Compiler-Schalter aktiviert / deaktiviert werden können. Auf dem Controller-Board gibt es einen Trace-Jumper welcher via Software abgefragt werden kann. Die zugrundegelegte Idee war, den Traceoutput via RS232-Schnittstele auch mit einem Jumper steuern zu können.

Nun folgt schon wie besprochen das Schaltbild zur Basisbeschaltung des ATmega128:

Basisbeschaltung des ATmega128
Basisbeschaltung des ATmega128


Im Gehäuse der Wintergartensteuerung befinden sich zwei 9-polige SUB-D Schnittstellen welche die RS232-Schnittstelle und das ISP-Interface nach außen führen und zugänglich machen.
Das folgende Schaltbild zeigt die Beschaltung der 10-poligen Federleisten sowie deren Verbindung zum SUB-D-Stecker. Für das ISP-Interface wird ein Adapter für 6-polig / 10-polig ISP benötigt damit das System mit dem AVRISP mkII von Atmel programmiert werden kann. Im obigen Bild zum AVRISPmkII ist auch der kleine Adapter zu sehen.
Die RS232 kann direkt mit einem RS232-Kabel (Achtung: KEIN Null-Modem-Kabel) mit Stecker-Buchse und 1:1 Verbindung an einem PC / Notebook angeschlossen werden.

ConvCtrl Schnittstellen und Adapter
ConvCtrl Schnittstellen und Adapter


Verbindungskabel zwischen PIN-Header und D-SUB9 Buchse
Verbindungskabel zwischen PIN-Header und D-SUB9 Buchse


Um das Kapitel zum Mikrocontroller abzuschließen fehlt zum Schluss noch die Konfiguration für die Fuses. Einige Fuses weichen von den Standardeinstellungen ab. Die folgende Tabelle zeigt die Fuses und die notwendigen Settings im Detail.

AVR Fuse Konfiguration ATmega128
AVR Fuse Konfiguration ATmega128


System - LCD-Display

LCD-Display EA DOG-M
LCD-Display EA DOG-M

Als Anzeigedisplay wird ein LCD-Modul der Firma ELECTRONIC ASSEMBLY der DOG-M-Serie 3,3V EA DOG-M Super Flach / 55x27 mm inkl. Kontroller ST7036 für 4-/8-BIT SPI (4-Draht) eingesetzt (LCD-Modul 3x16 - 3,65 mm EA DOGM1634W-A). Als Hintergrundbeleuchtung wird eine LED-Beleuchtung Weiß (EA LED55X31W) eingesetzt.

Technische Daten:

  • Kontrastreiche LCD-Supertwist Anzeige
  • Optionale LED-Beleuchtungskörper in verschiedenen Farben
  • 1x8, 2x16 und 3x16 Zeichen mit 12,0 mm / 5,6 mm und 3,6 mm Schrift
  • Kontroller ST 7036 für 4-BIT, 8-BIT und SPI (4-DRAHT) Interface
  • Spannungsversorgung +3,3V oder +5V single supply (typ. 250µA)
  • Keine zus. Spannungen erforderlich
  • Betriebstemperaturbereich -20..+70°C
  • LED-Hintergrundbeleuchtung 3..80mA@3,3V oder 2..40mA@5V
  • Keine Montage erforderlich: einfach nur in PCB einlöten.

Kontrasteinstellung:

Für alle Displays der EA DOG- Serie ist der Kontrast per Befehl einstellbar. Dies erfolgt über die Bits C0..C5 in den Befehlen "Contrast Set" und "Power/Icon Control/Contrast Set". Die Funktionen sind entsprechend in der SW umgesetzt und können per Menue verändert werden.
In der Regel wird der Kontrast einmalig eingestellt und dann - dank integrierter Temperaturkompensation - über den gesamten Betriebstemperaturbereich (-20..+70°C) konstant gehalten.
Insgesamt benötigen die Displays selbst im 3,3V Betrieb keine zusätzliche negative Spannung! Das aber nur als Hinweis den im Projekt wird das Display mit 5V betrieben.

Hintergrundbeleuchtung
Hintergrundbeleuchtung

Hintergrundbeleuchtung:

Für die Hintergrundbeleuchtung wird eine PWM über den ATmega realisiert mit Hilfe derer die Beleuchtungshelligkeit eingestellt werden kann. Hierzu wird das PWM-Signal mittels Timer vom ATmega erzeugt und dann über eine Transistorstufe am Display aufgeschaltet. Das LCD-Display muss vor dem verlöten oder stecken auf die Beleuchtungseinheit gelötet werden, damit die LEDs der Beleuchtung über die Kontakte des LCDs Strom bekommen. Es ist ratsam, alle Pins der Beleuchtungseinheit anzulöten, da sich so der Druck beim Einsetzten des Displays in die Fassung besser verteilt. Elektrisch ist dies nicht notwendig. Bitte sehr sparsam mit dem Lötzinn umgehen, da es sonst an den Beinchen herunter läuft und somit das Display nicht in die Fassung passt.

Beschaltung:

Die Beschaltung des LCD-Display an den ATmega erfolgt wie im folgenden Schaltbild aus dem Datenblatt des LCD-Displays gefordert. Im Projekt wurde eine Transistorstufe realisiert um das Display an/aus schalten zu können. Diese Transistorstufe ist in der Praxis ohne Wirkung da sich das Display durch Backpowering von anderen Leitungen selbst versorgt. Der Aufwand eines Umbaus wäre zuhoch gewesen. In einem neuen Design kann auf diese Stufe verzichtet werden. In der SW wurde vielmehr eine Funktion implementiert welche es ermöglich, das Display durch eine Befehl in den Standby-Modus zus schalten. Dies hat den Vorteil, dass die Inhalte des Display-Speichers nach erneutem Einschalten erhalten bleiben. Damit konnte auf die Transistorstufe verzichtet werden.

Bei dem Schaltbild handelt es sich wie bei allen Schaltbildern in diesem Kapitel um die prinzipielle Beschaltung wie sie zum Zeitpunkt des Prototyps ausprobiert wurde. Die endgültige Beschaltung kann leicht davon abweichen. Dazu verweise ich auf die Schaltpläne des Gesamtprojekts am Ende dieser Seite.

Beschaltung LCD-Display
Beschaltung LCD-Display


System - Tastatur und Schalter

Designvorlage Bedienelemente Front
Design Bedienelemente Front

Die Bedienung des Systems erfolgt über insgesamt 9 Tasten welche über eine LED verfügen. Die LED zeigt die korrekte Übernahme des Signals durch den Controller an.

Das Bild rechts zeigt die Anordnung aller Bedienelemente und des Displays auf dem PCB2. Es diente als Designgrundlage für den Entwurf der PCB2 und die Anfertigung der Gehäuseabdeckung.

Für die Bedienung der Steuerung wurde ein Bedienkonzept bzw. die Menüstruktur in Form eines Ablaufdiagramms bzw. Zustandsdiagramms erstellt. In der Software wurde eine Menue-Statemachine entwickelt in der alle Zustände abgebildet sind.

Menue-Strukturen von ConvCtrl
Menue-Strukturen von ConvCtrl


Die Tastatur im Projekt wird als 3x3 Tastenmatrix ausgeführt. Auf diesem Weg werden IO-Leitungen des Controllers gespart. Die Tasten sind spalten- und zweilenweise zusammengafasst. Unter Verwendung der ATmega internen PullUp-Widerstände erhält man das unten abgebildete Anschlussschema einer 3x3 Tastaturmatrix.
Mit der Tastenmatrix soll es möglich sein, mehrere Tasten gleichzeitig zu betätigen. Hierzu sind Entkopplungsdioden vorzusehen. Das Schaltbild zeigt die optimierte Variante mit den Entkopplungsdioden. Hierbei ist eine Bestückvariante vorgesehen. Die für die Tasten umgesetzten LED's werden unter der Überschrift LED's beschrieben.

3x3 Tastenmatrix
3x3 Tastenmatrix

Prototyp Tastenmatrix
LED-Array mit 16 LED's
Die Pins Px0 bis Px2 werden als Eingänge mit PullUp-Widerstand konfiguriert, während die Pins Px3 bis Px5 jeweils die abzufragenden Spalten auf LOW legt. Die Abfrage dieser Tastarur teilt sich in mehrere Abfragen von Spalten auf. Um die Rechenlast der zyklische Abfrage für den Atmega zu senken wurden die Zeilenspalten über ein AND-Gatter geführt welches mit einem externen Interrupt des ATmegas verbunden ist. Die Ausgänge sind hierzu auf LOW konfiguriert. Wird nun eine Taste betätigt so wird ein Interrupt ausgelöst. In der Interrupt-Service-Routine werden die Ausgänge zunächste auf HIGH umkonfiguriert und nach und nach die Spalten zur Abfrage auf LOW zu legen.
Achtung: Nicht verwendete Eingänge eines AND-Gatters sind mit GND zu beschalten.

Mechanik der Tasten und Festlegungen:

Die Eingabetasten werden auf der oberen PCB2 auf der Bestückungsseite bestückt. Für die Gehäuseabdeckung sind Aussparungen vorgesehen durch diese die Tasten hindurch ragen. Aufgrund der Tastengröße kann die Tasten- und LED-Elektronik auf der PCB2 Seite ebenfalls auf der Bestückseite bestückt werden. Bei ca. 2mm Deckelstärke ist ca. 8mm Platz für die Bestückung vorhanden.

Tastendimensionen und Platzbedarf
Tastendimensionen und Platzbedarf



System - LED's

Prototyp LED-Array mit 16 LED's
Prototyp LED-Array mit 16 LED's



Beim Design des Projekts - ursprünglich auf ATmega32 geplant - wurde sehr schnell klar, dass eine Lösung benötigt wird welches es ermöglicht, die benötigten LED's Ressourcenschonend an den ATmega anzubinden.
Obwohl der ATmega128 einiges an PIN's und IO-Leitungen mehr bietet, wird dennoch die Ressourcen schonende Umsetzung designed und verfolgt. Ziel ist es alle benötigten LED's mit so wenig Ressourcen wie möglich an den ATmega anzubinden.
Hierbei denkt mal als Erstes an eine Schieberegister-Funktion in den die Bitmuster eingetacktet werden. Da dies jedoch einen höheren Anspruch an Timing und Programmierung stellt wird eine parallele Lösung verfolgt.

Zur Umsetzung des Projekts bietet sich der Baustein 74116 (54116) an. Der Baustein ist ein Dual 4-Bit Latch. Alle LED's werden im System als 3mm low current LED ausgelegt!
Die LED's werden über das Latch (kaskadierte Latches) betrieben:

Latched LED's
Latched LED's

Die folgenden LED's werden ungelatched direkt an den jeweiligen Funktionen, PIN's usw. betrieben:

Unlatched LED's
Tastendimensionen und Platzbedarf


Schematic der Umsetzung für das 16-Kanal-LED-Array:

LED Matrix
LED Matrix


Aktoren - Dimmer (Leistungsteil)


Bei der Umsetzung des SW gesteuerten Dimmers und der Integration in die Wintergartensteuerung wurde ich durch das Projekt "3-Kanal-Dimmer"von Thomas Unmuth inspiriert welcher mir auch die Verwendung seines HW-Konzeptes erlaubte. Danke dafür!
Die SW entstand dann in Eigenarbeit und Schweiß.


Funktionsprinzip Phasenanschnittsteuerung:

Prinzip Phasenanschittsteuerung
Prinzip Phasenanschittsteuerung
Bei der Phasenanschnittsteuerung wird der Stromfluss meist durch einen Triac gesteuert. Nach dem Nulldurchgang der Wechselspannung (und des Stromes) leitet der Triac den Strom so lange nicht, bis er einen Zündimpuls erhält. Ab diesem Zeitpunkt (dieser "Phase" des Wechselstromsignals) wird der Verbraucher mit Energie versorgt (bis zum nächsten Nulldurchgang). Je später der Triac gezündet wird, desto geringer ist die (über eine Periode der Wechselspannung gemittelte) Leistung.

Nulldurchgangserkennung
Nulldurchgangserkennung

Der Vorteil der Phasenanschnittsteuerung (und Phasenabschnittsteuerung) im Vergleich zu Schaltungen, bei denen die Spannung durch einen Widerstand geregelt wird, ist ihre sehr geringe Verlustleistung. Im Gegensatz zu komplizierten regelbaren Schaltnetzteilen, die auch geringe Verlustleistung haben, ist eine Phasenanschnittsteuerung wesentlich einfacher und kleiner aufzubauen und weniger störanfällig. Der größte Nachteil von Phasenanschnittsteuerungen ist der nicht sinusförmige Verlauf des Stromes. Der Strom fließt ja nur in einem Teil jeder Halbwelle. Diese nicht sinusförmige Belastung ruft im Netz Störungen hervor. Je mehr die Kurvenform des Stromes von der Sinusform abweicht, desto größer sind die Störungen.

Der Verbraucher erhält von der Phasenanschnittsteuerung oder Phasenabschnittsteuerung eine nicht sinusförmige Spannung. Während das für ohmsche Verbraucher wie Glühlampen und Heizwiderstände kein Problem darstellt, können elektronische Geräte, die an eine Phasenanschnittsteuerung angeschlossen werden, dadurch beschädigt werden.

Auch bei Transformatoren, z.B. für Halogenlampen ist Vorsicht geboten: Es ist einerseits darauf zu achten, dass die Phasenanschnittsteuerung (d.h. der Dimmer) für diese Anwendung geeignet ist, andererseits darf man nur "echte" Transformatoren und keine elektronischen Spannungswandler, wie sie heute zunehmend eingesetzt werden, an Phasenanschnittsteuerungen anschließen. Es gibt jedoch Phasenabschnittsteuerungen, die für elektronische Spannungswandler geeignet sind.

Die in diesem Projekt umgesetzte Phasenanschnittsteuerungen (Dimmer) eignet sich nicht für Leuchtstofflampen oder Energiesparlampen!!.

HW-Konzept für die Umsetzung im Projekt:

Bei der Phasenanschnittsteuerung ist der Verbraucher nach dem Nulldurchgang jeder Halbwelle zunächst stromlos. Nach einer einstellbaren Zeit t (Wartezeit über timer) wird dann ein Triac gezündet, der den Strom fließen lässt. Ist eine gewisse Spannung unterschritten, sperrt der Triac wieder. Dieser Vorgang wiederholt sich mit einer Frequenz von 100 Hz bei positiver und negativer Halbwelle. Je später der Triac gezündet wird, je niedriger ist die verfügbare Leistung und desto dunkler ist die Lampe.

Dimmer Leistungsteil Triac Stufe
Dimmer Leistungsteil Triac Stufe

In einer elektronischen Schaltung wird der Triac von einer Steuerlogik gezündet wird. Diese Steuerung benötigt einen Nulldurchgangstest, damit sie den Nulldurchgang jeder Halbwelle registrieren kann.

Um den exakten Zündwinkel zu bestimmen, ist ein Nulldurchgangsdetektor unumgänglich. Dieser Detektor besteht aus einem (vom Netzteil unabhängigen) Gleichrichter (B1), einem Optokoppler 4N25 (OK1) und zwei Schmitt-Triggern (IC1A/B). Die im 100-Hz-Takt pulsierende gleichgerichtete Spannung hinter der Gleichrichterbrücke sorgt dafür, dass der Optokoppler bei jedem Nulldurchgang der Netzspannung kurzzeitig sperrt. In dieser Zeit liegen am Kollektor des Opto-Transistors +5 V, ansonsten 0 V. Dieses Signal - von den Schmitt-Triggern mit eindeutigen und steilen Flanken versehen - nutzt der Mikrocontroller, um die Software mit der Netzspannung zu synchronisieren.

Dimmer Nulldurchgangserkennung
Dimmer Nulldurchgangserkennung


Einige Oszillogramme des Dimmers im Betrieb:

Oszillogramm Triac-Zündung "dunkel"
Oszillogramm Triac-Zündung "dunkel"
Oszillogramm Triac-Zündung "hell"
Oszillogramm Triac-Zündung "hell"
Oszillogramm aller Signal inkl. Netz-Sinus
Oszillogramm aller Signal inkl. Netz-Sinus
Oszillogramm Triac-Ausgangssignal "hell"
Oszillogramm Triac-Ausgangssignal "hell"
Oszillogramm Triac-Ausgangssignal "50%"
Oszillogramm Triac-Ausgangssignal "50%"
Oszillogramm Triac-Ausgangssignal "dunkel"
Oszillogramm Triac-Ausgangssignal "dunkel"

Ch1 (gelb) ist das Signal der Nulldurchgangserkennung des Netz-Sinus.
Ch2 (hellblau) ist das Zündungssignal (20µs) für den Triac.
Ch3 (magenta) ist wahlweise die Abbildung des Netz-Sinus oder die durch den Triac "phasenangeschnittene"


SW-Konzept für die Umsetzung:

Linearisierung Helligkeitswert
Linearisierung Helligkeitswert
Die Programmierung der möglichen Zündzeit von max. 10 ms erfolgt in 32 Einzelschritten (Helligkeitsstufen) damit eine scheinbare stufenlose Dimmung ermöglicht wird. Der Zeitraum von 10 ms wird in 100 Stützstellen aufgeteilt. Eine Umsetzung der 32 Einzelschritte auf die Stützstellen erfolgt über eine Konvertierungstabelle.

Mit Hilfe eines externen Interrupts wird in der SW der Nulldurchgang der Sinuswelle detektiert. Dieser "Detektions"-Interrupt startet einer Timer welcher mit dem Dimmungswert zwischen 0 und 10ms geladen ist. Ist der Timer abgelaufen (= Auslösen des Timer-Interrupts) wird der Triac gezündet. Das Zünden des Triac zum entsprechenden Zeitpunkt nach dem letzten Nulldurchgang durch geschieht durch Setzen des der Lampe entsprechenden Bits im Port. Das Bit sollte recht schnell wieder gelöscht werden (minimal 25 µs), um nicht unnötig lange Strom durch das Triac-Gate fliessen zu lassen.

Für eine stufenlose helligkeitseinstellung darf die Zeit nicht als linear betrachtet werden. Mathematisch betrachtet ist die scheinbare Helligkeit das Integral der Sinusfunktion über der Zeit zwischen Zündzeitpunkt und Nulldurchgangserkennung. Da ich eine optimale Helligkeitseinstellung realisieren wollte wurden zu den 32 Helligkeitsstufen mittels Integralfunktion die jeweiligen Zündzeitpunkt berechnet und in einer Tabelle konvertiert. Die Tabelle befindet sich als Datensatz in der SW definiert.

Für weitere Erklärungen verweise ich an dieser Stelle auf das Kapitel 8.8.6 "Linearisierung der Helligkeitswerte" in meinem Arbeitsdokument.


Aktoren - Relaisstufe für Beschattungsantrieb und Lichtschalter (Leistungsteile)

Relaissteuerung Antrieb und Licht
Prototyp Relaissteuerung Antrieb/Licht

Die Beschattungsanlage wird durch Elektromotoren angetrieben welche je nach Ansteuerung die Beschattung zwangsgesteuert zuziehen oder aufziehen. Der Anschluss der Elektromotoren erfolgt über eine 7-adrige Leitung mit 1,5 m2 Kupferdurchmesser pro Leitung. Wie beim normalen Rolladen-Antrieb gibt es eine phase für die Funktion AUF und eine Phase für die Funktion ZU.

Die beiden Steuerleitungen S1 und S2 für "auf" und "zu" werden über zwei getrennte Relais gesteuert.
Und weil wir hier schon mal beim Thema Relais sind werde ich das Thema ganzheitlich betrachten und gleichzeitig die Relais zum Einschalten des Lichts, die Spannungsversorgung für den Dimmer also, und die Funktion Dauerlicht betrachten.

Die Stromaufnahme der Relais bei einer Schaltspannung von 12V DC beträgt bei einer Bemessungsleistung von 0,65W ca. 54 mA. Für die Steuerung der Relais ist eine beschaltungstechnische Absicherung gegen Gegenläufigkeit vorgesehen welche durch den Zustand der angesteuerten Relais ein gleichzeitiges Auf- und Zufahren verhindert.
Es gelten die folgenden die Regeln, solange Motor auf fährt bekommt Motor zu keine Spannung, fährt Motor zu und möchte Motor auf fahren wird sofort Spannung für Motor zu unterbrochen. Weiter wurde durch durch eine digitale Schaltung die GPIO-Pins des Controllers durch Verknüpfungen so verriegelt, dass immer nur ein Treiber das Relais steuert.
Verriegelungskonzept Relais
Verriegelungskonzept Relais


Die Ausgänge des ATmega sind nicht dafür geeignet ein Relais zu treiben da ihre Leistung dafür nicht reicht. Aus diesem Grund wird im Projekt ConvCtrl eine Transistorstufe zum Schalten des Relais umgesetzt. Mit der Umsetzung konnten damit auch 12V-Relais verwendet werden. Die Transistorstufe wird in ihrer Definition für alle drei Relais "Motor AUF", "Motor ZU", "Beleuchtung EIN/AUS" und "Dauerlicht EIN/AUS" gleich umgesetzt. Das folgende Schaltbild zeigt exemplarisch eine Treiberstufe am Beispiel "Motor AUF".

Treiberstufe Relais
Treiberstufe Relais


Der folgende Schaltplan zeigt die gesamte Steuerung der vier im System vorhandenen Relais für Motor AUF-ZU, Spannung für Dimmung und Dauerlichtfunktion inklusive Logikverriegelung und HW-Verriegelung für Motorsteuerteil sowie Treiberstufe für Signalleitungen zur Entlastung des ATmega und Ansteuerung von Status-LED's.

Da im Reset- oder StartUp-Fall der ATmega - bis auf wenige Ausnahmen - seine Ports als hochohmige Eingänge schaltet, müssen die verwendeten Signalleitung OUT_AUF, OUT_ZU, OUT_CONL und OUT_LICHT mit 10k Ohm PullDown-Widerständen gegen floaten "abgesichert" werden. Dieser Sachverhalt viel bei der Inbetriebnahme des Prototypen auf bei dem es zu zufälligen Relais-Aktivitäten während der Initialisierung kam. Das Relais OUT_CONL bestimmt, ob die Lampe konstant mit voller Leitungs brennt (der Dimmer gebypassed wird) oder ob die Lampe über den Dimmer versorgt wird.

Komplette Relaissteuerung
Komplette Relaissteuerung


Aktoren - Lüfter

Prototyp der Relaissteuerung
Prototyp der Relaissteuerung

Zur Belüftung des Gehäuses um Wärme abzuleiten, aber auch zur Versorgung des Temperatur- und Luftfeuchtigkeitssensors wird eine Ventilator im Gehäuse eingebaut welcher direkt über Versorgungsspannung oder aber vom ATmega aus gesteuert werden kann.

Im folgenden wir die dafür notwendige Schaltung dargestellt und die Funktion erläutert.

Zur Spannungsversorgung werden die im System verfügbaren 12V verwendet. Bei der Auswahl des Lüfters ist auf geringen Stromverbrauch und kleine Dimensionierung zu achten! Bei der Umsetzung wird der Lüfter ein einen PWM geregelten Ausgang des ATmega128 angeschlossen os dass mittels SW die Drehzahl des Lüfters geregelt werden kann.

Lüftersteuerung
Lüftersteuerung


Achtung: FAN_ON ist Null-Aktiv. Lüfter läuft bei FAN_ON = 0 und steht bei FAN_ON = 1!
Mit dem Jumper JP1 kann die Schaltung so verändert werden, dass der Lüfter unabhängig vom ATmega läuft. Hierzu muss lediglich der Hauptschalter eingeschaltet und die Spannung von 12V anliegen.

Soll der Lüfter vom ATmega bei Bedarf und über SW gesteuert eingeschaltet werden so ist die folgende Jumperstellung zu verwenden:
Jumperstellung 2-3 = Dauerbetrieb
Jumperstellung 1-2 = µC Steuerung

Lüfter montiert Rückseite Lüfter montiert Vorderseite
Lüfter montiert Rückseite Lüfter montiert Rückseite


Aktoren - Sound

Prototyp der Soundausgabe
Prototyp der Soundausgabe

Es gab für die Realisierung einer Soundausgabe im Projekt zwei möglich Lösungen. Nämlich die Variante 1 mit Schwingkreis oder die Variante 2 mit PWM über den ATmega.
Da für Variante 2 keine Ressourcen mehr verfügbar waren um diesen Punkt sauber umzusetzen, wurde Variante 1 umgesetzt. Beide Lösungen arbeiten mit einem Piezo-Signalgeber als tonerzeugende Einheit. Zur Vollständigkeit möchte ich aber Variante 2 hier auch kurz beschrieben.

Ansteuerung des Piezo-Schallwandlers über Schwingkreis:

Das zur Ansteuerung des Piezo-Signalgebers erforderliche Rechtecksignal wird nicht direkt vom Controller erzeugt. Zum einen würde dies zu Timing-Problemen mit anderen, zeitkritischen Programmteilen im Projekt führen, zum anderen wären für eine ausreichende Amplitude bzw. Flankensteilheit ohnehin externe Treiberkomponenten erforderlich. Deshalb ist mit zwei NANDGattern (IC1) und R1+R2, C1 ein Oszillator aufgebaut, der bei Ausgabe eines High-Signals am Port mit ca. 4 kHz schwingt.
Soundausgabe über Schwingkreis
Soundausgabe über Schwingkreis

Zur Justage der Frequenz wird ein stehendes Potentiometer mit 5k eingesetzt.


Ansteuerung eines Piezo-Schallwandlers mittels PWM:

Durch den Einsatz eines weiteren Timers des ATmegas könnte man eine Schaltung realisieren welche in der Lage ist, die Tonhöhe mittels Puls-Weiten-Modulation (PWM) zu verändern. Der gleiche Piezo wird wie bei Variante 1 über eine Transistor-Treiberstufe an 12V betrieben. Wie aber schon beschrieben kam diese Lösung mangels Ressourcen und Timer nicht zum Einsatz.

Soundausgabe über PWM
Soundausgabe über PWM



Sensoren - Wind

Ein Schalenkreuzanemometer
Ein Schalenkreuzanemometer

Am System wird ein Windgeber angeschlossen welcher die Windgeschwindigkeit erfasst, anzeigt und ggf. ab einer einstellbaren Schwelle die Beschattung automatisch auffährt. Bei dem Windgeber handelt es sich um einen kugelgelagerten Kleinwindgeber der Firma rb-Messtechnik Rein-hard. Der Wingeber ist mit Kugellager und Reedkontakt ausgeführt.
Der Schalendurchmesser beträgt 120 mm, der Ausgang ist mit Reedkontakt ausgelegt und somit sehr flexibel für Beschaltung und Anschluss an den Controller. 1 Impuls pro Sekunde entspricht 2,5 km/h. Die Schaltleistung beträgt max. 24V 5W.

Mittels des Reedkontakts kann eine einfache Anbindung an den ATmega der folgenden Form erfolgen:

Beschaltung des Windgebers
Beschaltung des Windgebers

Um das vom Windgeber gelieferte Impulssignal zu bereinigen wird es über zwei NAND-Schmitt-Trigger geführt die wiederum eine saubere Flanke zur Interrupterkennung für den ATmega erzeugen.
Die fertig montierte Aussensensorik
Die fertig montierte Aussensensorik


Sensoren - Regen

Prototyp der Regensensorbeschaltung
Prototyp der Regensensorbeschaltung

Zur Regenerkennung wird im Projekt ConvCtrl der Regensensor von Conrad Electronik in einem speziell dafür geeigneten Gehäuse verwendet. An dieser Stelle möchte ich nicht auf das Modul oder den Bausatz von Conrad veweisen sondern vielmehr auf die Bedienungsanleitung verweisen welche sich unter Mitgeltende Unterlagen und Sonstiges am Ende dieser Seite befindet.
Konzentrieren wir uns also auf die Anbindung des Moduls an das Projekt.

Die Heizung des Regensensors wird über eine separate 3.-Leitung betrieben. Die Beschaltung in Verbindung mit der Gesamtsteuerung sieht vor, die Heizung durch Schalter separat zu steuern. Hierzu wird die Schaltspannung mit zwei Leitungen vom Regensensor zurück zum ConvCtrl geführt und dort über einen Schalter konfigurierbar gemacht. Die Umschaltung kann während des betriebs durch einen kleinen Schalter am Gehäuse erfolgen. Der Grundgedanke hierzu ist folgender: Ist der Regensensor der Nässe ausgesetzt und zeigt dieser Regen an so ist es auch nicht notwendig, dass die Beschattung zugefahren wird. Es kann jedoch notwendig sein, mit Hinblick auf Wintermonate den Regensensor zu beheizen um Eis und Schnee abtauen zu lassen.

Am Anschlussprinzip des Regensensors hat sich jedoch nichts geändert. Der 3-polige Schraubklemmenblock beinhaltet die Anschlüsse.
- = GND (Spannungsversorgung)
+ = +12V (Spannungsversorgung)
OUT = Geschalteter Ausgang

Wie dem Schaltplan des Regensensors zu entnehmen ist wird der Out Ausgang mit einem Transistor gegen Masse geschaltet so dass zwischen +Uv und Out eine Spannung von +12V anliegt.

Die Beschaltung sieht vor, die 12V mittels Spannungsteiler im Verhältnis 1:2,4 zu teilen und über eine NAND-Schmitt-Trigger-Kombination auf +5V Eingangspegel für den ATmega zu normieren.
Der Spannungsteiler wird hochohmig ausgelegt um den Stromverbrauch gering zu halten.

Beschaltung des Regensensors
Beschaltung des Regensensors


Zur Beschaltung und Ankopplung an die Wintergartensteuerung wird eine min. 5-adrige flexible Leitung benötigt. Über diese Leitung wird die Versorgungsspannung als auch die Schaltleitung für Regenerkennung und Sensorheizung geführt. Bei der Realisierung wird eine 10-adrige Steuerleitung eingesetzt. Die Steuerleitung wird über spezielle Kabelverschraubungen in das Gehäuse geführt.

Details des Regensensors Regensensor im Verbund
Details des Regensensors Regensensor im Verbund


Sensoren - Temperatur und Luftfeuchtigkeit

Temperatur- und Luftfeuchtigkeitssensor SHT71
Temperatur- und Luftfeuchtigkeitssensor SHT71

Zur Messwerterfassung von Temperatur und Luftfeuchtigkeit wird der Sensor SHT71 der Firma Sensirion eingesetzt. Der Sensor ist ein Präzisionsfeuchtesensor SHT71: Digital, steckbar & vollständig kalibriert!

Der digitale SHT71 Feuchtesensor ist vollständig kalibriert und dank steckbarem Pin-Type Package (für 1.27mm Sockets) einfach zu montieren. Mit individueller Kalibration und digitalem Output (CMOSens Technologie) ist der SHT71 vollständig austauschbar. Das erspart die mühsame und aufwändige Rekalibrierung im Falle eines Sensorwechsels/-austauschs.

Der Sensorkopf ist nur durch eine dünne Brücke mit den Pins verbunden und dadurch optimal thermisch isoliert, was nochmals für verbesserte Ansprechzeiten sorgt. Die Pins sind vergoldet und damit sehr korrosionsbeständig.


Leistungsmerkmale:

  • 2 Sensoren für relative Feuchte und Temperatur
  • Präzise Taupunktberechnung möglich
  • Messbereich: 0-100% r.F.
  • Absolute Genauigkeit (r.F.): +/- 3% r.F.
  • Genauigkeit Temp.sensor: +/- 0.46°C @ 25 °C
  • Kalibriert und digital (2-Wire Schnittstelle)
  • Schnelle Ansprechzeit (r.F.): < 4 sec.
  • Tiefer Stromverbrauch (typ. 30 µW)
  • niedrige Kosten
  • Präziser High-End Sensor, individuell kalibriert in Präzisionsfeuchtekammer (Taupunktspiegel)
  • 100%ig austauschbar ohne Rekalibrierung!
  • Führende (CMOSens Technologie für überlegene Langzeitstabilität
  • Einfachste Handhabung dank Kalibration und digitaler 2-Wire Schnittstelle preisgünstig


Interface:

Basisbeschaltung des SHT71
Basisbeschaltung des SHT71


Beschaltung des SHT71:

Der Sensor verfügt zwar über ein "two wire interface". Er kann aber nicht gleichzeitig mit anderen I2C-Komponenten am TWI-Bus des ATmega betrieben werden. Der SHT erfüllt nicht die I2C Spezifikation und wird anders initialisiert!! Da es sich aber dennoch um einen sehr leistungsfähigen Baustein handelt wird er in diesem Projekt verwendet und über zwei separate Leitungen am ATmega angebunden. Die Programmierung erfolgt quasi von Hand und verwendet nicht die standardisierte TWI-HW-Schnittstelle ud die dazu verwendbaren TWI-Routinen von BASCOM.

Beschaltung des SHT71
Beschaltung des SHT71

Prototyp der SHT71 Beschaltung
Prototyp der SHT71 Beschaltung


Das Datenblatt zum SHT71 schreibt einen 100 nF Kondensator als Abblockkondensator vor. Erfahrungen anderer Benutzer im Internet beschreiben aber die Verwendung eines 10 nF Keramik-Kondensators um das Springen von Messwerten und verhindern.

Zur Beschaltung des SHT71 ist auch der PullUp-Widerstand zwingend für eine saubere Funktion notwendig. Der ATmega interne PullUp reicht für die Implementierung nicht aus!
Im Gesamtdokument zum Projekt welches ja als Download auch hier auf dieser Seite bereitgestellt wird befinden sich ausführliche Oszillogramme welche die Kommunikation mit dem SHT71 beschreiben und erklären. Weiter habe ich wichtige Informationen als Zusammenfassung aus den Datenblättern aufgenommen. Alle diese Themen hier mit aufzunehmen würde den Rahmen sprengen, aus diesem Grund verweise ich darauf.


Sensoren - Licht

Spektrale Empfindlichkeit Lichtsensor
Spektrale Empfindlichkeit Lichtsensor

Es gibt eine Vielzahl von Lichtsensoren die auf dem Markt erhältlich sind. Im Projekt wird der Lichtsensor TSL250R-LF der Firma TAOS eingesetzt. Hinter TAOS verbirgt sicht die Firma Texas Advanced Optical Solutions Inc., ein Ableger der bekannten Texas Instruments Inc.

Der TSL250R besteht aus einer Fotodiode und einem integrierten Verstärker. Zum Anschluss an die Schaltung benötigt der TSL250R ausschließlich Versorgungsspannung (Pin 2) und Masse (Pin 1). An Pin 3 liefert der Sensor eine Ausgangsspannung welche proportional zum einfallenden Licht ist. Die spektrale Empfindlichkeit ist in folgender Abbildung dargestellt, sie reicht von Ultraviolett (links) bis Intra-rot (rechts) und hat ihr Maximum im sichtbaren Bereich des Lichtspektrums.

Der TSL250R arbeitet mit Betriebspannungen zwischen 2,70 und 5,50 V und einem typischen Strom von 1,1 mA.

Das Maximum der Ausgangsspannung (unter voller Bestrahlung) für diesen Sensor liegt unter 4V, wenn der Baustein mit 5V betrieben wird. Somit haben wir die Wahl, den Sensor direkt ohne zusätzliche Beschaltung mit einer Referenzspannung von 5V über einen ADC-Kanal an den Kontroller anzuschließen. Ohne zusätzliche Verstärkung verlieren wir aber über den möglichen Spannungsbereich hinweg 1V Auflösung. Für einen 8-Bit-ADC bedeutet eine 4V Eingangsspannung einen Messwert von 0xCC. Der Messwertebereich geht damit von 0x00 bis 0xCC. Abhängig von der Applikation ist dies kein Problem. Wenn es aber darum geht präzisere Lichtmessungen durchzuführen sollte der gesamte verfügbare ADC-Bereich ausgenutzt werden. Für diesen Zweck wurde im Projekt ein Operationsverstärker verwendet welcher das Sensor-Ausgangssignal mit einem Verstärkungsfaktor von 1,25 auf die vom ADV möglichen 5V Maximum verstärkt.

Ein guter geeigneter und allgemein eingesetzter Prazisions-OpAMP ist der AD623 von Analog Devices. Er hat eine rail-to-rail Funktion, kann mit einer einzigen Betriebsspannung betrieben werden, benötigt wenig Strom und ist sehr leicht verständlich. Außerdem benötigt der AD623 nur einen einzigen Widerstand zum Einstellen des Verstärkungsfaktors.

Beschaltung des Lichtsensors
Beschaltung des Lichtsensors

Prototyp der Lichtsensor-Beschaltung
Prototyp der Lichtsensor-Beschaltung


Der Ausgang des TSL250R Sensors (Pin 3) ist verbunden mit dem nichtinvertierenden Eingang des AD624 OpAmp (Pin 3). Der invertierende Eingang ist auf Masse gelegt. Der Widerstände welcher den Verstärkungsfaktor festlegt ist zwischen den Pins 1 und 8 beschaltet. Die negative Spannungsversorgung des Bausteins (-VS) ist wegen des Betriebs mit einer einzigen Spannung auf Masse gelegt. Die positive Spannungsversorgung (+VS) wird mit VCC = +5V verbunden und mit zwei Kon-densatoren gegen Masse gekoppelt. Der Referenzeingang (REF) des OpAmp wird ebenso an Masse angeschlossen. Der Ausgang (Pin 6) wird direkt mit dem Analogeingang ADC1 des ATmega verschaltet.


Module - Funkuhr DCF77


Für den Empfang des DCF77-Signals aus Frankfurt zur Synchronisation der internen Uhr wird das DCF77-Modul von Conrad Electronic mit der Artikelnummer 641138 - LN eingesetzt.

Conrad DCF77 Modul
Conrad DCF77 Modul

Beschaltung des DCF77 Modul
Beschaltung des DCF77 Modul

Prototyp der DCF77 Beschaltung inkl. RTC
Prototyp der DCF77 Beschaltung inkl. RTC

Aus Empfangs- und Befestigungs-Gründen wurde zunächst der DCF77-Empfänger nach Plan auf dem Konsolen-Board PCB1 angebracht und befestigt. Das durch Schmitt-Triggern aufbereitete Signal wurde über den Pfostenstecker auf Board PCB2 geführt. Im eingebauten Aluminium-Eingenbaugehäuse traten jedoch Probleme beim Empfang des DCF77-Signals auf, so dass die Antennenleitung verlängert, und die Ferrit-Antenne in einem kleinen Kunststoffgehäuse außerhalb des Metallgehäuses befestigt werden musste. Seit dieser Abänderung ist der DCF77-Empfang stabil.

BASCOM selbst bietet bereits einige Möglichkeiten zum Empfang und zur Anbindung von DCF77. Die Systemeinstellungen wurden so gewählt, dass nur einmal innerhalb von 24 Stunden die Uhrzeit mit DCF77 synchronisiert wird.


Das DCF77-Signal:

Das DCF77-Signal wird jede Sekunde einmal gesendet. Nun ist zu beachten, wie lang der zur jeweiligen Sekunde gesendete Impuls ist. Bei einer Länge von 0,1s handelt es sich um eine '0', bei einer Impulsdauer von 0,2s um eine '1'. Um den Beginn einer Sendung zu erkennen, entfällt das 59. Bit. Dies dient als Synchronisationsgrundlage.

Insgesamt sieht das Bitmuster dann also folgendermaßen aus:

Bit-Bedeutung DCF77-Signal
Bit-Bedeutung DCF77-Signal


Unten ein Beispiel für eine DCF77 Datenreihe (die untere Reihe dient lediglich der Orientierung):

00000000000000000100100000101110010101000111100010001000001
01234567890123456789012345678901234567890123456789012345678

  • Wie man sieht, ist das 17. Bit gesetzt, wir haben also Sommerzeit.
  • Dann ist Bit 20 wieder gesetzt --> Zeitbeginn.
  • Bei den Minuten ist lediglich Bit 26 gesetzt, es waren also 20 Minuten.
  • Da die Anzahl der gesetzten Bits bei den Minuten ungerade war, ist das Prüfbit (28.) gesetzt.
  • Da Bit 29, 30 und 33 gesetzt sind, ergibt sich die Stundenzahl zu 13.
  • Bei einer Zahl von 3 gesetzten Bits (ungerade) muss das Prüfbit (35.) wieder gesetzt sein.
  • Hiermit wäre bereits die Uhrzeit zu 13:20 Uhr bestimmt.
  • Analog kann man sich auch das Datum ausrechnen.

Ausgewertet wird das Signal bei mir mittels eines Timers sowie des externen Interrupts INT0. Wird am Pin eine steigende Flanke erkannt, wird der Interrupt ausgelöst und vermerkt in einer Variablen den Signalbeginn. Ein kontinuierlich laufenden Timerinterrupt beobachtet nun den Pin und zählt die Signaldauer mittels einer Variablen hoch. Detektiert der Timerinterrupt, dass am Pin L-Pegel herrscht, wertet er die Signaldauer aus und setzt die Variablen zurück. Wird gerade kein Signal empfangen, zählt der Timerinterrupt die Pausenzeiten aus, um eine Synchronisation (siehe 59. Bit) zu erreichen. Alle Werte werden in ein Array geschrieben. Ist dieses voll, wurde ein komplettes Zeitsignal empfangen. Nun kann dieses ausgewertet und die Uhrzeit entsprechend aktualisiert werden.
Achtung: Während der Dimmer arbeitet ist der Empfang des DCF77-Uhrenmoduls zu deaktivieren. Da es sonst zu zeitlichen Verschiebungen bei der Nulldurchgangserkennung kommen kann.
Beschaltung des DCF77 Moduls Das DCF77 Modul von Conrad Empfangene Datums- und Zeitinformation
Beschaltung des DCF77 Moduls Das DCF77 Modul von Conrad Empfangene Datums- und Zeitinformation



Module - Datenlogger

Prototyp der EEPROM Beschaltung
Prototyp der EEPROM Beschaltung
Für die Speicherung von Messwerten mit Zeit und Datumsinformationen wird ein externes EEPROM an den AT-mega via I2C-Bus angekoppelt. Die Setting-Daten und Einstellungen werden im 4k großen internen EEPROM-Speicher des ATmega128 abgelegt. Dieser Abschnitt beschreibt primär die Ansteuerung des externen EEPROM, geht aber auch auf die Datenstrukturen und Zugriffsmechanismen des internen EEPROM ein.
Für die Umsetzung wurde der EEPROM-Typen der Firma ST24C512. Der Baustein ST24C512 ist ein 512KBit Baustein. Er ist über 65.536 x 8 Bit organisiert. Er besitzt einen 128Byte Page-Write-Modus, erlaubt aber partielle Page-Zugriffe.
Die Festlegung der Dateninhalte und Datenstrukturen wurden zum Zeitpunkt der Systemprogrammierung getroffen und dokumentiert!

Aus dem Datenblatt des 24C512 geht hervor, welche Leistungsmerkmale er besitzt:

  • Two Wire (I2C) Interface
  • Unterstützung von Busgeschwindigkeiten
  • Byte- und Page-Write-Mode
  • direkte Adressierung
  • automaisches Adress-Inkrement
  • mehr als 1 Million Schreib/Lese Zyklen
  • mindestens 40 Jahr Datensicherheit
  • Geräte-ID 0b1010xxxx = 0xA0

Beschaltung:

Beschaltung des externen EEPROM
Beschaltung des externen EEPROM

Zu Testzwecken können die gemäß Spezifikation geforderten PullUp-Widerstände des I2C-Busses durch Jumper (JP1 und JP2) aktiviert / deaktiviert werden. Ggf. ist die Beschaltung auch durch Drahtbrücken im Layout zu ersetzen bzw. ausgeführt. In den Schaltplänen der weiteren I2C Busteilnehmer sind die PullUp-Widerstände ebenfalls ausgeführt. In einem System mit mehreren Teilnehmern wird die Beschaltung jedoch nur einmal benötigt um den Bus zu treiben.
Der Abschlusswiderstand kann zwischen 5k und 10k variiert werden. Erste Versuche bei einer Baudrate von 400kBit zeigen keine sauberen Rechteckflanken auf dem Datenbus so dass der Einsatz von 5k vorbereitet und getestet wird.

Ein I2C Gerät bildet aus seiner Geräte-ID und den möglichen Adresspins (A0-A2) seine Geräteadresse im Bus. Somit würden sich auch mehrere Geräte des gleichen Typs in einem Bus betreiben lassen. Für das Projekt ConvCtrl sind die Adressen via Jumper konfigurierbar.
Der gewählte Baustein ST24C512 besitzt nur zwei Adressleitung A0 und A1. Die Adressleitung A2 wie im obigen Schaltbild dargestellt (Pin3) ist beim ST24C512 not connected (NC).

Zum Betrieb des externen EEPROM wird die Adresse 0b00 gewählt. Daraus ergibt sich folgende Jumper-Stellung:
Jumper JP3 auf Position GND (1-2)
Jumper JP4 auf Position GND (1-2)
Jumper JP5 auf Position GND (1-2) (nicht relevant)


Im Gesamtdokument zum Projekt welches ja als Download auch hier auf dieser Seite bereitgestellt wird befinden sich ausführliche Oszillogramme welche die Kommunikation mit dem EEPROM beschreiben und erklären. Weiter habe ich wichtige Informationen als Zusammenfassung aus den Datenblättern aufgenommen. Alle diese Themen hier mit aufzunehmen würde den Rahmen sprengen, aus diesem Grund verweise ich darauf.


Beispiel einer Datensequenz im Projekt:

Oszillogramm einer I2C-Schreibsequenz
Oszillogramm einer I2C-Schreibsequenz


Unterschiede bei der Beschaltung der Abschlusswiderstände:

Die folgenden Oszillogramme zeigen den Unterschied bei einer Beschaltung der I2C-Buss Abschlusswiderstände mit 5kΩ und 10kΩ.
Oszillogramm I2C mit 10kΩ bei 400k Baud
Oszillogramm I2C mit 10kΩ bei 400k Baud
Oszillogramm I2C mit 5kΩ bei 400 kBaud
Oszillogramm I2C mit 5kΩ bei 400 kBaud

Bustaktrate 100k Baud gegenüber 400k Baud:

Oszillogramm I2C bei 100 kBaud
Oszillogramm I2C bei 100 kBaud
Oszillogramm I2C bei 400 kBaud
Oszillogramm I2C bei 400 kBaud

Ch1 (gelb) dargestellt ist die Datenleitung SDA.
Ch2 (hellblau) dargestellt ist die Clockleitung SCL.


Adressraum und Datenfestlegung EEPROM:

Der Adressraum des 24C512 umfasst die Adressen 0x0000 bis 0xFFFF (0 - 65.535). Es ist vorgesehen die Tabelle für die Initialisierung und die Basisdaten im internen EEPROM des ATmega128 abzulegen. Für Das Datenlogging der Umweltdaten dient das externe EEPROM.

Datenstrukturen und Datenfelder im EEPROM (intern und extern)
Datenstrukturen und Datenfelder im EEPROM (intern und extern)



Software - Zeit und Datum


Wie oben beschrieben, verfügt das Gesamtsystem über die Möglichkeit, das DCF77-Funkuhrsignal zu empfangen. Zur Laufzeit wurde im System eine SoftClock implementiert welche Zeit- und Datumsinformationen bereithält.
über diese Zeit- und Datumsinformationen wurde eine Timersteuerung für die Beschattung realisiert welche unten noch etwas genauer beschrieben ist. Die SoftClock erzeugt einen Sekundentakt welcher zum Scheduling von Zeitfunktionen, Timeouts usw. verwendet wird.

Um sofort nach Systemstart aktuelle Zeit- und Datumsinformation zur Verfügung zu haben, wurde neben dem DCF77-Empfang noch eine RTC eingesetzt.
Beschaltung der RTC DS1307
Beschaltung der RTC DS1307
Für die Verwaltung / Berechung der Urzeit im Projekt ConvCtrl wir der externe RTC-Baustein DS 1307 (Echtzeituhr) mit Stützbatterie eingesetzt. Diese Vorgehensweise dient zur Entlastung des Gesamtsystem gegenüber der ursprünglichenVorgehensweise bei der die Zeitrechung über SW und Timer-Interrupt geplant war.
über diesen Weg muss der RTC nur einmal bei Systemstart über den DCF77-Empfänger aktualisiert werden. Als weitere Synchronisation wird optional alle 24 Stunden einmal neu synchronisiert.
Die RTC wird über eine 3V Stützbatterie mit Spannungs versorgt so dass die Urzeit auch gehalten werden kann wenn die Steuerung selbst abgeschaltet ist.

Die RTC DS1307 verfügt über einen I2C-Bus so dass hier keine weiteren Ressourcen benötigt werden. Die Uhr kann parallel zum I2C-EEPROM adressiert und betrieben werden.

Detailinformationen zum DS1307:

  • TWI (I2C)-Schnittstelle
  • 100 kHz Protokoll
  • Echtzeituhr für Jahr, Monat, Stunde, Minute und Sekunde
  • geringe Stromaufnahme
  • batteriegestützte Datenhaltung, weniger als 500 nA im Batteriebetrieb
  • Daten liegen im BCD Format vor
  • Register 0 = Sekunde, BCD, Bit7 Stop/Run RTC
  • Register 1 = Minute, BCD
  • Register 2 = Stunde, BCD
  • berücksichtigt Schaltjahre bis 2100
  • GeräteID 0B1101xxxx = 0xD0
  • keine Adresserweiterung, also nur eine RTC in einem Bus


Die Beschaltung des DS1307 RTC:

Aufschaltung des DS1307 an ATmega
Aufschaltung des DS1307 an ATmega

Die RTC DS1307 wurde im Rahmen der DCF77 Anbindung in Betrieb genommen.



Software - Selbstcheck


Kurz ein paar Gedanken zum Selbsttest...

Während der Initialisierungsphase wird bereits das Display initialisiert und der StartUp-Bildschirm angezeigt. Danach werden alle weiteren Datenstrukturen geladen, PIN's initialisiert und Module aktiviert. Nach erfolgreicher Initialisierung kann ein kurzer Dreifach-Beep ausgegeben werden. Dieser Beep ist aber abhängig von der Systemeinstellung mittels derer die Akustikausgabe ein- und ausgeschaltet werden kann. Nach dem Selbscheck und der Initialisierung wird für 3 Sekunden das aktuelle Datum und die Uhrzeit angezeigt. Danach schaltet das Display in das Hauptmenü und das System ist bereit über Tasten bedient zu werden.

Erkannte Fehler und Fehlerzustände im System sollen abgefangen und zyklisch auf dem Display angezeigt werden. Zum aktuellen Implementierungsstand der Software ist die Funktion jedoch noch nicht vollständig umgesetzt bzw. konnten keine geeigneten Funktionen festgelegt und gefunden werden für des es sinnvoll wäre Fehlermeldungen auszugeben. Bei Erkennung eines Fehler könnte auch ein Warnton ausgegeben werden. Aber auch diese Funktion ist nicht umgesetzt. Zusätzliche HW für Eigendiagnose und Selbstüberwachungwurde nicht umgesetzt.


Software - Timersteuerung

Die Timer im Gesamtsystem haben der Priorität nach der Reihenfolge Timer2, Timer1, Timer0, Timer3.
Im Projekt werden die Timer 1, 2 und 3 verwendet.

Timer1:

Der Timer1 wird für die Konfiguration und Ansteuerung der DCF77 Funkuhr verwendet.

Timer2:

Der Timer2 hat die höchste Priorität im System. Mit ihm wird der Dimmer, genauer gesagt der TRIAC-Zündimpuls gerechnet. Nach einer Nulldurchgangserkennung des Netzspannung-Sinus wird der Timer2 mit dem zur Helligkeit korrespondierenden Wert geladen. Sobald der Timer abgelaufen ist wird über die Timer-ISR der Triac gezündet.

Timer3:

Der Timer3 wird für die Puls-Weiten-Modulation (PWM) verwendet. OC3A: Er dient zur Steuerung der Display-Helligkeit. Genauere Erläuterungen und Beschreibungen sowie der Beispielcode ist im Kapitel zum LCD-Display enthalten. OC3B: Er dient zur Steuerung der Lüftergeschwindigkeit. Genauere Erläuterungen und Beschreibungen sowie der Beispielcode ist im Kapitel zum Lüfter enthalten.

Weitere Timerfunktionen:

In der Software wurden vom Benutzer programmierbare Timer eingebaut mittels derer es möglich ist, die Beschattung zu einem bestimmten Zeitpunkt an einem bestimmten Tag automatisch auf- und zufahren zu lassen. Die Funktionen selbst sind niederprior und werden durch Umweltbedingungen überlagert. Ein Timer löst nicht aus falls der Regensensor oder der Windsensor ansprechen. Eine einmalig nicht ausgelöst Funktion wird nicht gebuffert und zu einem späteren Zeitpunkt ausgelöst. Für weitere Details verweise ich auf den Sourcecode und die darin in ausreichender Anzahl enthaltenen Kommentare sowie auf die Menüstrukturen.


Sonstiges - Gehäuse

Trotz langer Suche konnte ich kein geeignetes Gehäuse für meinen Bedarf finden und ermitteln. Somit entschied ich mich nach einer Bauhausmeditation für den Weg, aus vorgefertigten Aluminiumprofilen ein eigenes Gehäuse zu bauen. Heute muss ich sagen, die Entscheidung war richtig und das maßgefertigte Gehäuse erfüllt seine Zwecke hervorragend. Aber der Weg dort hin war mühsam und Schweißtreibend.

Das Gehäuse wurde aus Aluminium gefertigt, mit speziellem Porenfüller grundiert und mit cremweißer Frabe passend zur Fasadenfarbe lackiert. 1/3 der Oberfläche ist geschlossen. Die Bedienelemente sind mit Acrylglas abgedeckt.

Nun folgen einige Impressionen zum Gehäuse als auch die Konstruktionszeichnungen im Details.
Gesamtansicht Gesamtansicht Front geschlossen Gesamtansicht Deckel und Boden
Gesamtansicht Gesamtansicht Front geschlossen Gesamtansicht Deckel und Boden
Rückseite Linke und rechte Seite Materialauswahl
Rückseite Linke und rechte Seite Materialauswahl



Fertigstellung und Einbau


So, und hier abschließend noch einige Eindrücke von der Fertigstellung und vom Einbau der Steuerung:

Verkabelung bei Einbau Fertiger Einbau
Verkabelung bei Einbau Fertiger Einbau
Geschlossene Front Fertiges Gesamtsystem
Geschlossene Front Fertiges Gesamtsystem



Stücklisten

Die folgenden Teile und Baugruppen wurden für die Wintergartensteuerung ConvCtrl verarbeitet:

Stückliste für PCB1: Controller-Board
Menge Bauteile Beschreibung Lieferant Bestellnummer Maße Preis
1 -- Axiallüfter 12V 40x40+ Conrad Electronic 53 73 14 - 62 40x40mm 14,95 €
1 -- Kippschalter R13-405AL-05 RT LED Conrad Electronic 70 10 47 - 62 -- 1,50 €
1 -- Kleinwindgeber Schalenkreuzanemometer rb-messtechnik RE177858 -- 50,00 €
1 -- Crimpsockelgehäuse, einreihig, grün RS Online 233-1817 2-polig 4,15
1 -- Crimpkontakt, Snap-In, 32-28AWG, 0.63mm, vergoldet RS-Online 233-1889 0.63mm 9,70 €
1 -- Kippschalter, 2-polig, 3A-25, Ein-Ein Reichelt Elektronik MS 500F -- 1,70 €
2 -- Aufsteckkühlkürper TO-220 Reichelt Elektronik V FI342 TO-220 2,30 €
2 -- D-SUB Buchse, 9-polig f. Flachbandkabel Reichelt Elektronik D-SUB BU 09FB -- 0,92 €
1 -- Lithium-Knopfzelle, 3 Volt, 38 mAh Reichelt Elektronik BR 1225 12,5x2,5mm 0,85 €
2 -- Pfostenbuchse, 10-polig mit Zugentlastung Reichelt Elektronik PFL 10 -- 0,182 €
2 -- Pfostenbuchse, 40-polig, mit Zugentlastung Reichelt Elektronik PSL 40 -- 1,30 €
1 -- Flachbandkabel AWG28, 40-pol Reichelt Elektronik AWG 28-40F 3M 3m 11,80 €
1 -- Flachbandkabel AWG28, 10-pol., grau, 3m-Ring Reichelt Elektronik AWG 28-10G 3M 3m 2,05 €
1 J2 0R Brücke -- -- -- --
5 D1, D2, D3, D4, D5 Diode 1N4148 Reichelt Elektronik 1N 4148 -- 0,10 €
1 OC1 Optokoppler 4N25 Reichelt Elektronik 4N 25 DIL-8 0,17 €
4 RL1, RL2, RL3, RL4 Steckrelais, 1x UM, 250V/10A, 12V, RM 5,0mm Reichelt Elektronik FIN 40.51.9 12V RM5,0 64,0 €
1 IC4 AND-Gatter 74HCT08N Reichelt Elektronik 74HTC 08 DIL-14 0,18 €
1 IC7 Hex inv. Schmitt-Trigger 74HCT14N Reichelt Elektronik 74HTC 14 DIL-14 0,21 €
1 IC5 XOR-Gatter 74HCT86N Reichelt Elektronik 74HTC 86 DIL-14 0,22 €
1 IC10 NAND-Gatter 74HCT132N Reichelt Elektronik 74HTC 132 DIL-14 0,28 €
1 IC2 Octal Driver 74HCT245N Reichelt Elektronik 74HTC 245 DIL-20 0,31 €
3 X3, X4, X6 Anreihklemme 2-polig, RM5,0 Reichelt Elektronik AKL055-02 RM5,0 0,42 €
1 X5 Anreihklemme 3-polig, RM5,0 Reichelt Elektronik AKL055-03 RM5,0mm 0,14 €
1 X2 Anreihklemme 3-polig, RM7,5 Reichelt Elektronik AKL171-03 RM7,5mm 0,42 €
1 X1 Anreihklemme 4-polig, RM7,5 Reichelt Elektronik AKL171-04 RM7,5mm 0,59 €
1 IC6 CMOS seriell EEPROM Reichelt Elektronik ST 24C512 BN6 DIP-8 2,60 €
1 B2 DIL-Gleichrichter B250C800 Reichelt Elektronik B250C800DIP DIL-8 0,48 €
4 Q2, Q3, Q4, Q5 Transistor BC546B Reichelt Elektronik BC 546B -- 0,16 €
1 Q6 BD139 Reichelt Elektronik BD 139 -- 0,12 €
1 BAT1 Knopfzellenhalter für 12 mm Reichelt Elektronik KZH 12-1 12 mm 1,75 €
2 C20, C21 1,2nF CAPACITOR025-025X050 Reichelt Elektronik KERKO 1,2N -- 0,082 €
2 C8, C9 22pF CAPACITOR025-025X050 Reichelt Elektronik KERKO 22P -- 0,10 €
1 C11 47nF CAPACITOR050-025X075 Reichelt Elektronik KERKO 47N -- 0,14 €
2 C24, C26 100 nF CAPACITOR050-025X075 Reichelt Elektronik KERKO 100N -- 0,144 €
14 C1, C2, C4, C5, C6, C7, C10, C12,
C13, C19, C22, C27, C28, C29
100nF CAPACITOR050-025X075 Reichelt Elektronik MKS-2 100N -- 0,98 €
1 C25 10nF 230V CAPACITOR102-043X133 Reichelt Elektronik MKS-4-630 10N -- 0,11 €
1 Q1 16,0000 MHz CRYTALHC49U-V Reichelt Elektronik 16,0000-HC49U-S -- 0,24 €
1 Q7 32,768 kHz CRYTALTC26V Reichelt Elektronik 7,3728-HC49U-S -- 0,24 €
1 IC8 Real-Time-Clock RTC DS1307 Reichelt Elektronik DS 1302 DIP-8 4,50 €
1 L1 Drosselspule 10µH INDUCTOR0207/12 Reichelt Elektronik SMCC 10µ axial 0,16 €
4 JP2, JP4, JP5, JP6 Jumper JP1E Reichelt Elektronik SL 1X50W 2,54 RM2,54 0,56 €
1 JP3 Jumper JP2E Reichelt Elektronik -- siehe JP2 -- RM2,54 0,00 €
1 LED1 LED3MM rot low current Reichelt Elektronik LED 3MM 2MA RT 3 mm 0,09 €
1 IC9 Operationsverstärker LM358N Reichelt Elektronik LM 358 DIP DIP-8 0,092 €
1 SV5 MA03-2 für ISP06 Reichelt Elektronik SL 2X50G 2,54 RM2,54 0,68 €
1 SV4 MA05-2 für ISP10 Reichelt Elektronik -- siehe SV5 - RM2,54 0,00 €
1 SV7 MA05-2 für RS232 Reichelt Elektronik -- siehe SV5 - RM2,54 0,00 €
1 SV3 PinHeader Male 2x13 (Power) MA13-2W Reichelt Elektronik SL 2X13W 2,54 RM2,54 0,26 €
1 SV2 PinHeader Male 2x13 (Supply) MA13-2W Reichelt Elektronik SL 2X13W 2,54 RM2,54 0,26 €
1 SV1 PinHeader Male 2x20 MA20-2 Reichelt Elektronik -- siehe SV5 -- RM2,54 0,00 €
1 IC3 RS232 Interface MAX232 Reichelt Elektronik MAX 232 EPE DIL-16 1,90 €
1 IC1 ATMega AVR 128-16 TQFP64 Reichelt Elektronik ATMEGA 128-16 TQ TQFP64 7,25 €
1 OC2 Optokoppler MOC3020M Reichelt Elektronik MOC 3020 DIL-8 0,29 €
4 C15, C16, C17, C18 1µF POLARIZEDCAPACITORE2.5-5 Reichelt Elektronik RAD 1/63 5x11mm, RM2,0mm 0,16 €
1 C3 47µF POLARIZEDCAPACITORE2.5-6 Reichelt Elektronik RAD 47/35 6,3x11mm, RM2,5mm 0,04 €
1 C23 470µF POLARIZEDCAPACITORE5-10.5 Reichelt Elektronik RAD 470/25 10x16mm, RM5,0 0,11 €
1 R32 1k5 RESISTOR0207/10 Reichelt Elektronik METALL 1,50K -- 0,08 €
1 R3 4k7 RESISTOR0207/10 Reichelt Elektronik METALL 4,70K -- 0,08 €
14 R1, R2, R6, R12, R15, R16, R18, R20,
R22, R23, R25, R31, R33, R34
10k RESISTOR0207/10 Reichelt Elektronik METALL 10,0K -- 1,12 €
4 R7, R8, R9, R10 15k RESISTOR0207/10 Reichelt Elektronik METALL 15,0K -- 0,32 €
2 R21, R24 22k RESISTOR0207/10 Reichelt Elektronik METALL 22,0K -- 0,16 €
1 R17 39R RESISTOR0207/10 Reichelt Elektronik METALL 39,0 -- 0,08 €
1 R26 39k RESISTOR0207/10 Reichelt Elektronik METALL 39,0K -- 0,08 €
1 R14 220R RESISTOR0207/10 Reichelt Elektronik METALL 220 -- 0,08 €
1 R13 330R RESISTOR0207/10 Reichelt Elektronik METALL 330 -- 0,08 €
2 R27, R28 330k RESISTOR0207/10 Reichelt Elektronik METALL 330K -- 0,16 €
3 R4, R5, R19 470R RESISTOR0207/10 Reichelt Elektronik METALL 470 -- 0,24 €
1 R29 500R RESISTOR0207/10 Reichelt Elektronik METALL 499 -- 0,08 €
1 R11 100k 1W RESISTOR0411/15 Reichelt Elektronik METALL 100K -- 0,08 €
1 SP1 Piezo Schallwandler RMP-14SP Conrad Electronic 71 01 07 - LN -- 1,87 €
1 L2 Funk-Entstördrossel, 50 Windungen, 100µH Reichelt Elektronik FED 100µ -- 1,60 €
1 F2 Feinsicherung 2,00 A träge Reichelt Elektronik TRAEG 2,0A 5x20mm 0,072 €
1 F1 Feinsicherung 3,15A träge Reichelt Elektronik MTR 3,15A 5x20mm 0,072 €
4 -- Sicherungshalter, 5x20mm, max. 6,3A-250V Reichelt Elektronik PL 120000 5x20mm 0,20 €
1 SHT1 Feuchtigkeitssensor Sensirion SHT71 Farnell 4130686 -- 22,30 €
1 T1 Triac TIC225S Reichelt Elektronik TIC 225D TO-220 0,79 €
1 R30 Einstellpotentiometer stehend 5k TRIM_EU-PT10S Reichelt Elektronik PIHER 10-S 5,0K 10mm 0,38 €
Stückliste für PCB1: Controller-Board



Stückliste für PCB2: Konsolen-Board
Menge Bauteile Beschreibung Lieferant Bestellnummer Maße Preis
2 J1, J2 0R Brücke -- -- -- -- €
3 D1, D2, D3 Diode 1N4148 Reichelt Elektronik 1N 4148 -- 0,06 €
1 IC5 Inverter 74HCT04N Reichelt Elektronik 74HCT 04 -- 0,18 €
1 IC2 Dreifach-AND-Gatter 74HCT11N Reichelt Elektronik 74HCT 11 -- 0,18 €
2 IC3, IC4 Dual-4Bit-Latch SN74116N ELW Elektronik Handels GmbH 00085106 -- 5,42 €
1 IC1 Präzisions-OpAmp AD623 Farnell 9603700 -- 6,45 €
2 Q1, Q2 Transistor BC547B Reichelt Elektronik BC 547B -- 0,062 €
1 C2 10 µF Tantal CAPACITOR025-024X044 Reichelt Elektronik TANTAL 10/25 -- 0,25 €
1 C1 100 nF Keramik CAPACITOR050-024X044 Reichelt Elektronik KERKO 100N -- 0,072 €
1 C3 100 nF CAPACITOR050-025X075 Reichelt Elektronik MKS-2 100N -- 0,07 €
3 C4, C5, C6 100nF CAPACITOR050-025X075 Reichelt Elektronik MKS-2 100N -- 0,21 €
1 DCF1 DCF77 Conrad Electronic 64 11 38 - 62 -- 10,21 €
5 RN1, RN2, RN3, RN4, RN5 1k5 E4R Widerstand-Netzwerk Reichelt Elektronik SIL 8-4 1,5K 4Wid./8Pins 2,80 €
1 LCD1 EA_DOG-M_DISPLAY DOG-Serie 3,3V Hintergrund: weiss Reichelt Elektronik EA DOGM163W-A -- 12,60 €
1 -- Led-Beleuchtung für EA DOGM..Farbe: weiss Reichelt Elektronik EA LED55X31-W -- 10,20 €
2 JP1, JP2 Jumper JP2E Reichelt Elektronik SL 1X50W 2,54 RM2,51 0,56 €
15 LED1, LED2, LED3, LED4, LED5, LED6, LED7, LED9, LED10,
LED12, LED14, LED15, LED18, LED19, LED20
LED 3mm gelb low current Reichelt Elektronik LED 3MM 2MA GE 3mm 1,35 €
2 LED8, LED11 LED 3mm grün low current Reichelt Elektronik LED 3MM 2MA GN 3mm 0,18 €
3 LED13, LED16, LED17 LED 3mm rot low current Reichelt Elektronik LED 3MM 2MA RT 3mm 0,27 €
1 SV1 PinHeader 2x20 Male gewinkelt MA20-2W Reichelt Elektronik SL 2X50W 2,54 RM2,54 1,10 €
1 S1 Kurzhubtaster MJTP1230 Reichelt Elektronik Taster 3301 -- 0,082 €
2 R1, R2 1k2 RESISTOR0207/10 Reichelt Elektronik METALL 1,20K -- 0,16 €
8 R4, R6, R7, R8, R9, R11, R13, R14 1k5 RESISTOR0207/10 Reichelt Elektronik METALL 1,50K -- 0,64 €
1 R5 6k RESISTOR0207/10 Reichelt Elektronik METALL 6,00K -- 0,08 €
1 R10 10k RESISTOR0207/10 Reichelt Elektronik METALL 10,0K -- 0,08 €
1 R3 30R RESISTOR0207/10 Reichelt Elektronik METALL 30,0 -- 0,08 €
1 R12 400k RESISTOR0207/10 Reichelt Elektronik METALL 402K -- 0,082 €
2 S2, S3 Eingabetaster schwarz, Schaltspannung: 24V,fürLED Reichelt Elektronik DTL 2 SW -- 3,70 €
2 S8, S9 Eingabetaster gelb, Schaltspannung: 24V, für led, ge Reichelt Elektronik DTL 2 GE -- 3,70 €
1 S6 Eingabetaster rot, Schaltspannung: 24V, für led, ge Reichelt Elektronik DTL 2 RT -- 1,85 €
4 S4, S5, S7, S10 Eingabetaster blau, Schaltspannung: 24V, für led, ge Reichelt Elektronik DTL 2 BL -- 7,40 €
1 TSL1 Lichtsensor TSL250R Farnell 1182346 -- 4,69 €
Stückliste für PCB2: Konsolen-Board



Stückliste für PCB3: Schaltnetzteil
Menge Bauteile Beschreibung Lieferant Bestellnummer Maße Preis
2 D1, D2 Diode 1N5821 RS-Online 1N 5821 RM15 1,64 €
1 X2 Anschlussklemme 2-polig, RM7,5mm Reichelt Elektronik AKL 171-02 RM7,5mm 0,29 €
1 X1 Anschlussklemme 3polig, RM7,5mm Reichelt Elektronik AKL 171-03 RM7,5mm 0,43 €
2 BR1, BR2 Gleichrichter B40C1500 Reichelt Elektronik B40C1500-WW- -- 0,52
1 B1 DIL-Gleichrichter B250C800DIP Reichel Elektronik B250C800DIP DIL8 0,48 €
1 C7 220nF / 275V CAPACITOR225-087X268 Reichelt Elektronik MKP-10-630 220N -- 0,94 €
2 SV1, SV2 2x13pol. Buchsenleiste, gewinkelt, RM 2,54 Reichelt Elektronik BL 2X13W8 2,54 RM2,54 1,28 €
1 TR1 Trafo 30VA, 2x 15V, 2x 1000mA Reichelt Elektronik UI 39/21 215 -- 11,20 €
1 JP1 JP1E für LED in Hauptschalter Reichelt Elektronik SL 1X50W 2,54 RM2,54 0,56 €
2 LED1, LED2 LED3MM grün low current Reichelt Elektronik LED 3MM 2MA GN 3mm 0,18 €
1 U1 Schaltregler LM2576T-5 für 5V Reichelt Elektronik LM 2576 T5,0 -- 1,65 €
1 U2 Schaltregler LM2576T-12 für 12V Reichelt Elektronik LM 2576 T12 -- 1,95 €
1 D3 Überspannungsschutzdiode 6,8V Reichelt Elektronik P6KE 6,8CA -- 0,17 €
1 D4 Überspannungsschutzdiode 15V Reichelt Elektronik P6KE 15CA -- 0,17 €
2 L1, L2 Schaltregler Induktivität 220 µH 1,4 A PE-52626 Farnell 1209548 -- 19,90 €
2 C3, C4 100µF POLARIZEDCAPACITORE2.5-7 Reichelt Elektronik RAD 100/35 8x11mm RM3,5mm 0,144 €
2 C5, C6 1000µF POLARIZEDCAPACITORE5-13 Reichelt Elektronik RAD 1.000/35 12,5x25mm RM5,0mm 0,62 €
2 C1, C2 2200µF POLARIZEDCAPACITORE7.5-16 Reichelt Elektronik RAD 2.200/35 16x25mm RM7,5mm 0,94 €
2 R3, R4 1M RESISTOR0207/12 Reichelt Elektronik METALL 1,00M -- 0,16 €
1 R1 1k5 RESISTOR0207/12 Reichelt Elektronik METALL 1,50K -- 0,08 €
2 R2 6k04 RESISTOR0207/12 Reichelt Elektronik METALL 6,04K -- 0,16 €
1 R5 100R RESISTOR0207/12 Reichelt Elektronik METALL 100 -- 0,08 €
1 R6 1k / 1W RESISTOR0414/15 Reichelt Elektronik 2W METALL 1,0K -- 0,09 €
1 F1 Feinsicherung 0,16A flink Reichelt Elektronik FLINK 0,16A 5x20mm 0,072 €
2 F2, F3 Feinsicherung 1A flink Reichelt Elektronik FLINK 1,0A 5x20mm 0,144 €
6 -- Sicherungshalter, 5x20mm, max. 6,3A-250V Reichelt Elektronik PL 120000 5x20mm 0,30 €
Stückliste für PCB3: Schaltnetzteil


Hinweis: Bestellnummern und Preise beziehen sich auf den Zeitpunkt der Projektumsetzung Mai 2009 und können abweichen!!


Schaltpläne

Die Schaltpläne zu diesem Projekt liegen als Eagle-SCH-Dateien vor und befinden sich weiter unten im Bereich Dokumente aufgelistet. Für alle welche kein Eagle besitzen anbei die Schaltpläne als PDF-Dateien. Die PDF's befinden sich hier unter den jeweiligen Links zum Download.

Schematic PCB1: Controller-Board Schematic PCB2: Konsolen-Board Schematic PCB3: Schaltnetzteil
Schematic für PCB1: Controller-Board Schematic für PCB2: Konsolen-Board Schematic für PCB3: Schaltnetzteil

PCB1 Bestückseite PCB1 Lötseite
PCB1 Bestückseite PCB1 Lötseite
PCB2 Bestückseite PCB2 Lötseite
PCB2 Bestückseite PCB2 Lötseite


Bestückpläne

Die Bestückpläne zu diesem Projekt liegen als Eagle-BRD-Dateien vor und befinden sich weiter unten im Bereich Dokumente aufgelistet. Für alle welche kein Eagle besitzen anbei die Bestückpläne als PDF-Dateien. Die PDF-Dateien sind zusammengefasste Bestückpläne und Layoutansichten in einem Dokumente. Die PDF's befinden sich hier unter den jeweiligen Links zum Download.

Bestückung PCB1: Controller-Board Bestückung PCB2: Konsolen-Board Bestückung PCB3: Schaltnetzteil
Bestückung für PCB1: Controller-Board Bestückung für PCB2: Konsolen-Board Bestückung für PCB3: Schaltnetzteil


PCB's

Die Board-Daten zu diesem Projekt liegen als Eagle-BRD-Dateien vor und befinden sich weiter unten im Bereich Dokumente aufgelistet. Für alle welche kein Eagle besitzen anbei die Bilder zum Layout als PDF-Dateien. Die PDF-Dateien sind zusammengefasste Bestückpläne und Layoutansichten in einem Dokumente. Die PDF's befinden sich hier unter den jeweiligen Links zum Download.

Layout PCB1: Controller-Board Layout PCB2: Konsolen-Board Layout PCB3: Schaltnetzteil
Layout für PCB1: Controller-Board Layout für PCB2: Konsolen-Board Layout für PCB3: Schaltnetzteil



Software

Die Software zur Wintergartensteuerung wurde in BASCOM-AVR einem Basic Compiler der Firma MCS-Electronics erstellt und hier zum Download zu verlinken!

BASCOM-AVR Sourcecode zu ConvCtrl BASCOM-AVR Sourcecode zu ConvCtrl BIN-File zu ConvCtrl BIN-File zu ConvCtrl
HEX-File zu ConvCtrl HEX-File zu ConvCtrl ConvCtrl Sourcecode als RTF-File ConvCtrl Sourcecode als RTF-File


Laborsystem mit funktionierender Software
Laborsystem mit funktionierender Software


Dokumentation und Daten

An dieser Stelle befinden sich die Dokumente zur Entwicklung. Speziell befinden sich hier die jeweiligen Eagle-Dateien für Schaltpläne und PCB's.

Eagle-Datei Schematic für das Netzteil PCB3: Eagle-Datei Schematic für das Netzteil Eagle-Datei Board für das Netzteil PCB3: Eagle-Datei Board für das Netzteil
Eagle-Datei Schematic für das Controller-Board PCB1: Eagle-Datei Schematic für das Controller-Board Eagle-Datei Board für das Controller-Board PCB1: Eagle-Datei Board für das Controller-Board
Eagle-Datei Schematic für das Konsolen-Board PCB2: Eagle-Datei Schematic für das Konsolen-Board Eagle-Datei Board für das Konsolen-Board PCB2: Eagle-Datei Board für das Konsolen-Board
Gesamtdokumentation Projekt Gesamtdokumentation Projekt Dokumentation der Menüstrukturen Dokumentation der Menüstrukturen


Mitgeltende Unterlagen und Sonstiges

Da die einzelnen Bedienungsaneleitungen und Datenblätter im Internetselbst zum freien Download angeboten werden erlaube ich mir, für die von mir verwendeten Module die jeweiligen Bedienungsanleitungen und Datenblätter hier zum Download zu verlinken!

Datenblatt und Bauanleitung zum Regensensor von Conrad Electronic Datenblatt und Bauanleitung zum Regensensor von Conrad Electronic
Anschlussplan zum DCF77-Modul von Conrad Electronic Anschlussplan zum DCF77-Modul von Conrad Electronic
Datenblatt 1 zum DCF77-Modul von Conrad Electronic Datenblatt 2 zum DCF77-Modul von Conrad Electronic
Datenblatt 2 zum DCF77-Modul von Conrad Electronic Datenblatt 2 zum DCF77-Modul von Conrad Electronic



Das Laborsystem
Das Laborsystem


Valid XHTML 1.0 Transitional    CSS ist valide!