Forum: Mikrocontroller und Digitale Elektronik Teichsteuerung


von Tobi W. (todward)


Angehängte Dateien:

Lesenswert?

Hallo

Im Anhang ist mein entworfener Schaltpplan für eine Teichsteuerung.

Kurze Erläuterung:
Der µC (Mega8) soll zu bestimmten Zeiten die beiden Relais K1 und K2 
schalten. An dem einen Relais hängt die Teichpumpe und an dem anderen 
Relais hängt die Beleuchtung.
Über die Beiden Taster S2 und S3 können die Relais manuell bei bedarf 
eingeschaltet werden. Mit S4 kann in den Programmiermodus gewechselt 
werden.
Das soll dann mit der seriellen Schnittstelle und einem eigenen 
Protokoll/Befehlssatz passieren.

Wäre schön wenn sich mal die µC-Cracks die Schaltung mal anschauen 
könnten und ein kurze feedback geben könnten ob man das so lassen kann.

Gruß
Tobi

PS.: bevor fragen und Hinweise vonwegen 230V kommen: Damit habe ich nix 
zu tun!! Das macht mein Onkel (Fachkraft) ich mache nur den 
Niedervoltteil.

von HildeK (Gast)


Lesenswert?

> ... mal die µC-Cracks die Schaltung mal anschauen
Bin kein µC-Crack, trotzdem:

Die Relais und ihre Ansteuerung sind nicht brauchbar.
Wenn überhaupt, dann zieht das Relais erst an, wenn die parallele Diode 
durchgebrannt ist. Dann erhalten die Relais aber auch nur max. 4.3V und 
ich denke, du hast dir 12V-Teile ausgesucht.

Die Relais gehören in den Kollektorkeis des Transistors, die Dioden 
müssen in Sperrrichtung geschaltet werden. Die Ansteuerung ist zwar dann 
invertierend, das sollte aber in der Software keine Mühen machen ...

Ob die Kombination Relais, Transistor und Basisvorwiderstand passen, 
kann ohne Daten zu den Relais nicht beurteilt werden.

von Otto (Gast)


Lesenswert?

Das mit den Relais wird so nichts - die Spulen gehören zwischen 
Kollektor und +12V.

Otto

von Anja (Gast)


Lesenswert?

Die Relais werden so nicht funktionieren
1. die Dioden sind falsch gepolt.
2. Am Emitter wirst Du nur ca 4,3 V als Ansteuerung haben.
   Das reicht nicht für 12V Relais.
-> Damit das Funktioniert würde ich die Relais an 12V hängen und an den 
Kollektor der Transistoren anschließen. Die Emitter kommen dann an 
Masse.
Eventuell brauchst Du noch einen Widerstand von der Basis an Masse, 
damit der Pull-up-Widerstand im Prozessor während eines Resets 
(Einschaltvorgang) nicht (kurz) anzieht. Die Basiswiderstände kommen mir 
relativ niederohmig vor (hängt allerdings von den verwendeten Relais ab) 
vielleicht rechnest du nochmal nach.

Hoffentlich kennt sich der Onkel auch mit Kriechstrecken auf 
Leiterplatten mit Schutzkleinspannung aus. (6,4 - 8 mm je nach 
Verschmutzungsgrad).

von Sebastian R. (sebr)


Lesenswert?

Kann mich den Vorrednern nur anschließen wegen der Relais/Dioden Sache
http://www.mikrocontroller.net/articles/Relais_mit_Logik_ansteuern

Beschaltung des MAX232 ist auch nicht OK, Blick ins Datenblatt hilft!
Stützkondensatoren 100nF nicht vergessen

Am Ende die fertige Platine mit PLastik70 behandeln

von Tobi W. (todward)


Angehängte Dateien:

Lesenswert?

Hallo

ich habe das nochmal überarbeitet. Im anhang ist die neue version!

@Anja:
>Hoffentlich kennt sich der Onkel auch mit Kriechstrecken auf
>Leiterplatten mit Schutzkleinspannung aus. (6,4 - 8 mm je nach
>Verschmutzungsgrad).
Das ist nicht so wichtig weil das Installationsschütze werden. Also 
kommen die gar nicht auf die Platine. Aber danke für den Hinweis!
Ich habe die Basiswiederstände schon öfters verwendet und hatte noch nie 
probleme. Hier im Artikel über Transistoren sind die auch so 
dimensoniert.

