Forum: Mikrocontroller und Digitale Elektronik Dosieranlage über AVR Mega8


von Lennart J. (lennartj)


Lesenswert?

Hallo Leute,

ich bin noch recht neu in der Microprozessortechnik und habe mich wie 
immer mal wieder selbst ins kalte Wasser geworfen.

Es geht um eine Dünge-Dosieranlage für mein Aquarium.
Ich möchte über einen ATmega8 vier Dosierpumpen (a` 9V) steuern, welche 
man Kinderleicht über ein LCD - Display "einstellen" soll.
_____
Am besten mal ein kleines Beispiel wie das ganze aussehen soll:

Über Taster werden die Einstellungen der Pumpen getätigt.
Ich gebe hier beispielsweise an zu welcher Tageszeit jede Pumpe für wie 
lange (je nach Dünger-Menge) laufen soll. Dies wird mir in einem kleinen 
"Menü" auf dem LCD - Display (zweizeilig) angezeigt.

So läuft Pumpe A beispielsweise jeden Tag um 9 Uhr morgens für 5 
Sekunden damit die entsprechende Menge Dünger in mein Aquarium fließt.

Für Pumpe B, C und D sind natürlich unabhängig von Pumpe A solche 
Einstellungen machbar.
______

Die Netzversorgung läuft natürlich über 230V, welche ich dann einmal in 
5V und einmal in 9V DC aufteile (Spannungsversorgung Prozessor und 
Pumpen).


Ebenfalls kommt noch eine Lichtsteuerung hinzu, welche ähnlich einer 
Zeitschaltuhr mein Lämpchen über dem Becken schaltet. Diese 
Spannungsebene muss dann über ein Relais geschaltet werden, welches mit 
5V läuft.

Mein Problem ist nun einfach: Wo fange ich an? Was muss ich beachten? 
Und wie realisiert man solche Anlage?

Als Programm steht mir das AVR Studio 4 zur Verfügung, mit welchem ich 
schon kleine Spielereien veranstaltet habe, unter anderem auch meinen 
ATmega8 bespielt usw.

Ich würde mich über eure Hilfe natürlich freuen! Wie gesagt ich bin noch 
Laie, beachtet dies bitte ;)

Schöne Grüße
Lennart

von Martin S. (Gast)


Lesenswert?

Ablauf:
1. Progammablaufplan erstellen
2. Schaltplan erstellen
3. Schaltung bauen/testen
4. Software programmieren/testen
5. freuen

von Chris (Gast)


Lesenswert?

Hi Lennart,

konkretisiere doch die Frage mal etwas: Wo bist du dir unsicher? Bei der 
Hardware, bei der Programmierung oder beim Konzept allgemein? Welches 
Wissen hast du bereits (vor allem, da es hier auch um 230V geht).

Das Projekt ist für einen Einsteiger schon recht komplex, ich würde das 
untergliedern, z.B.:
- Stromversorgung (Netzteil)
- Mikrocontroller-Teil mit Tastern und Display, eine "Uhr" muss da auch 
irgendwie rein wegen der Lichtsteuerung...
- Treiberstufe (d.h. Transistoren für Relais und Motoren)

Gruß,
Chris

von derLars (Gast)


Lesenswert?

Hi Lennart,
vielleicht wäre für dich als Einsteiger eine Relaiskarte sinnvoll, die 
du dann mit einem Microcontroller steuerst. (Pumpen, Leuchten an die 
Karte)
Für die Microcontrollerschaltung kannst du ja ein fertiges Netzteil 
verwenden.
Damit ist der 230V-Teil schonmal abgehakt ;)

Was den uC betrifft:
- Was brauchst du? (Eingänge, Ausgänge, Timer oder RTC)
- Welchen uC kannst du dafür verwenden?
- Wie wird dieser beschaltet?
-> Schaltplan erstellen/aufbauen/testen

Was soll das Programm können:
-> Interne Uhr, oder RTC?
- Eingabe per Taster
- Ausgabe per Display
- Steuerung der Relaiskarte anhand der Eingaben
-> Ablaufplan des Programms erstellen
- Einzelne Module implementieren/testen
- Module zusammenbauen/testen

Vielleicht als erste Anhaltspunkte/Ideen :)

derLars

von Lennart J. (lennartj)


Lesenswert?

Hallo Martin und Chris,

vielen Dank für den Ablaufplan Martin, der bringt mich schonmal etwas 
weiter.

@ Chris, das ist natürlich eine Gute Frage. Ich sage mal so, wenn man 
dem Ablaufplan von Martin folgen kann steht die Programmierung hinten 
an. Die Programmierung an sich ist natürlich schwer, denke aber mit 
verschiedenen Tutorials und ggf. euer Hilfe und so weiter bekomme ich 
das schon hin.

Die Stromversorgung bekomme ich hin, bei der Einbringung mit dem 230V 
Netz bin ich mir zwar noch nicht so sicher jedoch sollte dies doch über 
Relais machbar sein, welche mit einer "Quarzuhr" über den Prozessor 
angesteuert werden. Gleiches gilt für die Dosierpumpen, anstelle von 
230V halt auf 9V Basis.

(Welche Alternativen gibt es zum Quarz? ich habe mal etwas über eine 
"Funkuhr" gehört, welche sich automatisch abgleicht.)

Die Taster und der Microprozessor sind halt direkt mit der 
Programmierung verknüpft. Hier weiß ich im Grunde nur wie man die Taster 
und den Aufbau der Hardware realisiert. Sprich LCD-Display und Taster 
könnte ich aufbauen jedoch ist ab der Logik schluss. Man könnte im 
Vorwege natürlich vereinfacht erstmal jede Pumpe per Tasterdruck 
ansteuern, sodass sie direkt läuft sobald man den Taster betätigt und 
aufhört wenn man ihn loslässt. Alles andere ist dann natürlich 
programmierabhängig.

Falls es für euch ein leichtes ist, könntet Ihr mir ja mal einen kleinen 
Schaltplan erstellen. manche leute machen soetwas ja im Handumdrehen. 
natürlich nur wenns wirklich keine umstände macht.

Gruß Lennart

von Se. Sk. (Gast)


Lesenswert?

Evtl. erstmal ausgiebig "trocken" üben/testen (also die fertige Anlage) 
oder evtl. für den Anfang auch wirklich nur begrenzte Menge an 
Düngemitteln in die Reservoirs füllen. Ich bin zwar nicht vom 
Aquaristik-Fach, aber Ich vermute, dass eine Überdosis des ein oder 
anderen Düngemittels sicherlich garnicht gut kommt.
=> Den Sicherheitsaspekt musst du also definitiv im Auge behalten!

Für die Uhrzeit könntest du (ggf. langfristig) auch ein DCF-Modul 
verwenden um so mit der Zeit zu gehen.

Anstatt einem Atmega8 würde Ich eher einen Atmega88 empfehlen. Der ist 
ja nicht so arg viel teurer, aber dafür in einigen Punkten bequemer.

Du hast vor, in C zu schreiben?

Gruß

von Frank (Gast)


Lesenswert?

Eine reine Ablaufsteuerung würde ich quasi wie einen "elektronischen 
Lochstreifen"aufbauen. Der Tag hat 86400 Sekunden - da passen 8 "Spuren" 
in ein 128 Kbyte statisches RAM.
Den Datenausgang auf eine Kombination aus Latch/Treiber und dann immer 
schön die Adresse im Sekundentakt hochzählen.
Zum Erzeugen des Zeitplanes würde ich mir eine passende PC/Mac-Software 
schreiben und die Daten dann per RS232, USB oder Netz (XPORT) 
übertragen.
Zur Steuerung des Ganzen sollte ein AVR geeignet sein ...

von Lennart J. (lennartj)


Lesenswert?

Hallo Lars und ich sag einfach mal Sk.^^,

ja programmierung läuft über C, den ATmega8 habe ich schon hier und bis 
dato habe ich mich nur mit diesem befasst. Den passenden Programmer und 
das Programmierboard habe ich dafür natürlich auch. Solange meine Anlage 
über diesen realisierbar ist, würde ich diesen uC auch gerne verwenden.

Ich denke ich werde es erstmal so einfach wie möglich versuchen.
Die Uhr lasse ich erstmal weg alles läuft per Tasterdruck, somit habe 
ich schonmal den Großteil der Hardware erschlagen.

Ein fertiges Netzteil wollte ich möglichst umgehen, da ich alles kompakt 
in einem Gehäuse unterbringen möchte und eigentlich so viel selbstmachen 
möchte wie es geht.

-"Grenzen wir das ganze mal ein."

Spannungsversorgung:
- 230V(zu steuern)
- 9V(zu steuern)
- 5V(Steuerspannung)

:Aufbau des Netzteils - Aufgliederung der verschiedenen Spannungsebenen.

:Aufbau des uC's incl. LCD und Taster, Steuerleitungen (evtl. 
Ralaiskarte)

:Aufbau der Dosierpumpen

:Aufbau der Lichtsteuerung


(Die Dosierpumpen kann man ja mit normalem Wasser testen, hier kommts im 
endeffekt ja nur auf die richtige dosierung an, welche natürlich auch 
noch getestet werden muss. In welcher Zeit läuft welche Menge an 
"Wasser" durch.)

Findet ihr, dass ich so vorgehen kann? Um es erstmal vereinfacht 
aufzubauen und um mich dann später langsam ran zu tasten um die ganze 
Anlage dann Stück für Stück zu erweitern?

Vielen Dank für eure tatkräftige Unterstützung, das hätte ich wirklich 
nicht erwartet!!!

von Frank (Gast)


Lesenswert?

Nachtrag: Eine SD-Karte ginge natürlich auch. Dann kann man bequem ein 
86 KB großes File step-by-step durchlesen. Das File beginnt immer bei 0 
Uhr und wird nach Restart bis zur aktuellen Zeit "vorgespult". (DCF?)

Man hätte zusätzlich den Vorteil, verschiedene Wochentage (anderes File 
wählen) zu berücksichtigen. Und nebenbei vereinfacht sich die 
PC-Kommunikation (Karte herausnehmen) ...

von Dietmar (Gast)


Lesenswert?

Du brauchst ja auch nicht direkt mit Pumpe und Lampe anzufangen. 
Schließe einfach LED's mit Vorwiderstand an den uC an. Dann siehst du 
wann etwas passieren soll.
Zerlege die Aufgbe und löse sie Schritt für Schritt.

1. LED's ansteuern und blinken lassen
2. Taster einlesen, entprellen und eine LED leuchten lassen wenn Taster 
gedrückt.
3. LCD ansteuern
4. Tastendruck auf LCD ausgeben
5. Uhr implementieren, Uhrzeit auf LCD ausgeben.
6. Kombiniere das gelernte, Uhrzeit wird laufend ausgegeben (1.Zeile) 
Tasten werden z.B. in der zweiten Zeile ausgegeben.

7....
8....

Wichtig: Wenn ein Problem auftritt Fragen. Nicht einfach an einer 
anderen Stelle weitermachen. Du kommst eh wieder daran vorbei.

Wenn dann alles funktioniert kannst du dich um Licht und Pumpe kümmern, 
bis dahin wird es aber noch dauern.

Gruß Dietmar

von Chris (Gast)


Lesenswert?

Also ich würde es so machen:

Stromversorgung:
Zunächst Steckernetzteil nehmen, Festspannungsregler 5V dran. Optimal 
wäre in Labornetzgerät mit Strombegrenzung. Den 230V-Part würde ich erst 
mal raus lassen.

Mikrocontroller-Platine:
Controller-Grundbeschaltung, Taster dran, Display dran.
Dann überlegen, wieviele Ausgänge man für Relais, Pumpen usw. braucht.
Entsprechend LEDs auf die Platine bauen. Damit kann man zum einen gut 
testen, und außerdem sind sie auch später nützlich (sprich: sie können 
bleiben und dienen dann als Kontroll-LEDs).

Dann die Software in kleinen Schritten:
- LEDs ansteuern
- Taster einlesen (und entprellen)
- LCD ansteuern
- Werte im eeprom speichern und lesen

Das sind dann erstmal ein paar Grundlagen.

Dann überlegen, wie man das mit der Uhrzeit umsetzt:
Externes Uhrenmodul (RTC), oder ein DCF77-Modul für Funkuhrempfang, oder 
die Uhr manuell einstellen und irgendwie einen richtigen (und genauen) 
Takt erzeugen? Was passiert nach einem Stromausfall? Die Uhrzeit wäre 
dann weg und das Licht aus (oder zur falschen Zeit an.... eventuell per 
Software prüfen, ob Uhr gestellt wurde).
RTC oder DCF77 wollen natürlich angesteuert / ausgewertet werden. Das 
dann umsetzen.

Dann: Menü schreiben.


Generell musst du damit rechnen, dass beim Programmieren Fehler 
entstehen können, die nur zu bestimmten Uhrzeiten auftreten, oder 
scheinbar zufällig. Gerade bei den Pumpen ist daher Vorsicht geboten...

von Lennart J. (lennartj)


Lesenswert?

Hi Frank, Dietmar und Chris,

als Uhr wird einfach die einfachste Variante gewählt, welche natürlich 
auch zuverlässig ist, dazu werde ich mir später Gedanken machen.

Als erstes werde ich wie mir Dietmar und Chris schon zu Füßen gelegt 
haben ein paar LEDs ansteuern, denke das bekomme ich noch hin. Zum 
entprellen muss ich mir nochmal gedanken machen, dies ralisiert man doch 
mit einem Kondensator richtig?

Ansonsten sollte die Programmierung zu schaffen sein, die 5V werde ich 
mir erstmal direkt mit nem Netzteil bereitstellen.

Also auf auf, wenns Probleme gibt, schreibe ich!

Vielen Dank euch allen ;)

Lennart

von derLars (Gast)


Lesenswert?

Zur Entprellung hilft das hier bestimmt

http://www.mikrocontroller.net/articles/Entprellung#Komfortroutine_.28C_f.C3.BCr_AVR.29

Da brauchst du überhaupt keine extra Hardware, wenn du es mit der 
Softwarelösung versuchen willst ;)

derLars

von Winfried J. (Firma: Nisch-Aufzüge) (winne) Benutzerseite


Lesenswert?

Ein Atmega 8 scheint mir fast etwas knapp für das Projekt. Es mag gehen, 
trotzdem würde ich gleich zum 32er greifen und eine 3137 mit Uhren und 
Kalenderfunktion nebst Lithiumzelle nur für die autark laufende Uhr 
spendieren

Namaste

von Karl H. (kbuchegg)


Lesenswert?

Winfried J. schrieb:
> Ein Atmega 8 scheint mir fast etwas knapp für das Projekt.

Enschuldige bitte. Aber warum soll das knapp werden?

Ein LCD, 4 Taster, eine Software-Uhr und eine Handvoll Schaltzeiten. Das 
kriegst du locker in einen 8-er rein.
Solange man den Fall ignorieren kann, dass eine Ein-Zeit über 
Mitternacht 'drüber geht', ist das softwareseitig eine relativ einfache 
Übung.

von Lutz (Gast)


Lesenswert?

Wenn man es halbwegs richtig macht, sehe ich da auch kein Problem. Wenn 
man natürlich float und sowas benutzt, ist das natürlich was anderes. 
Aber es gibt ja u.a. 
http://www.mikrocontroller.net/articles/Festkommaarithmetik oder das 
AVR-GCC-Tutorial , wo einem die Problematik und auch die Lösung vor 
Augen geführt wird.

von Karl H. (kbuchegg)


Lesenswert?

An float hab ich jetzt eigentlich gar nicht gedacht. Auf die Idee wird 
ja wohl bei Uhrzeiten hoffentlich keiner kommen :-)

Ich hab eher an das Problem gedacht, wenn mal der Strom ausfällt und 
wieder kommt, dass dann das Schaltprogramm auch mitten in einen 
Ein-Zyklus einsteigen können soll (Beleuchtung). D.h es muss 
festgestellt werden, ob die aktuelle Uhrzeit größer als die Ein-Zeit und 
kleiner als die Aus-Zeit ist. Wenn ja, dann Ausgang auf 1 schalten, wenn 
nicht dann eben auf 0. Solange man den Fall 'Mitternacht' nicht 
berücksichtigen muss, ist das relativ simpel.

von Lutz (Gast)


Lesenswert?

Karl Heinz Buchegger schrieb:
> An float hab ich jetzt eigentlich gar nicht gedacht. Auf die Idee wird
> ja wohl bei Uhrzeiten hoffentlich keiner kommen :-)

Na ja, ich fürchte, daß dieser Gedankengang gar nicht so abwägig ist, 
wenn man z.B. die Folgen einer float-Variablen nicht kennt. "Man" will 
ja für 4.4837 Sekunden dosieren; es soll ja schließlich auch genau 
werden. Oder es sollen 3.96 ml Dünger dosiert werden.

Karl Heinz Buchegger schrieb:
> Solange man den Fall 'Mitternacht' nicht
> berücksichtigen muss, ist das relativ simpel.

Habe ich jetzt spontan gar nicht dran gedacht. Aber sollte sich das 
nicht durch eine simple Tagesvariable (1-365) berücksichtigen lassen? 
Nach dem Motto erst Tagesvariable vergleichen, bei Gleichheit danach die 
Uhrzeit?

von Lennart J. (lennartj)


Lesenswert?

Hallo Leute,

so Tag zwei beginnt nun. Gestern habe ich noch einen Taster (ohne 
Entprellung) und als Ausgang eine LED realisiert, welche standardmäßig 
leuchtet. Wenn ich den Taster schließe hört die LED auf zu leuchten. Das 
bespielen des uCs hat ganz gut funktioniert und sogesehen war das ganze 
ganz schnell realisiert. Ich habe noch versucht eine Softwareentprellung 
einzubauen, da dies denke ich später dringend notwendig ist, bin aber 
kläglich daran gescheitert, weil es so viele Möglichkeiten gibt und ich 
hier im Forum mit der Suche zwar was gefunden habe, jedoch ist dies für 
einen Anfänger wie mich nicht ganz leicht nachzuvollziehen.

Ihr habt ja hier schon weiter über die "Zeit" diskutiert. Hier suche ich 
eigentlich nur eine einfache (vll. auch die einfachste) Variante, welche 
zuverlässig ist und gut funktioniert.


Der Sache mit dem Stromausfall schenke ich vorerst keine Bedeutung, das 
ist einfach viel zu viel auf einmal ;)

Ich denke als nächstes werde ich das Netzteil realisieren um daran dann 
meine LED-Steuerung zu testen. Also 230V Ausgangsspannung ohne 
irgendwelche fertigen Netzteile.

Was sagt ihr dazu?


EDIT: hier nochmal mein Programm:

#include <avr/io.h>
#define TASTER1   PD2
#define LED1      PD5

int main()
 {
   DDRD |= (1<<LED1);              // LED1 - Anschluss als Ausgang

   while(1)
   {
    if(PIND & (1<<TASTER1))
    PORTD |= (1<<LED1);            //LED1 an  - Taster gedrückt
    else                           // sonst
    PORTD &= ~(1<<LED1);           //LED1 aus - Taster nicht gedrückt
   }


 return 0;
 }


schöne Grüße Lennart

von Dietmar (Gast)


Lesenswert?

Hallo Lennart,

setzte dich mit dem entprellen auseinander! Nicht irgenwas anderes 
zuerst machen. Wie du erkannt hast ist das entprellen elementar für 
deine Anwendung.

Der "derLars" hat dir doch schon einen Link zu einer Softwarelösung 
gezeigt.
http://www.mikrocontroller.net/articles/Entprellung#Komfortroutine_.28C_f.C3.BCr_AVR.29

Für dich neu in dieser Lösung ist die Funktion eines Timers. Den wirst 
du auch benötigen. Arbeite die Lösung durch und Versuche das zu 
verstehen.

Näheres zu de Timern findest du hier : 
http://www.mikrocontroller.net/articles/AVR-GCC-Tutorial/Die_Timer_und_Z%C3%A4hler_des_AVR

Tipp: In der Softwarelösung oben wird davon ausgegangen das deine Taster 
gegen GND schalten. Dazu werden die internen Pull-Up Widerstände des AVR 
genutzt. Ggf. musst du hier deinen Hardware anpassen.

Und JA es ist am Anfang ein durchbeißen, aber es lohnt sich.

Gruß Dietmar

von Lennart J. (lennartj)


Lesenswert?

Hallo Dietmar,

ja vielen Dank für deinen Tip, ich habe bis jetzt mit einem Kollegen die 
gesammte Hardware durchgekaut. Die Taster habe ich in meiner Lösung mit 
einem Vorwiederstand gegen GND geschaltet. Die Softwaregeschichte ist 
für mich ziehmlicher Kauderwelsch, aber ich werde es versuchen, denn ich 
will keine Hardwarelösung.


So und nun gehts ans Programmieren!

von Winfried J. (Firma: Nisch-Aufzüge) (winne) Benutzerseite


Lesenswert?

Karl Heinz Buchegger schrieb:
> An float hab ich jetzt eigentlich gar nicht gedacht. Auf die Idee wird
> ja wohl bei Uhrzeiten hoffentlich keiner kommen :-)
>
> Ich hab eher an das Problem gedacht, wenn mal der Strom ausfällt und
> wieder kommt, dass dann das Schaltprogramm auch mitten in einen
> Ein-Zyklus einsteigen können soll (Beleuchtung). D.h es muss
> festgestellt werden, ob die aktuelle Uhrzeit größer als die Ein-Zeit und
> kleiner als die Aus-Zeit ist. Wenn ja, dann Ausgang auf 1 schalten, wenn
> nicht dann eben auf 0. Solange man den Fall 'Mitternacht' nicht
> berücksichtigen muss, ist das relativ simpel.

Genau deshalb hatte ich eine externe Uhr  mit  autarker Versorgung 
angedacht.

Zudem bedachte ich allfällige Sensoric neben der Uhr.
Dann kommen in Summe: Taster, Anzeige, Ansteuerung  für Pumpen, ext 
Sensoren(eventuell auch für Regelkreisrückführungen)  und eine 
allfällige PC/Netzwerk Schnittstelle.
Ich würde also etwas Großzügiger projektieren um dann eine abgespekte 
Billigversion und ein Premiumprodukt zu haben.

Aufrüsten gestaltet sich erfahrungsgemäß schwieriger als einsparen.
und eine autark laufende Uhr halte ich bei uhrenabhängigen Anwendungen 
für unverzichtbar.


Aber das Display frist schon ma 7 Pins, min 4 benötigen die Pumpen, 2 
die externe Uhr, min 3 die Taster sind schon, noch ohne jeden Sensor und 
Schnittstelle, 16 Pins weg, wenn ich keine externe Portorgie verwalten 
will. Und es spielt keine Rolle ob ich beim Display noch ei 2 Pins 
spare.
das Gerät wäre von Anfang an beschränkt.

über Float habe ich dabei keine Sekunde nachgedacht
aber wie man sieht....

Am Ende könnte man gezwungen sein die HW orgie neu aufzusetzen und mann 
beginnt bei Nullkommadrei mit der Entwicklung

Also großzügig kalkuliern spart Zeit Geld und Nerven

Namaste

von Lennart (Gast)


Angehängte Dateien:

Lesenswert?

Hallo Leute,

nun hab ich lange erstmal nichts geschrieben und die Programmierung 
erstmal außen vor gelassen.
Habe mich derzeit um die Hardware gekümmert und alles soweit auf eine 
Lochplatine aufgelötet.

Mein Netzteil ist in zwei Spannungsebenen aufgeteilt.

Einmal in 5V für die Spannungsversorgung des uC's und einmal in 12V für 
die Ansteuerung der Dosierpumpen und das Relais für die Beleuchtung 
(230V).

Wie ich dies nun verdratet habe zeige ich in drei Anhängen auf.

Ich würde euch einfach mal bitten zu prüfen ob die 
Relais-/Pumpenansteuerung soweit richtig ist und wenn nicht, was ich 
genau ändern muss.

Die Bilder habe ich mit Paint gemacht und jeweils nur einen Strang 
gezeichnet, also bitte nicht lachen ;D


Schöne Grüße

von Karl H. (kbuchegg)


Lesenswert?

Lennart schrieb:

>
> Wie ich dies nun verdratet habe zeige ich in drei Anhängen auf.

Den Pullup an den Tastern kannst du dir sparen. Die hat der µC schon 
eingebaut. Die braucht man nur aktivieren.

Und für die anderen beiden:

Wo sind deine techn. Daten?
Wo sind deine Berechnungen?

Ohne die kann man nicht sagen, ob das so geht oder nicht.

von Karl H. (kbuchegg)


Lesenswert?

Winfried J. schrieb:

> Aber das Display frist schon ma 7 Pins, min 4 benötigen die Pumpen, 2
> die externe Uhr, min 3 die Taster sind schon, noch ohne jeden Sensor und
> Schnittstelle, 16 Pins weg, wenn ich keine externe Portorgie verwalten
> will. Und es spielt keine Rolle ob ich beim Display noch ei 2 Pins
> spare.
> das Gerät wäre von Anfang an beschränkt.

Daran hab nun ich wieder nicht gedacht :-)

autarke Uhr ist denke ich klar. Brauchen wir nicht diskutieren.

> Also großzügig kalkuliern spart Zeit Geld und Nerven

Hast du recht. Der preisliche Unterschied zum nächst größeren ist bei so 
einem Einzelstück sowas von egal.

von Karl H. (kbuchegg)


Lesenswert?

Lennart schrieb:
> Hallo Leute,
>
> nun hab ich lange erstmal nichts geschrieben und die Programmierung
> erstmal außen vor gelassen.
> Habe mich derzeit um die Hardware gekümmert und alles soweit auf eine
> Lochplatine aufgelötet.

Was genau?

An deiner Stelle würde ich erst mal nur den µC in Betrieb nehmen. 
Anstelle von Relais und Pumpe tuns erst mal einfach nur ein paar LED. 
Taster drann und dann das Entwicklungsprogramm, das dir weiter oben 
schon ein paar mal nahegelegt wurde durchziehen. Mir scheint du 
unterschätzt den Aufwand, den du für die Programmierung brauchst ganz 
gewaltig.

von Lennart (Gast)


Lesenswert?

Hallo Karl Heinz,

nein den Aufwand unterschätze ich nicht im geringsten, habe mehr oder 
weniger sogar so sehr respekt davor, dass ich mich da einfach noch nicht 
rantraue. Klar kann man alles mit LED's testen, was ich natürlich auch 
schon getan habe, jedoch nicht in dieser Form welche ich auf den Bildern 
wiedergegeben habe. Wenn meine Schaltung soweit Hardwaretechnisch 
funktioniert, kann ich es ja auch so testen (Pumpen kann man natürlich 
erstmal mit LED's simulieren). Meine Frage ist einfach, ob ich noch 
etwas ergänzen oder fatale Fehler in meinem jetzigen Plan habe. Zur Zeit 
ist nur das Netzteil auf die Platine gelötet, welches auch funktioniert. 
Der Gedanke wie auf den Bildern ist natürlich noch in Planung;)

von Lennart (Gast)


Lesenswert?

Hi Karl Heinz, habe deine oberen Posts übersehen.

Die Transistoren bestehen alle aus den BD649 ern.

Nun hab ich gerade was dazu hier auf der Seite gefunden.

http://www.mikrocontroller.net/articles/Transistor#Wie_kann_ich_mit_5V_vom_Mikrocontroller_12V_und_mehr_schalten.3F

somit lag ich ja garnicht mal so falsch.

Der Vorwiderstand trägt die Bezeichnung R2,4K7 ...was sicherlich 4kOhm 
heissen soll.


Die Frage ist nun, ob es egal ist ob ich BD649er nehme oder die BC547er?

von Lennart (Gast)


Lesenswert?

Ich push das Thema mal etwas hoch

von Lennart (Gast)


Lesenswert?

Basiswiderstand für die Kollektorschaltung der Dosierpumpen.

(http://www.mikrocontroller.net/articles/Basiswiderstand)

Ic = 150mA
Hfe = 750

Hfe / 3.3 = 227


Ib = Ic / Hfe
Ib = 150mA / 227 = 0,6mA

Rb = 3,8V / 0,6mA = 6333 Ohm

von Karl H. (kbuchegg)


Lesenswert?

Lennart schrieb:
> Basiswiderstand für die Kollektorschaltung der Dosierpumpen.
>
> (http://www.mikrocontroller.net/articles/Basiswiderstand)
>
> Ic = 150mA

150mA für eine Pumpe? Wo hast du den Wert her? Hast du auch bedacht, 
dass die meisten Motoren beim Anlaufen erheblich mehr Strom ziehen?

> Hfe = 750

für welchen Transistor?

>
> Hfe / 3.3 = 227
>
>
> Ib = Ic / Hfe
> Ib = 150mA / 227 = 0,6mA
>
> Rb = 3,8V / 0,6mA = 6333 Ohm

Nimm einen 1k Basiswiderstand und du bist soweit auf der sicheren Seite. 
1k ist geringer als die rechnerisch erforderlichen 6.3k, steuern somit 
den Transistor auf jeden Fall voll durch. Und 1k ist groß genug, dass du 
den Ausgangstreiber des µC noch lange nicht überlastest. Bei einem 
Schalttransistor kann man es sich leisten 'bei einem Wasserhahn ein 
Kraftwerksventil einzubauen und dieses voll aufzudrehen'

Abgesehen davon schaut deine Berechnung vom Rechengang her soweit 
richtig aus.

Und PS:
4k7  bedeutet 4,7kOhm. Das k übernimmt dann gleichzeitig die Aufgabe des 
Dezimalpunktes.

von Lennart (Gast)


Lesenswert?

Hallo Karl Heinz,

erstmal vielen Dank für deine Erläuterungen!

Es handelt sich um einen NPN BD649.

Die Pumpe werde ich bei Ebay bestellen, leider sind dort die Angaben 
sehr gering.

Hier mal der Link

http://cgi.ebay.de/Dosierpumpe-N-E-U-Selbstausbau-wenige-Minuten-/290593677641?pt=de_haus_garten_tierbedarf_fische&hash=item43a8bba149


Die Ohm Angabe 4k7 hab ich nun auch geblickt Danke ;)

von federloser Erpel (Gast)


Lesenswert?

Der Gerätchen  ist  neu , meist ist auch noch das 12 Netzteil dabei, 
und beinhaltet  neben der Elektronik diverse Mikroschalter, Zugmagnete, 
LED´s, Drucksensoren ,Schläuche, Abzweigstücke etc.  meist auch noch ein 
12 V/ 500 mA Netzteil etc. ,Teile, die ein Bastler / Tüftler  evtl. 
durchaus gebrauchen kann !

Ein bischen komisch klingt das ja schon, zumal Drucksensoren und 
Netzteile üblicherweise keine Cent-Artikel sind.

Die Schlauchpumpe ist  neu , ungelaufen,  und läuft mit 12 Volt ! ( 
Läuft zwischen 9-15 Volt  - ab ca. 150 mA)

Aber daraus lese ich zumindest, daß die Pumpe bei 12 V wohl mehr als 150 
mA ziehen wird. Du wirst also einiges erst nach Erhalt und Prüfung der 
Hardware optimieren bzw. anpassen können. Speziell die Fördermenge! Dann 
kannst du die Software erst anpassen, wie lange z.B. die Pumpe laufen 
soll/muß.

von Lennart (Gast)


Lesenswert?

Hallo Herr Erpel,

ja das stimmt allerdings, habe ich im nachhinein auch so gelesen, naja 
was solls ich werde nun erstmal ein paar LED's zum leuchten bringen und 
dann schauen wies mit den Pumpen läuft. Die Abstimmung von Zeit auf ml 
muss man natürlich testen und in dem Programm "umschreiben". Aber Stück 
für Stück.
Wie man vielleicht merkt bin ich noch recht neu auf dem Gebiet und die 
ganzen Tutorials hier auf der Seite sind zwar wirklich super, jedoch für 
einen Laien auch nicht ganz so einfach zu verstehen ;)

von Lutz (Gast)


Lesenswert?

Wenn die Lampe lange brennen soll (und das soll sie wohl), solltest du 
statt einem Relais einen Stromstoßschalter nehmen. Das spart eine Menge 
Strom über die Zeit, da nur zum Ein- oder Ausschalten Strom verbraucht 
wird. So ist das Relais die ganze Zeit "unter Saft", wenn die Lampe 
leuchten soll.

von Mann_oh_Mann (Gast)


Lesenswert?

Frank schrieb:
> Eine reine Ablaufsteuerung würde ich quasi wie einen "elektronischen
> Lochstreifen"aufbauen. Der Tag hat 86400 Sekunden - da passen 8 "Spuren"
> in ein 128 Kbyte statisches RAM.

Und das für eine handvoll Aktionen. Wie wäre es mit einer Tabelle für 
Start- und Endzeitpunkte bzw. Startzeitpunkte und Einschaltdauer? Dann 
paßt das in 256 Bytes. Und ein EEProm wäre da wohl angesagter, die 
Fische wollen schließlich ein konstante Milieu.
Die Beleuchtungszeiten passen sowieso nicht in eine Tagestabelle sondern 
hängen wohl eher vom Sonnenstand und damit von der Jahreszeit ab. Da 
bietet sich entweder ein Helligkeitssensor oder eine einfache 
Ephemeridenrechnung für Sonnenauf- und -untergang an.

von Lennart (Gast)


Lesenswert?

Hi,

ja das mit dem Stromstoss hört sich wirklich plausibel an, da sollte ich 
noch mal ne runde drüber nachdenken.

von Lennart (Gast)


Lesenswert?

Hi,

die Pumpenstränge schalten nun zum Test die LED's durch, alles 
funktioniert bis jetzt und ich werde mich mal an das Relais ranwagen.

Schöne Grüße

von Lennart (Gast)


Lesenswert?

Hi,

die Pumpenstränge schalten nun zum Test die LED's durch, alles
funktioniert bis jetzt und ich werde mich mal an das Relais ranwagen.

Es handelt sich um dieses Relais, habe nun schon geguckt ob es eine 
interne Freilaufdiode besitzt, konnte leider nichts dazu finden. Kann 
mir da evtl. jemand weiterhelfen, wäre sehr nett :)


Schöne Grüße

von Lennart (Gast)


Lesenswert?

Hi,

die Pumpenstränge schalten nun zum Test die LED's durch, alles
funktioniert bis jetzt und ich werde mich mal an das Relais ranwagen.

Es handelt sich um dieses Relais, habe nun schon geguckt ob es eine
interne Freilaufdiode besitzt, konnte leider nichts dazu finden. Kann
mir da evtl. jemand weiterhelfen, wäre sehr nett :)

http://www.reichelt.de/Print-Steckrelais/FIN-40-61-9-12V/index.html?ACTION=3&GROUPID=3293&ARTICLE=8113&SHOW=1&START=0&OFFSET=16&;


Schöne Grüße

von Lutz (Gast)


Lesenswert?

Scheint keine dabei zu sein.

von Mike J. (emjey)


Lesenswert?

Lennart schrieb im Beitrag #2304985:
> Schuldigung, irgendwie klappt die Editierfunktion nicht ;)

Du musst dich einfach mal einloggen dann geht das mit dem Editieren 
auch. Du hast nach dem abschicken dann noch 15 Minuten Zeit etwas zu 
ändern so lange es keine Antwort gegeben hat. Ausserdem kannst du den 
Beitrag auch wieder löschen wenn du willst.

@ Lennart
Zur Nährstoffzufuhr nutze ich Fische, aber meist sind die so verfressen 
dass ich alle paar Monate ein paar Pflanzen entnehmen muss.

von Lennart J. (lennartj)


Lesenswert?

Hi Mike,

alles klar, hatte vorhin Editier, statt Zitier gelesen...naja

Ja das reicht für normale Becken vielleicht auch aus, aber ich betreibe 
Pflanzenaquaristik, in welchen der Fisch sekundär steht. Durch die 
erhöhte Pflanzenmasse muss halt nachgedüngt werden. Es ist zwar nun 
nicht so, dass es mich nerven würde jeden Tag etwas Dünger in mein 
Becken zu kippen. Der Grund ist eigentlich der kontinuierliche Ablauf ;)

von Lennart J. (lennartj)


Lesenswert?

So habe nun das Relais fertig.

habe es über die Emitterschaltung genauso wie für die Pumpen gemacht.

http://www.mikrocontroller.net/articles/Relais_mit_Logik_ansteuern

Die Freilaufdiode habe ich eingebaut, nur leider ist sie so klein, dass 
ich nicht genau sehe welche es ist. Beim testen ist mir das Teil dann 
durchgebrannt. Somit habe ich es ohne Diode versucht und es klappt ja 
auch so.

Somit sind Taster, Pumpen, Beleuchtung und das Display Hardwaretechnisch 
aufgebaut.

Was nun noch fehlt ist halt ein Quarz oder etwas in der Richtung und 
natürlich die Programmierung und ein paar LEDs, welche den Zustand der 
Pumpen anzeigen. Momentan läuft alles wenn ich es auf Spartanische Art 
und Weise teste aber recht gut und ich bin eigentlich ganz 
zuversichtlich.

von Mike J. (emjey)


Lesenswert?

Die Diode muss schon rein!
Bei abschalten der Spule entsteht immer eine Überspannung die durch die 
Diode zurück in den Eingang geführt wird.

Durch den Spulenwiderstand und den Diodenwiderstand wird dann die 
Energie verbraucht.

Bei dem Display gibt es z.B. eine Lib für einfache 16 Zeichen x 2 Zeile 
Displays. Du musst dir überlegen was du alles anzeigen möchtest.

Das Programm an sich macht ja nichts großartiges, nur Pins schalten.
Du brauchst ja noch eine Uhr, ich habe in meinen Programmen immer gleich 
eine kleine Uhr mit implementiert da man eh einen Zeitgeber für den 
Programmablauf (wann will ich was machen) brauche.

Da mein Quarz nicht 100% mit der Frequenz schwingt die draufsteht mache 
ich es so dass ich die Uhr eine Weile laufen lasse und die Differenz im 
Programm abrechnen lasse.

Du kannst auch einen DCF77 Empfänger anschließen, dazu gibt es in der 
Codesammlung ein fertiges Projekt ... einfach mal suchen.


Wenn deine aktuelle Uhrzeit bei einem Stromausfall erhalten bleiben soll 
muss die Stromversorgung für die Relais und dem Controller extra sein.
Ein LiIon-Akku den nur den Chip im Notfall versorgt wäre gut.



Zum Chip:
Ein ATMEGA 8 reicht aus. Ist deiner als PID Bauform oder TQFP?
100nF Abblock-Kondensatoren hast du auch verbaut?

Ich habe mir ein paar von denen geholt:
ATmega644 64kByte Flash , 4kByte S-RAM für 2.45 Euro !
Ist allerdings in MLF und eignet sich nicht für Lochraster.

http://www.reichelt.de/Atmel-ATMega-AVRs/ATMEGA-644V-10MU/index.html?;ACTION=3;LA=2;ARTICLE=68175;GROUPID=2959;SID=13TkghI38AAAIAAALqV-E602b5beff76c0c39b04e4ee913985587

von Lennart J. (lennartj)


Lesenswert?

Hi Mike,

ja ich werde mir noch eine geeignete Diode besorgen, meine war halt nur 
so klein, dass ich darauf nichts erkennen konnte.


Was bedeutet Lib oder besser gesagt, was ist das?

Ein DCF77 Empfänger wurde mir auch schonmal empfohlen, ich glaube diesen 
werde ich verwenden, da ich denke, dass es einfacher zu implementieren 
ist.
Wenn ich die Uhrzeit über einen Empfänger beziehe, brauche ich mir ja 
keine Gedanken machen, dass es bei einem Stomausfall zu Problemen kommt.

Habe mir auch schon über Stromausfälle, oder auch einfach das trennen 
vom Netz gedanken gemacht.

Da das Programm ja in dem Sinne über meine Taster einzustellen ist, wird 
es natürlich bei jeder Trennung vom Netz gelöscht. Somit bräuchte ich ja 
ein Speichermedium, welches meine eingegebenen Werte "abspeichert".
Ob ich nun ein Speichermedium einbinde, welches mir diese eingestellten 
Werte sichert weiß ich noch nicht, erstmal kümmere ich mich um den Rest.

Ich kann mit den Begriffen PID und TQFP zwar nicht wirklich was 
anfangen, meine aber es ist die PID Bauform. Er ist jedenfalls länglich 
und hat auf jeder Seite 14 Pins.

Diese Abblockkondensatoren habe ich nicht verbaut. Ehrlich gesagt habe 
ich die bis jetzt noch nie im Einsatz gehabt. Momentan ist der uC direkt 
an die 5V gelegt.

Das heißt dann ja, dass ich für meinen ATmega8 nur einen 100nF 
Kondensator verbauen muss, sprich zwischen Vcc und GND oder was hat das 
mit diesem AREF auf sich???

http://www.mikrocontroller.net/articles/AVR-Tutorial:_Equipment

von Karl H. (kbuchegg)


Lesenswert?

Lennart Jöhnk schrieb:

> Was bedeutet Lib oder besser gesagt, was ist das?

Lib = Library = Bibliothek

Ein Satz von vorgefertigten, getesteten Funktion zu einem bestimmten 
Themenkreis.

>
> Ein DCF77 Empfänger wurde mir auch schonmal empfohlen, ich glaube diesen
> werde ich verwenden, da ich denke, dass es einfacher zu implementieren
> ist.

Na, ja. Einfacher nicht, denn auch DCF will ja dekodiert werden. Aber 
soo schlimm ist das auch wieder nicht.

> Wenn ich die Uhrzeit über einen Empfänger beziehe, brauche ich mir ja
> keine Gedanken machen, dass es bei einem Stomausfall zu Problemen kommt.
>
> Habe mir auch schon über Stromausfälle, oder auch einfach das trennen
> vom Netz gedanken gemacht.

Hand aufs Herz.
Wieviele Stromausfälle hattet ihr in den letzten 2 Jahren? Und wie 
schlimm ist das, wnn du nach einem Stromausfall die Uhrzeit einmalig neu 
einestellen musst? Ich hab für meine Heizungssteuerung entschiedene, 
dass das nicht oft genug vorkommt, so dass ich eine reine Softwareuhr 
betreibe. Die läuft jetzt seit 2 Jahren durch.
Wichtig: Wenn dir eine automatische Einstellung der Uhrzeit wichtig ist, 
dann nimm einen DCF Empfänger oder eine RTC. Ich will dir davon nicht 
abraten.

> Da das Programm ja in dem Sinne über meine Taster einzustellen ist, wird
> es natürlich bei jeder Trennung vom Netz gelöscht. Somit bräuchte ich ja
> ein Speichermedium, welches meine eingegebenen Werte "abspeichert".
> Ob ich nun ein Speichermedium einbinde, welches mir diese eingestellten
> Werte sichert weiß ich noch nicht, erstmal kümmere ich mich um den Rest.

Dieses Speichermedium hast du sowieso. Nennt sich EEPROM und ist bei 
deinem Mega8 schon eingebaut. Dort kann man wunderbar 
Konfigurationsdaten (wie zb Einschaltzeiten) ablegen.

> Diese Abblockkondensatoren habe ich nicht verbaut.

Tu es. Du willst ein Gerät, das unbeaufsichtigt Tag und Nacht problemlos 
durchläuft. Da kommt es auf 50 Cent für ein paar Abblockkondensatoren 
wirklich nicht an.

Klar kann man eine Treppe auch ohne Geländer bauen und mit ein bischen 
Vorsicht ist das auch kein Problem. Aber irgendwann kommt der Tag, an 
dem genau dieses Geländer den Unterschied ausmacht.

> Das heißt dann ja, dass ich für meinen ATmega8 nur einen 100nF
> Kondensator verbauen muss, sprich zwischen Vcc und GND

Ja.
Und zwar zwischen ALLEN Vcc + GND Pärchen.

> oder was hat das
> mit diesem AREF auf sich???

Brauchst du nur, wenn du den ADC in Betrieb nimmst, was bei deiner 
Anwendung nicht sehr wahrscheinlich ist. Auf der anderen Seite kosten 
dir diese 100nF dann auch nicht mehr die Welt.

von Mike J. (emjey)


Lesenswert?

Mike J. schrieb:
> PID

Das war wohl schon etwas zu spät für mich.
Es heißt DIP, Dual In Line Package, also die großen Chips.

Zu dem LCD:
Du gehst z.B. einfach auf die Codesammlung und suchst nach "LCD".

Da findet man dann z.B. so etwas:
Beitrag "DCF-Uhr mit LCD in C"

Oder du schaust bei Peter Fleury vorbei, da gibt es eine schöne Library.
http://homepage.hispeed.ch/peterfleury/avr-lcd44780.html


Deine Werte oder Zeiten kannst du direkt im AVR abspeichern, dann aber 
nicht im S-RAM sondern im EEProm.
http://www.mikrocontroller.net/articles/AVR-GCC-Tutorial#EEPROM


Lennart Jöhnk schrieb:
> Das heißt dann ja, dass ich für meinen ATmega8 nur einen 100nF
> Kondensator verbauen muss, sprich zwischen Vcc und GND oder was hat das
> mit diesem AREF auf sich???

Der Kondensator am Versorgungspin dient nur dazu dass die Spannung nicht 
so stark einbricht wenn der AVR Strom zieht. (er zieht schubweise Strom)

An ARef kannst du eine Spannung von 2.56V erzeugen, das dient als 
Referenzspannung bei der Nutzung des ADC um einen analogen Spannungswert 
einzulesen.
Der Kondensator stabilisiert hier wieder nur die Spannung.

zu den 100nF Kondensatoren:
Ich hab mir mal eine Rolle mit 10000 Stück für 5 Euro gekauft.

von Lennart J. (lennartj)


Lesenswert?

Hallo ihr beiden,

vielen lieben Dank für die Hilfestellungen, wie ihr merkt habe ich das 
bitter nötig ;)

Ist halt alles wie immer nicht ganz einfach aber die Hardware werde ich 
dann in den nächsten Tagen auf den jetzigen Stand bringen, sollte durch 
die Tutorials ja kein Problem sein!


Der Empfänger für die Uhr ist mir momentan am sichersten, werde mich 
diesbezüglich nochmal belesen!

Einen schönen Abend

lennart

von Karl H. (kbuchegg)


Lesenswert?

Lennart Jöhnk schrieb:

> Der Empfänger für die Uhr ist mir momentan am sichersten, werde mich
> diesbezüglich nochmal belesen!

Normalerweise macht man es so, dass man geräteintern eine Uhr 
programmiert und einmal am Tag gleicht man diese Uhr mittels der DCF Uhr 
auf die tatsächliche Zeit ab. Ditto natürlich wenn der µC hochfährt. 
Dann benutzt er die DCF Uhr um an die aktuelle Zeit zu kommen. Von da an 
macht er dann autark eine gewisse Zeit lang weiter ehe er dann wieder 
mittels DCF die interne Uhr auf die richtige Zeit einstellt, sofern dies 
möglich ist und das DCF Signal empfangen werden kann.

D.h. den DCF Empfänger kann man auch im Nachhinein noch nachrüsten, denn 
die µC intern programmierte Uhr braucht man in jedem Fall (auch um einen 
Ausfall des DCF Signals überbrücken zu können).

von Lutz (Gast)


Lesenswert?

Nichts für ungut, aber die DCF77-Geschichte solltest Du definitiv ruhen 
lassen bei Deinen bisherigen Kenntnissen. Nimm eine RTC (z.B. DS1307, 
kostet knapp 2 €) und es ist erstmal gut. Wenn Du ein mal im Monat die 
Uhr nachstellst (sofern überhaupt erforderlich!), ist es wohl auch icht 
tragisch. Zumal es auf ein paar Sekunden hier wohl wirklich nicht 
ankommt. Nachrüsten kannst Du die DCF77-Geschichte irgendwann mal immer 
noch, wenn wirklich alles andere fertig ist.

von Lennart J. (lennartj)


Lesenswert?

Hi Lutz,

sehe ich das richtig, dass diese RTC schon komplett programmiert ist? Im 
Sinne von "ranstöpseln und gut"?

von Karl H. (kbuchegg)


Lesenswert?

Lennart Jöhnk schrieb:
> Hi Lutz,
>
> sehe ich das richtig, dass diese RTC schon komplett programmiert ist? Im
> Sinne von "ranstöpseln und gut"?

Im Prinzip ja.
Aber: Du musst es erst mal schaffen, aus der RTC die Uhrzeit auszulesen. 
Die kommt ja nicht irgendwie magisch in dein Programm sondern will über 
I2C ausgelesen werden.
Und schon hast du deine nächste Baustelle. I2C ist zwar nicht schwer 
aber man muss es dann trotzdem erst einmal lernen wie das alles 
zusammenhängt, wie man Daten abfrägt und wie man das ganze organisiert, 
so dass man mit dem Ausgelesenen auch was anfangen kann.


Im Grunde gilt für die RTC nämlich das gleiche wie für DCF. Kann man 
immer noch nachrüsten, sofern man die Anschlusspins freilässt und man 
draufkommt, dass man so was benötigt.

von NachDenkenHilft (Gast)


Lesenswert?


von Lennart J. (lennartj)


Lesenswert?

Hi Karl Heinz,

hehe ja das es so einfach nicht ist, habe ich mir schon gedacht. Aber es 
ist als Alternative zum Funkempfänger evtl. doch eine bessere Wahl.
I2C sagt mir zwar schon wieder mal garnichts, aber ich gucks mir mal an.

Danke!

von Karl H. (kbuchegg)


Lesenswert?

Lennart Jöhnk schrieb:
> Hi Karl Heinz,
>
> hehe ja das es so einfach nicht ist, habe ich mir schon gedacht. Aber es
> ist als Alternative zum Funkempfänger evtl. doch eine bessere Wahl.

Du bist auf jeden Fall unabhängig vom Funk. Von daher wäre das für mich 
schon ein Fortschritt (ich hab bei mir zu Hause schlechten 
Funkuhrempfang). Ändert aber am Prinzip nicht wirklich viel: ANstelle 
von DCF wird eben die RTC benutzt um die Software-Uhr regelmässig 
nachzustellen.


Schönes Becken, dass du da hast.

von Lutz (Gast)


Lesenswert?

Nein, die mußt Du schon noch selber "stellen" und über eine 
Schnittstelle (DS1307 hat I2C) ansprechen. Und natürlich die gelesenen 
Daten verarbeiten. Vielleicht besser z.B. eine DS1337 nehmen. Die hat 
Tagesalarme und kann damit den Controller zu bestimmten Zeiten wecken. 
Somit pennt der Chip dann auch fast die ganze Zeit und spart Strom. In 
der ISR kannst Du dann den nächsten Tagesalarm stellen, wieder pennen 
gehen usw.

von Karl H. (kbuchegg)


Lesenswert?

Lutz schrieb:
> Nein, die mußt Du schon noch selber "stellen" und über eine
> Schnittstelle (DS1307 hat I2C) ansprechen. Und natürlich die gelesenen
> Daten verarbeiten. Vielleicht besser z.B. eine DS1337 nehmen. Die hat
> Tagesalarme und kann damit den Controller zu bestimmten Zeiten wecken.


Bei aller Liebe. Aber du machst ihm die Dinge immer noch komplizierter. 
Das Projekt muss doch für einen 0-Einsteiger stemmbar bleiben.

> Somit pennt der Chip dann auch fast die ganze Zeit und spart Strom.

Ist bei einem Aquarium dann auch schon egal. Die paar mA fallen nicht 
ins Gewicht.

von Lennart J. (lennartj)


Lesenswert?

Hi,

ich denke ich bringe meine Hardware erstmal auf den Stand, dass ich 
damit schonmal arbeiten kann. Eine Uhr wird dann folgen, wenn alles 
soweit erstmal getestet ist und funktioniert. Ich muss ja schritt für 
schritt vorgehen, sonst habe ich nachher einen rauchenden Haufen Schrott 
;)


Karl Heinz Buchegger schrieb:
> Schönes Becken, dass du da hast.

Du hast sicherlich gegooglet, das gezeigte Becken steht schon länger 
nicht mehr, man muss natürlich auch in diesem Bereich Fortschritte 
machen :)
Aber dennoch vielen Dank Karl Heinz!

von MPL (Gast)


Lesenswert?


von Lennart J. (lennartj)


Lesenswert?

Hallo,

das ich das Rad nicht neu erfinde ist klar^^

Dennoch möchte ich es ja selbst auf die Beine stellen, die gezeigte 
Version ist aber in etwa das, was ich mir vorstelle. Sehr aufmerksam ;)

von Lennart J. (lennartj)


Lesenswert?

Hi,

um nochmal auf die Abblockkondensatoren zurück zu kommen...

So steht hier, dass man zwischen Vcc und GND und zwischen AVcc und GND
jeweils einen 100nF Kondensator schalten soll.

Nun gut, AVcc und den zweiten GND Pin habe ich nun nicht belegt.....
Wie ich gerade gelesen habe müssen diese aber angeschlossen werden, 
damit der Port, welchen AVcc versorgt auch funktioniert.

Muss ich meinen mega8 denn genau so beschalten, wies auf diesem Plan der 
Fall ist? (Quarz mal aussen vor)
http://www.mikrocontroller.net/articles/AVR-Tutorial:_Equipment

Denn beim stecken auf dem Steckbrett habe ich dies nie gemacht.

Momentan sind Port B,C und D belegt.

B für die Taster, C für die Pumpen und das Relais und D für das Display.

Gruß

von Karl H. (kbuchegg)


Lesenswert?

Lennart Jöhnk schrieb:


> Muss ich meinen mega8 denn genau so beschalten, wies auf diesem Plan der
> Fall ist? (Quarz mal aussen vor)
> http://www.mikrocontroller.net/articles/AVR-Tutorial:_Equipment

Es ist die vernünftigste Variante. Die 100nF jeweils so dicht wie 
möglich an den µC Körper.

> Denn beim stecken auf dem Steckbrett habe ich dies nie gemacht.

Ist egal. Zum Testen kann man schon mal ein bischen schlampig sein. Aber 
für einen realen Aufbau nimmt man dann schon das volle Programm. 
Speziell wenn du Relais im Spiel hast.

von Lennart J. (lennartj)


Lesenswert?

Alles klar, das ISP-Programmiergerät brauche ich in meinem Fall auch 
nicht, da ich das extern mache.

Somit fällt ja wieder ne ganze Menge weg, dann ist das ja halb so wild;)

von Karl H. (kbuchegg)


Lesenswert?

Lennart Jöhnk schrieb:
> Alles klar, das ISP-Programmiergerät brauche ich in meinem Fall auch
> nicht, da ich das extern mache.

Würd ich ehrlich gesagt nicht tun.
So ein Stecker ist nicht die Welt und im Falle eines Falles ist es immer 
besser, wenn man ohne lang µC rausfummeln einfach nur den 
Programmierstecker anstecken kann.
Ganz abgesehen davon, dass es ein unglaublicher Aufwand ist, ein 
Programm zu schreiben, bei dem man zum Testen erst mal den µC in die 
reale Hardware umsetzen muss. Und am Testen mit der realen Hardware 
wirst du nicht vorbeikommen. Je früher du mit der realen Hardware testen 
kannst, umso besser.

>
> Somit fällt ja wieder ne ganze Menge weg, dann ist das ja halb so wild;)

Du streubst dich so dermassen gegen die ganzen Kleinigkeiten, die dir im 
Grunde nix kosten aber nur Nachteile einbringen.

von Mike J. (emjey)


Lesenswert?

So wie du es gemacht hast geht es, besser ist es aber wenn du die genaue 
Beschaltung übernimmst.

Wenn ich etwas mit dem ATmega8 auf dem Steckbrett mache (mag das 
eigentlich nicht so) löte ich vorher zwei kleine SMD 
Keramikkondensatoren Bauform 0603 zwischen
Pin 7 und 8 (Vcc - GND)
und
Pin 22 und 21 (GND - ARef)
Die Kondensatoren kommen ganz nahe an den Chip, so dass man die Beinchen 
ohne Probleme in das Board stecken kann.

Du kannst AVcc auch über einem Draht mit Vcc verbinden.

von Lennart J. (lennartj)


Lesenswert?

Hi Karl,

dann werde ich deinen Rat befolgen. Auf die 6 Leitungen mehr kommt es 
wirklich nicht an. Dennoch ist meine Platine recht voll aber das wird 
mit ein paar Kreuzungen schon gehen.
Du magst vielleicht von Kleinigkeiten sprechen aber es gibt halt viele 
Punkte die für mich noch recht kompliziert sind. Aber ich werds 
hinbekommen!

Hi Mike,

das ist natürlich eine gute Idee, mein Lötkolben ist zwar nicht der 
kleinste
aber ich werds versuchen, wenns nicht klappt nehme ich halt die 
normalen.

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.