Forum: Mikrocontroller und Digitale Elektronik Erste Schaltung: Terrariensteuerung/DCF77/Dimmer/Schalter


von Andi M. (rootsquash)


Angehängte Dateien:

Lesenswert?

Hallo.

Ich bin neu in diesem Forum und habe noch keine Erfahrung mit 
Mikrocontrollern. Letzteres ist der Grund meiner Bitte:
Bevor ich einfach alles zusammenlöte und dabei wichtige Dinge vergesse 
oder unschuldige Vielbeiner verbrenne, hätte ich gerne die Meinung/Tipps 
erfahrenerer Bastler zu diesem Projekt:

Ziel: Steuerung für Licht und Heizung in einem Terrarium. Modular, 
erweiterbar, mit Display, Tastern, Funkuhr, Temperatursensoren und 
unempfindlich gegenüber kurzen Spannungseinbrüchen.

Funktionen:
- Schalten und Dimmen (Netzspannung*)
- Nulldurchlauf der Netzspannung bestimmen (für Dimmer)
- Treiben von LEDs
- Kommunikation über 1-wire-Bus
- Ansteuerung eines Displays
- Menübasierte Steuerung über Taster
- Auslesen einer Funkuhr


Jetzt habe ich schon direkt einige Fragen:

- Für den Dimmer möchte ich den Nulldurchgang der Spannung recht genau 
bestimmen, dafür muss ich ja ständig einen der Eingänge abfragen 
(polling). Wenn ich die Kommunikation über den 1-wire-Bus in Software 
selber gieße, ist der µC ja eine ganze Weile mit selbigem Bus 
beschäftigt.
So weit ich weiss dauert die Übertragung eines Bits 60 µs und allein die 
Adresse eines "Clients" hat schon 64 Bit, das sind schonmal 4 ms bevor 
überhaupt Nutzdaten übertragen werden.
Wenn ich aber die Phasenlage eines 100 Hz-Sinus bestimmen will möchte 
ich mit ~1 kHz dieses Signal überwachen, vermutlich eher mehr.
Denke ich hier falsch, kann ich bei der Kommunikation auf dem 1-wire-Bus 
kurze Pausen machen? Oder sollte ich einen externen Baustein für die 
Bus-Kommunikation verwenden? Oder vielleicht den Nulldurchgang mit einem 
Optokoppler und einem Schmitt-Trigger als Interrupt auf einen der 
Eingänge legen?

- Während der 1-wire-Bus genutzt wird soll man die Interrupts 
ausschalten, dort könnte ich also einen Nulldurchgang oder ein Signal 
des DCF77-Empfängers verpassen, was ich mit einem Timer korrigieren 
könnte. Oder auch nicht, da ja auch ein Timerinterrupt ein Interrupt 
ist.
Wie löse ich dieses Problem? Oder ist es womöglich keins?
Kann ich den Dimmer nutzen während Kommunikation auf dem 1-wire-Bus 
läuft? Das Setzen der Ausgänge sollte ja wirklich zügig gehen.

- Kann ich auf allen Eingängen eines Atmega8 Interrupts auslösen oder 
ist das eine spezielle Eigenschaft der Eingänge "Int0, Int1", wie es der 
Name suggeriert?

- Wenn ich 6 Pins für das Display und 5 Pins für Taster reserviere, 
bleibt bei einem Atmega8 nicht viel übrig. Ist es empfehlenswerter das 
Display an den 1-wire-Bus zu hängen oder sollte ich die Taster über 
einen Multiplexer abfragen? Die 2 gesparten Pins würden schon reichen.

- Würdet ihr zur Spannungsversorgung einen kleinen Trafo mit 
Linearregler oder eine "Wandwarze" benutzen? (An die Netzspannung muss 
ich (natürlich mit einem kleinen Trafo) eh ran um den Nulldurchgang zu 
bestimmen)

Im Ahnhang finden sich die Pläne die ich bisher gemacht habe.
Aufgebaut werden sollen die Schaltungen auf Streifenrasterplatinen.

Ich würde mich über konstruktive Kritik zu den Schaltplänen aber auch zu 
dem Konzept ansich freuen. =)

Grüße, Andi