@Sebastian R.
>Beschaltung des MAX232 ist auch nicht OK, Blick ins Datenblatt hilft!
>Stützkondensatoren 100nF nicht vergessen
Ich habe hier nochmal im Tut nachgeschaut und habe das dann so 
übernommen wie es jetzt ist.

Die relais habe ich jetzt zwischen 12V und Transistor gepackt.
Zu den relais:
Das sind wie oben schon geschrieben Installotionsschütze mit 12V 
Spulenspannung und einem spulenwiederstand von 220ohm. Macht also eine 
leistung von 0,64W.

Gruß
Tobi

PS.: danke an alle! Habt mich schon viel weiter gebracht.

von Sebastian R. (sebr)


Lesenswert?

Kein Problem, dafür gibts ja das Forum.

Paar Sachen die mir noch auffallen:
- Abblockkondensatoren: je einen zwischen VCC/GND und AVCC/GND
- am MAX232 (unipolare) Elkos verwenden
- es fehlt noch ein Quarz, der interne Takt des AVR ist zu ungenau für 
UART
  http://www.mikrocontroller.net/articles/Baudratenquarz
  http://www.mikrocontroller.net/articles/AVR-Tutorial:_Equipment#externer_Takt
- Stecker für ISP und PC-Verbindung fehlen noch
- RTC fehlt wenn das zeitgesteuert sein soll

Empfehle dir dringendst mal das Tutorial hier durchzuarbeiten, da dirja 
schon bei den elementarsten Grundlagen Fehler passieren würde ichmich an 
deiner Stelle nochnicht an 230V wagen....

von HildeK (Gast)


Lesenswert?

>Das ist nicht so wichtig weil das Installationsschütze werden. Also
>kommen die gar nicht auf die Platine.
Auch außerhalb der Platine sind die genannten Abstände wichtig.

Der MAX232 ist zwar jetzt soweit richtig angeschlossen, allerdings finde 
ich im Schaltplan dessen Pins 15 und 16 nicht. Da muss die Versorgung 
dran, sonst geht gar nichts.

von Tobi W. (todward)


Angehängte Dateien:

Lesenswert?

Hallo,

Sebastian R. schrieb:
> Kein Problem, dafür gibts ja das Forum.
>
> Paar Sachen die mir noch auffallen:
> - Abblockkondensatoren: je einen zwischen VCC/GND und AVCC/GND
> - am MAX232 (unipolare) Elkos verwenden
> - es fehlt noch ein Quarz, der interne Takt des AVR ist zu ungenau für
> UART
>   http://www.mikrocontroller.net/articles/Baudratenquarz
>   http://www.mikrocontroller.net/articles/AVR-Tutorial:_Equipment#externer_Takt
> - Stecker für ISP und PC-Verbindung fehlen noch
> - RTC fehlt wenn das zeitgesteuert sein soll
>
> Empfehle dir dringendst mal das Tutorial hier durchzuarbeiten, da dirja
> schon bei den elementarsten Grundlagen Fehler passieren würde ichmich an
> deiner Stelle nochnicht an 230V wagen....
Das mit den Abblockkondensatoren ist klar, werden noch eingefügt.
Wegen den Elkos, ist verständlich nur ich hatt in eagle keine anderen 
gefunden.
Ich hatte eig noch nie Probleme mit dem Internen Quarz und UART. Habe 
hier auf meinem STK500 schon des öfteren die UART verwenden und dabei 
den board quarz deaktiviert. Solange die Temperatur relativ konstat 
bleibt, ist der interne Oszilator genau genug. (Das ist meine meinung)
Den ISP-Stecker und den RTC-Empfänger brache ich nicht.  Da die Software 
nicht verändert wird. Oben im 1. Post hatte ich das schon einwenig 
beschrieben. Das ganze soll und wird über die RS-232 Schnittstelle mit 
einem eigenen Befehlssatz+Interpreter auf dem Chip programmiert. Alle 
Schaltzeiten und variablen die immer aktuell sein müssen kommen in den 
EEPROM. Die RTC brauche ich deswegen nicht, weill ich über einen Timer 
einen Takt von 0.1 sekunden erzeuge und damit meine uhr/variable laufen 
lasse.
Zu dem 230V Teil: Den mache ich wie gesagt NICHT!!! Ich stelle lediglich 
die Steuerspannung von 12V für die Relais zur Verfügung.