* Ich bin Physikstudent, arbeite dabei auch mit Hochspannung und habe 
bereits Audio-Verstärker gebaut. Die Netzspannung wird, wie in den 
Bildern im Anhang sichtbar, nur über sehr kurze Strecken zu Relais, 
Triacs oder Trafos geführt. Die Triacs werden über Optokoppler von der 
Niederspannungsseite getrennt.

von holger (Gast)


Lesenswert?

>Ich bin neu in diesem Forum und habe noch keine Erfahrung mit
>Mikrocontrollern.

Klar, ich hab auch mit nem Atomkraftwerk angefangen bevor ich
ne Sonne gebaut habe.

>- Schalten und Dimmen (Netzspannung*)

Flossen weg Anfänger!

>Die Netzspannung wird, wie in den
>Bildern im Anhang sichtbar, nur über sehr kurze Strecken zu Relais,
>Triacs oder Trafos geführt.

Die Länge ist Wurst. Halt lieber Abstand zur Niedervoltseite.

Was soll der 1u da parallel zum Relais? Schwingkreis bauen?

AREF an GND dürfte interessante Nebenwirkungen haben.

von Andi M. (rootsquash)


Lesenswert?

holger schrieb:
> Klar, ich hab auch mit nem Atomkraftwerk angefangen bevor ich
> ne Sonne gebaut habe.

Ich würde natürlich nicht alles auf einmal zusammenlöten sondern nach 
und nach aufbauen.

>>- Schalten und Dimmen (Netzspannung*)
>
> Flossen weg Anfänger!

Siehe Sternchen.


> Die Länge ist Wurst. Halt lieber Abstand zur Niedervoltseite.
Wird mit Trafos/Optokopplern getrennt, das Board mit dem µC kommt auf 
eine eigene Platine, die Ausgangsmodule kriegen jeweils eigene Platinen, 
die Spannungsversorgung sitzt auf einer eigenen Platine


> Was soll der 1u da parallel zum Relais? Schwingkreis bauen?
Guter Hinweis. Ist ein Platzhalter, falls man z.B. eine Diode dort 
hinsetzen möchte. Ich weiss nicht wie sehr sich die Spulen in den Relais 
wehren wenn man ihnen den Strom klaut und wie sehr sie die Dioden im ULN 
belasten.

> AREF an GND dürfte interessante Nebenwirkungen haben.
"analog reference pin for the A/D Converter"
Was würde man da denn anschliessen?

von Karl H. (kbuchegg)


Lesenswert?

AVR-Tutorial

Im übrigen halte ich es mit holger:

Verlier dein Projekt nicht aus den Augen, aber fang mit einfacheren 
Dingen an.
Wenn du die im Tutorial aufgezeigte Schaltung aufbaust, zum Laufen 
kriegst, sie programmierst und dich da durcharbeitest, dann hast du 
schon ein ganz gutes Rüstzeug, um dich an dein eigentliches Projekt zu 
wagen. Müssen ja keine geäzten Platinen sein, die kann man auch Fädeln 
oder auf einer Streifenrasterplatine aufbauen.

In deinen Schaltungen sind da ein paar Dinge, die mir so gar nicht 
gefallen.
zb: 5V aus 12V, LCD-Kontrastspannung steckermässig getrennt von den 
restlichen LCD Leitungen, überhaupt hast du da jede Menge einzelner 
Steckanschlüsse quer verteilt, du konfigurierst dich mit Kabeln zu Tode, 
....

von Andi M. (rootsquash)


Lesenswert?

Schonmal herzlichen Dank für die bisherigen Antworten

> zb: 5V aus 12V, LCD-Kontrastspannung steckermässig getrennt von den
> restlichen LCD Leitungen, überhaupt hast du da jede Menge einzelner
> Steckanschlüsse quer verteilt, ....


Welche Probleme (abgesehen von der Verlustleistung) gibt es wenn ich die 
5 Volt aus 12 Volt erzeuge?
Ich wollte nicht für jede benötigte Spannung einen eigenen Trafo nehmen, 
da die Auswahl an großen, günstigen Gehäusen beschränkt zu sein scheint.

Ja, ich habe die Spannungsversorgung von den Datenleitungen getrennt. 
Ist das nicht wünschenswert? Dann versuche ich demnächst sowas an eine 
lange Buchsenleiste zu legen.