HeldiK (Gast) schrieb:
>>Das ist nicht so wichtig weil das Installationsschütze werden. Also
>>kommen die gar nicht auf die Platine.
>Auch außerhalb der Platine sind die genannten Abstände wichtig.
Verstehe ich nicht! Die beiden Steuerausgänge werden auf eine 3 polige 
klemme gelegt (Steuer 1;Steuer 2; +12V). Also KEINE 230V  auf der 
Platine. Die Relais haben ein Hutschienengehäuse und werden auch so 
montiert.

HeldiK (Gast) schrieb:
>Der MAX232 ist zwar jetzt soweit richtig angeschlossen, allerdings finde
>ich im Schaltplan dessen Pins 15 und 16 nicht. Da muss die Versorgung
>dran, sonst geht gar nichts.
Die sind aber wie du siehst auch nicht auf dem Schaltsymbol also kann 
ich die auch schlecht einzeichnen. ;-)


Im Anhang habe ich jetzt nochmal eine überarbeitete Version.
Danke für eure Hilfe

Gruß
Tobi

von Sebastian R. (sebr)


Lesenswert?

AREF nie an VCC legen, sondern ggf. an AVCC. Aber selbst da bekommst du 
Probleme wenn du die entsprechenden Bits falsch gesetzt hast zur Auswahl 
der Referenzspannungsquelle. Also nicht zu empfehlen!
Besser: AREF über 100nF mit (A)GND verbinden!

Da steht was zu ab Seite 201ff
http://www.atmel.com/dyn/resources/prod_documents/doc2486.pdf

von Gast (Gast)


Lesenswert?

Bitte noch in Eagle einmal 'invoke' auswählen und auf den MAX232 
klicken,
dann kannst du die Versorgungsspannung des Bustreibers auswählen.
Oder habe ich da was übersehen??
Ich würde noch einen 100nF-Kondensator parallel zum Reset-Taster S1 
schalten, ist aber nicht notwendig...

von HildeK (Gast)


Lesenswert?

>HeldiK (Gast) schrieb:
>>Der MAX232 ist zwar jetzt soweit richtig angeschlossen, allerdings finde
>>ich im Schaltplan dessen Pins 15 und 16 nicht. Da muss die Versorgung
>>dran, sonst geht gar nichts.
>Die sind aber wie du siehst auch nicht auf dem Schaltsymbol also kann
>ich die auch schlecht einzeichnen. ;-)
Dann sind sie nachher auf der Platine auch nicht angeschlossen. Siehe 
Post von Gast - Befehl 'Invoke'.

>Verstehe ich nicht! Die beiden Steuerausgänge werden auf eine 3 polige
>klemme gelegt (Steuer 1;Steuer 2; +12V). Also KEINE 230V  auf der
>Platine. Die Relais haben ein Hutschienengehäuse und werden auch so
>montiert.
OK. Ich gehe dann davon aus, dass der Hersteller des Hutschienenrelais 
diese mit den entsprechenden Abständen gebaut hat. Die Info, dass es ein 
Relais für Hutschienenmontage ist, war bisher für mich nicht erkennbar.

>HeldiK (Gast) schrieb:
HildeK!

von Sascha W. (sascha-w)


Lesenswert?

To W. schrieb:
> Die RTC brauche ich deswegen nicht, weill ich über einen Timer
> einen Takt von 0.1 sekunden erzeuge und damit meine uhr/variable laufen
> lasse.

wie oft willst du denn die Uhr stellen wenn du noch nicht mal nen ext. 
Quarz verwenden willst? Für den UART mags ja reichen - aber für eine Uhr 
?????

Sascha

von Sebastian R. (sebr)


Lesenswert?

Sascha Weber schrieb:
> To W. schrieb:
>> Die RTC brauche ich deswegen nicht, weill ich über einen Timer
>> einen Takt von 0.1 sekunden erzeuge und damit meine uhr/variable laufen
>> lasse.
>
> wie oft willst du denn die Uhr stellen wenn du noch nicht mal nen ext.
> Quarz verwenden willst? Für den UART mags ja reichen - aber für eine Uhr
> ?????
>
> Sascha

dito...außerdem is die Uhrzeit bei Stromausfall weg...und eben die 
Ungenauigkeit

von Tobi W. (todward)


Lesenswert?