Das mit den verteilten Steckern sehe ich erstmal nicht als Problem, aber 
vielleicht übersehe ich ja wichtige Argumente.
Wenn man geätzte Platinen einsetzt würde man das vermutlich anders 
lösen, ja.
Mein Haupt-Augenmerk beim Routen war das Vermeiden von Kreuzungen. Hätte 
ich andere Prioritäten setzen sollen?

Grüße, Andi

von Karl H. (kbuchegg)


Lesenswert?

Andi M. schrieb:
> Schonmal herzlichen Dank für die bisherigen Antworten
>
>> zb: 5V aus 12V, LCD-Kontrastspannung steckermässig getrennt von den
>> restlichen LCD Leitungen, überhaupt hast du da jede Menge einzelner
>> Steckanschlüsse quer verteilt, ....
>
>
> Welche Probleme (abgesehen von der Verlustleistung) gibt es wenn ich die
> 5 Volt aus 12 Volt erzeuge?

> abgesehen von der Verlustleistung

genau das ist das Problem
Du baust kein Netzteil, du baust eine Heizung :-)


> Ja, ich habe die Spannungsversorgung von den Datenleitungen getrennt.
> Ist das nicht wünschenswert?

Überleg dir einfach mal, wie du das LCD anschliessen willst.
Im einfachsten Fall geht vom LCD ein 16-poliges Flachbandkabel auf eine 
Buchse, die du einfach auf der Hauptplatine einsteckst und das LCD ist 
korrekt verkabelt.

Man kann auch abspecken, indem zb die Kontrastspannungseinstellung zum 
LCD wandert, genauso wie die Hintergrundbeleuchtung. Wenn die LCD 
Ansteuerung über den 4 Bit Bus passieren soll, dann reicht auch ein 
Flachbandkabel mit 8 Adern (4 Datenleitungen, 2 Steuerleitungen, VCC, 
GND). Nimm noch eine schaltbare Hintergrundbeleuchtung dazu (Transistor 
ebenfalls zum LCD dazu) und du brauchst 9 Adern. Also einen 10-poligen 
Anschluss.

Wenn du das ganze jetzt universell machen willst, dann wäre es imho 
besser zunächst mal alle Ports des µC auf identische 10-polige 
Anschlüsse zu führen. Jeweils einen Anschluss für einen kompletten Port, 
dazu noch VCC und GND an jedem Anschluss und du kannst dann da drann 
beliebige Zusatzplatinen anstecken. Mit immer dem gleichen 10-poligen 
Flachbandkabel und immer gleicher Steckerbelegung.

von Andi M. (rootsquash)


Lesenswert?

Könnte man so machen, aber einige der Anschlüsse werde ich ja fest 
verteilen:
Display, 1-wire-Bus, Taster
Die Module die ich anschliessen will benötigen ja nur einen I/O-Pin und 
eine Versorgungsspannung, Flachbandkabel halte ich an der Stelle für 
Overkill, da führe ich ja mehrere I/O-Pins zusammen, oder habe ich dich 
missverstanden?
Ich dachte eher so an die "PS 25/2G WS" von Reichelt. (2,3,5,8 oder 10 
Pole)


Habe gerade das AVR-Tutorial gelesen, das mit AREF habe ich wohl falsch 
verstanden =)

Würdet ihr denn die Detektion des Nulldurchgangs mit einem A/D-Wandler 
machen (Trafo -> Gleichrichter -> A/D) oder eher so:

Netzspannung -> Gleichrichter -> Widerstand -> Optokoppler
Auf der anderen Seite 5 Volt -> Optopkoppler -> GND
Netzspannung macht Nulldurchgang, Optokoppler macht "zu", auf der 
anderen Seite sperrt er den Stromfluss, die 5 Volt liegen hinter dem 
Widerstand an, werden vielleicht noch mit Schmitt-Triggern aufbereitet 
und der Impuls wird an den µC geleitet.

von oszi40 (Gast)


Lesenswert?

Andi M. schrieb:
> Funkuhr, ... und einige Störquellen wie Display, Dimmer usw.
Andi, eine Vision ist gut, aber der Weg wird steinig sein. Fang klein 
an.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.