Sebastian R. schrieb:
> Sascha Weber schrieb:
>> To W. schrieb:
>>> Die RTC brauche ich deswegen nicht, weill ich über einen Timer
>>> einen Takt von 0.1 sekunden erzeuge und damit meine uhr/variable laufen
>>> lasse.
>>
>> wie oft willst du denn die Uhr stellen wenn du noch nicht mal nen ext.
>> Quarz verwenden willst? Für den UART mags ja reichen - aber für eine Uhr
>> ?????
>>
>> Sascha
>
> dito...außerdem is die Uhrzeit bei Stromausfall weg...und eben die
> Ungenauigkeit
Sehe ich ein. Nur das mit dem Stromausfall kann man auschließen indem 
man einfach bei jeden timer_ISR die aktuellen zeitvariablen 
(sekunde,minut,stunde usw.) in den eeprom packt. so hat man dann nur die 
zeitdifferanz vom stromausfall.
Gibt es irgentwo ein Tut wo ich mir das mal mit rtc anschauen kann? 
Natürlich werde ich auch erstmal googlen... :-D

Gruß
Tobi

von Christian T. (shuzz)


Lesenswert?

Wie oft wird denn Dein Timer-Interrupt ausgelöst?
Der EEPROM ist "nur" 100.000x beschreibbar!

von Vlad T. (vlad_tepesch)


Lesenswert?

1 mal die sekunde sollte doch reichen.
damit kann man den mega ganze 28 stunden betreiben, reicht das nicht?

von Jens K. (jjk) Benutzerseite


Lesenswert?

To W. schrieb:
> Gibt es irgentwo ein Tut wo ich mir das mal mit rtc anschauen kann?
> Natürlich werde ich auch erstmal googlen... :-D

http://www.mikrocontroller.net/articles/AVR_-_Die_genaue_Sekunde_/_RTC

Gruß
  Jens

von Tobi W. (todward)


Lesenswert?

naja 28 stunden ist für eine steuerrung recht wenig... wusste garnet das 
man den maximal 100.000 mal beschrieben kann, das war mir nur bei dem 
flashspeicher bekannt.

Ich habe mir mal das tut, dass jens gepostet hatte, mal angesehen. 
Danach hatte ich mir nochmaldie beschaltung vom Mega8 mit erxternem 
quarz angesehen. Ich werde an den controller einen 16mhz quarz hängen 
und damit auf den Uhrenquarz zu verzichten. Um einem Stromausfall 
vorzubeugen bauche ich noch ein Batteriefach mit drei oder 4 akkus ein 
um damit bei stromausfall die Steuerung weiterzubetreiben. Solange kein 
stromausfall ist, werden die akkus immer auf einem bestimmten ladelevel 
gehalten. Die Laderegelung könnte dann der uC mit einem analog eingang 
und einem pwm ausgang oder so übernehmen. Kann man akkus eigentlich per 
pwmladen oder muss man das anders machen?


Danke nochmal für eure tatkräftige unterstützung!
gruß
Tobi

von Helmut L. (helmi1)


Lesenswert?

>Ich werde an den controller einen 16mhz quarz hängen
>und damit auf den Uhrenquarz zu verzichten.

Bau ein gescheites RTC IC an deine Schaltung versorg das mit einer 
Lithium Batterie und gut ist. Das ganze ist billiger als die Schaltung 
mit Akkus Notstrom zu versorgen. Dieses UhrenIC zaehlt dir deine Zeit 
weiter auch wenn der Prozessor steht.
Auch duerften die Akkus auch nicht allzu lange halten.
RTC 4513 duerfte schon fuer dich passen gibts bei Rei....

Wie versorgst du eigentlich deine Schaltung ? Ich hoffe du hast da auch 
ein passendes Netzfilter eingeplant sonst spinnt dein Prozessor beim 
abschalten der Teichpumpe. Deine Taster wuerde ich noch einen 
niederohmigen Pullup spendieren die internen sind zu hochohmig sonst 
faengst du dir da auch Stoerungen drueber ein. Dem Reset Pin koennte 
auch ein kleiner C nicht schaden. Der GND deiner Schaltung solltes du 
mit einem kleinen C (4.7nF) an PE anschliessen. Das sind alles 
Massnahmen die der Stoersicherheit deiner Schaltung dienen.

Gruss Helmi

von Tobi W. (todward)


Lesenswert?

Ich hatte als Stromversorgung einen Ringkerntrafo mit 2 Elkos um die 
2000µF gedacht. Sollte spannungsspitzen erstmal filtern. Und dann ist ja 
auch noch der 7805 regler stabilisiert.

Wieso sollten die akkus nicht so lange halten? Ich wollte die steuerung 
auch nicht wochenlang damit betrieben sondern sollten die steuerung so 
1-2 tage am leben halten.

Für einen genauen uhr takt könnte ich auch einen DCF empfänger nehmen. 
Ist zwar schwerer auszuwerten als der RTC-chip aber sollte zu meistern 
sein.

Ich werde mir das nochmal überlegen wie ich es mache. Bis weihnachten 
ist ja noch zeit :-)

Gruß
Tobi

von Helmut L. (helmi1)


Lesenswert?

>Ich hatte als Stromversorgung einen Ringkerntrafo mit 2 Elkos um die
>2000µF gedacht. Sollte spannungsspitzen erstmal filtern. Und dann ist ja
>auch noch der 7805 regler stabilisiert.

Das filtert dir aber keine Netzstoerungen (kapazitive Kopplung im Trafo) 
aus. Gegen asymetrische Netztstoerungen nuetzt dir das nichts. Dazu 
brauchs du ein Netzfilter (Stromkompensierte Drossel + X , Y 
Kondensatoren).

>Wieso sollten die akkus nicht so lange halten? Ich wollte die steuerung
>auch nicht wochenlang damit betrieben sondern sollten die steuerung so
>1-2 tage am leben halten.

Ich meinte auch nicht die Betriebszeit damit sondern die Lebensdauer der 
Akkus. Und da haelt eine Lithium Batterie fuer den RTC Chip wesentlich 
laenger.

von Tobi W. (todward)


Lesenswert?

das wird ja immer aufwendiger... :-( Aber was sein muss, muss sein. Nur 
das einzige problem was ich habe ist, dass ich davon mal überhaupt gar 
keine hab wie ich sowas dimensionieren soll.
Ich könnte natürlich auch ein PC-netzteil benutzten, da ist sowas ja 
auch schon alles drin und ich müsstenix mehr filtern oder stabilisieren.

Gruß
Tobi

von Helmut L. (helmi1)


Lesenswert?

>das wird ja immer aufwendiger... :-( Aber was sein muss, muss sein. Nur
>das einzige problem was ich habe ist, dass ich davon mal überhaupt gar
>keine hab wie ich sowas dimensionieren soll.

Netzfilter kann man auch fertig kaufen. Eine betriebssichere Schaltung 
hat nun mal einen gewissen mindestaufwand.


>Ich könnte natürlich auch ein PC-netzteil benutzten, da ist sowas ja
>auch schon alles drin und ich müsstenix mehr filtern oder stabilisieren.

Das ist ja wohl mit Kanonen auf Spatzen geschossen. Auch brauchen einige 
PC Netzteile ein Mindestlast. Du brauchst für deine Schaltung doch nur 
4..5W wenns hoch kommt.

von Sascha D. (saschad)


Angehängte Dateien:

Lesenswert?

Außer die Uhr, macht das das was Du willst... Gut es ist kein ATmega8, 
sondern ein PIC16F870 / oder 872 was man gerade so hat... Über die 
serielle Schnittstelle kannst Du daten austauschen wenn du das willst. 
Ansonsten, wenn ich mich recht errinnere (das ganze ist schon etwas 
her):

8 x digital I/O 24Vdc (Optokoppler mit ULN, hm, glaub ich)
4 x analog In (0..5V)
4 x Relais (je 1 Schließer) 250V/10A Schaltleistung muß man im 
Datenblatt nachsehen.
IIC, UART
Versorgungsspannung 115Vac / 230Vac

usw.

Wenn ich heute Abend noch dazu komme suche ich mal den Schaltplan...

Gruß

von Tobi W. (todward)


Lesenswert?

Sascha D. schrieb:
> Außer die Uhr, macht das das was Du willst... Gut es ist kein ATmega8,
> sondern ein PIC16F870 / oder 872 was man gerade so hat... Über die
> serielle Schnittstelle kannst Du daten austauschen wenn du das willst.
> Ansonsten, wenn ich mich recht errinnere (das ganze ist schon etwas
> her):
>
> 8 x digital I/O 24Vdc (Optokoppler mit ULN, hm, glaub ich)
> 4 x analog In (0..5V)
> 4 x Relais (je 1 Schließer) 250V/10A Schaltleistung muß man im
> Datenblatt nachsehen.
> IIC, UART
> Versorgungsspannung 115Vac / 230Vac
>
> usw.
>
> Wenn ich heute Abend noch dazu komme suche ich mal den Schaltplan...
>
> Gruß
Das wäre nett wenn du mal schauen könntest.
Ich habe mich noch nicht mit den PICs befasst. Werde mich dann mal 
schlau machen. Kann man da denn was zeitgesteuertes machen oder muss man 
das mit den eingängen verknüpfen?

gruß
Tobi

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.