Temperaturregelung für Brutkasten

Mischi

Neues Mitglied
28. Apr. 2009
18
0
0
Eppisburg
Sprachen
Hallo Zusammen,

wie im Willkommensbereich angekündigt hier nun mein Projekt.

„Temperaturregelung für ein Brutkasten“

Kurz nochmals wie es dazu kam:
Mein Sohn(8) hat von seinem Kumpel Rebhühnereier geschenkt bekommen, da er sich in der Experimentierphase befindet, will er diese natürlich Ausbrüten.
Er hatte ganz klare Vorstellungen wie er vorgehen will und bat mich um Hilfe ihm ein Brutkasten zu Bauen.(Es ist also ganz wichtig den zu Bauen und nicht zu Kaufen).:cool:


Was der Kasten können soll. Grobplan:
1. Temperaturregelung mit einer Genauigkeit von 0,1°
2. Temperatursicherheitabschaltung bei 38,5° eventuell hier selbst wählbar
3. Vorgabe-Temperatur einstellbar
4. Automatische Eiwendung 3x am Tag
5. Ausgabe am Display
6. Feuchtigkeitsregelung (Option je nach Realisierbarkeitsgrad):hmmmm:


Warum diese Genauigkeit ?
damit ich ihn auch für anderes Geflügel/getier Benutzen kann (ich kenn mein Sohn):D

Sicherheitsabschaltung ?
falls die Regelung versagt damit die Eier nicht kochen.

- Über ein Potentiometer wir die Temperatur im Bereich von 35-38° vorgegeben/eingestellt.

- Die Regelung mit Programm soll hier der Atmega8 übernehmen. (Markus, den habe ich bereits)

- Temperatursensoren 3Stk 2Stk zur Temperaturgenauigkeitseinstellung 1Stk zur Sicherheitsabschaltung, hier fehlt mir noch der Sensor der die Genauigkeit von 0,1° wiedergeben kann.

- das ganze, Temperaturvorgabe, aktuelle im Brüter herrschende Temperatur, Datum und Zeit sowie Brutdauer in Tage soll auf einem Display dargestellt werden.

- über zwei LED soll der Zustand angezeigt werden eine für Betrieb die andere für Heizen.

- die Eiwendung soll mit einem Stellmotor, der die Stäbe antreibt auf denen die Eier liegen, realisiert werden.

- zur Option Feuchtigkeitsregulierung habe ich noch keine klaren Vorstellungen.


Kani für dieses Projekt habe ich mich für Bascom entschieden, da es, wie Markus feststellte Eile geboten ist.
Bascom deswegen da ich zB das Display nicht grosartig ansteuern muss wie dies der Fall bei C wäre.


So jetzt warte ich auf Euer Feedback, um eventuell bessere Ideen bzw. Realisierbarkeiten noch durchzuführen, ansonsten kommt in den nächsten Tagen (nach dem Wochenende) ein Vortschrittsbericht mit Plänen.


Servus Horst
 
Hallo,
selber bauen machbar.
Aber nicht auf 1-2 Tagen (auser du schiebst Nachtschichten und hast alle Bauteile auf lager).
Aber ich denke mal das sich die Eier nicht viel länger halten... wenn überhaupt.
Also entweder aus denen Eiernrühei machen und in ein paar Wochen nochmal ein paar schenken lassen, oder doch so kurzfristig zu einem gekauften brutapperat greifen.
(fals sich die Eier länger halten möge man meinen post vergessen)

mfg
TSE
 
Hallo Mischi!

Nun denn.......
Ich bin mir zwar auch nicht sicher ob du den Wettlauf mit dem Ausbrüten noch gewinnst, trotz BASCOM, aber die Zeit wird wirklich knapp.

Hast du denn schon eine 24Stunden Bestellung aufgeben?
Temperatursensor (ggf. DS1820), LCD, Mega16 im DIL-Gehäuse, Lochrasterplatine.....

Ich würde vorschlagen, stell deinen Schaltplan hier schon mal ein damit wir uns ggf. schon mal ein paar Gedanken über den Programmablauf machen können. ;)

Welche Komponenten möchtest du denn verwenden bzw. was hast du denn Vorort?

Drück dir die Daumen, dass du den Wettlauf gewinnst.....
Laut Wikipedia:
Erst nachdem das letzte Ei gelegt ist, beginnt allein das Weibchen die Eier etwa 24 bis 25 Tage lang auszubrüten.

Dann hast du ja noch ein paar Tage Luft. :D

Gruß,
Cassio
 
Der DS1820 ist ein 1-Wire-Temperatursensor oder?
Davon habe ich auch noch 1-2 Zuhause. Hab mir aber noch nie gedanken drüber gemacht, wie das eigenlich funktioniert.
 
Hallo Kani!

Jepp!
Der DS1820 (bzw. DS18B20 oder DS18S20) ist ein 1-Wire Temperatursensor.

Das kannst du aber auch H I E R alles nachlesen. ;)


Grüße und einen schönen 1. Mai !
Cassio
 
Hallo Zusammen,

nachdem ein Turbulentes Wochenende vergangen ist, hier die Kurzfassung und Fortschrit im Projekt.

Hi TSE
selber bauen machbar.
Aber nicht auf 1-2 Tagen (auser du schiebst Nachtschichten und hast alle Bauteile auf lager).
Aber ich denke mal das sich die Eier nicht viel länger halten... wenn überhaupt.

siehe hier bei meiner Begrüsung.
Markus, Du hast recht Eile ist geboten, Momentan liegen die Eier in einem alten Backofen bei dem ich die Temperatur über Korken in der Tür regele, Funktioniert seit drei Tagen sehr gut, ist jedoch keine Lösung nur eine NOT-Lösung.

..TSE
Also entweder aus denen Eiernrühei machen.....

....das ist am Wochenende leider Passiert, zwar kein Rührei sondern Hartgekochte Frühstückseier, :( meine kleinste (2) hat es am Samstag irgendwie geschaft im mein Bastelraum (keller) zu gelangen und hat, weil es ja Lustig ist, am Backofen die Knöpfe zu drehen, die Temperatur auf vollanschlag gedreht, :eek: ich glaube den Rest kann sich jeder Vorstellen.

Somit ist Momentan keine Eile geboten, ich werde das jetzt in aller Ruhe angehen bzw. weiter Vorantreiben.


Servus Horst
 
Hi Horst,

....das ist am Wochenende leider Passiert, zwar kein Rührei sondern Hartgekochte Frühstückseier, :( meine kleinste (2) hat es am Samstag irgendwie geschaft im mein Bastelraum (keller) zu gelangen und hat, weil es ja Lustig ist, am Backofen die Knöpfe zu drehen, die Temperatur auf vollanschlag gedreht, :eek: ich glaube den Rest kann sich jeder Vorstellen.
das gab zwischen den beiden Kleinen bestimmt ne Menge Gezeter und Mord
und Totschlag ... :eek:
Am besten gleich ne Runde Eis zur Beruhigung der Gemüter ausgeben :D

Gruß
Dino
 
Hallo Horst!

Nun ja, dann kannst du dich ja in Ruhe auf das Ausbrüten der nächsten Eier konzentrieren.....

Damit entfällt der Druck etwas und du musst nicht sofort ein Provisorium bauen.
Es sei denn.... zum Trost hast du nun schon die nächsten Eier da liegen und der Stress beginnt von vorn. ;)

Nur mal zum Verständnis:
Möchtest du deine Platinen eigentlich selber ätzen, oder verwendest du für die Version 1.0 erst mal eine Lochrasterplatine?

Schöne Grüße,
Cassio
 
Hallo,

Casio zu Deiner Frage selber ätzen oder Lochraster ?

Ich ätze selber, ich mag die Lochraster- Dinger nicht.

Zum Testen und Experimentieren der Peripherie habe ich ein Steckbrett.

Fortschrittsbericht:

Nach Inventur in meinem Bastelraum steht mir folgendes Material zur Verfügung das ich verwenden will.

Temperaturmessung (Ist-Wert) :

Temperatursensor LM35
OP LM358
Widerstände 10k, 100k, 4k7, 100R, und noch einige andere
Kondensatoren auch alle die ich brauche.


Temperaturvorgabe (Soll-Wert) :

Potentiometer 100k, 10k
Kondensator 2n2
OP LM358


Regler:

Mikroprozessor Atmega8, Atmega16, oder Atmega128 (habe alle drei Typen da)


Heizung:

Heizspirale aus einem Backofen ohmsche Last
Heizungsregelung Phasenanschnittsteuerung

Und hier bin ich gerade dabei, die Phasenanschnittsteuerung vom Markus (insofern für mein Projekt Anwendbar) abzukupfern.:D


Servus Horst
 

Anhänge

  • Temperatur sollwert.jpg
    Temperatur sollwert.jpg
    31,9 KB · Aufrufe: 75
  • Temperatur istwert.jpg
    Temperatur istwert.jpg
    39,5 KB · Aufrufe: 78
  • Steckbrett .jpg
    Steckbrett .jpg
    37,9 KB · Aufrufe: 66
Hallo,
ich denke mal das du die ganze Schaltung zum erzeugen des Sollwerts etwas einschränken kannst.
Da du ja eh direkt in den µP gehst wirst du den Spannungsfolger nicht brauchen
auch das 2. Poti ist dann nicht nötig.
die genaue verarbeitung/kalibrierung kannst du ja in der Software realisieren

mfg
TSE
 
Morgen Zusammen,

TSE, wie das im Prozessor abläuft, weis ich noch nicht, aber ich brauche doch eine Möglichkeit den Sollwert vorzugeben da ich unterschiedliche Temperaturen haben will.
Das eine Poti ist der Grobwert Z.B 37°
Das zweite zur Feineinstellung 0,7°

Sollte ich hier falsch liegen bitte ich Euch mich zu Korrigieren bzw. um Richtigstellung.

TSE wie meinst Du das mit
...die genaue verarbeitung/kalibrierung kannst du ja in der Software realisieren

Servus Horst
 
Hi Horst,

TSE, wie das im Prozessor abläuft, weis ich noch nicht,
das kommt schon noch ;)

aber ich brauche doch eine Möglichkeit den Sollwert vorzugeben da ich unterschiedliche Temperaturen haben will.
Das eine Poti ist der Grobwert Z.B 37°
Das zweite zur Feineinstellung 0,7°
Genau. Die Regelung wird ja über die Software übernommen ...
- zu warm => Heizung aus
- zu kalt => Heizung an

Den Istwert ermittelst Du ja über nen Temperatursensor (digital oder analog).

Den Sollwert kann man über nen Poti einstellen, was du dann extra nochmal
AD-Wandeln mußt (gibt wieder Fehler und Schwankungen) oder du stellst
das direkt (z.B. über 2 Taster) in der Software ein. Weil ein Display für die
Statusanzeige willst Du ja warscheinlich sowieso haben.

Sollte ich hier falsch liegen bitte ich Euch mich zu Korrigieren bzw. um Richtigstellung.

TSE wie meinst Du das mit
...die genaue verarbeitung/kalibrierung kannst du ja in der Software realisieren
Man macht die Sachen, die eine Analoge Steuerung mit OPAmps, Trimmpotis,
... und dem ganzen Geraffel machen würde über Sofftware. Und wenn was
nicht paßt wird nicht umgelötet sondern umprogrammiert.

Gruß
Dino
 
Hi Dino,

erstmal Danke

so, und jetzt haste mich am Haken :D

...ein Display für die
Statusanzeige willst Du ja warscheinlich sowieso haben.

Ja :yes4:

Den Istwert ermittelst Du ja über nen Temperatursensor (digital oder analog).

LM35 analog 10mV/°C.

nochmals zum Verständnis für ein Programmieranfänger.

...oder du stellst
das direkt (z.B. über 2 Taster) in der Software ein
:hmmmm:

...beim Programmstart wird da ein Wert Vorgegeben oder wird der Istwert abgefragt und als Startwert hergenommen, dieser Wert wird dann mittels Taster Temp. rauf oder Temp. runter verändert, bis ich die Gewünschte Temp habe.?!

Servus Horst
 
Hi Horst,

...beim Programmstart wird da ein Wert Vorgegeben oder wird der Istwert abgefragt und als Startwert hergenommen, dieser Wert wird dann mittels Taster Temp. rauf oder Temp. runter verändert, bis ich die Gewünschte Temp habe.?!
Für den allerersten Start kannst Du ja zB 38Grad als Sollwert nehmen.
Den kann man dann mit 2 Tastern (Up/Down) verändern und zB über nen
3ten Taster (Enter oder Store) übernehmen und für den nächsten Start ins
EEPROM übernehmen.

Mit 4 Tastern kommt man eigentlich recht gut zurecht ...
Up , Down , Menü , Enter
wobei du dir den Menü-Taster bei so ner einfachen Steuerung eigentlich
sparen kannst.

Den eingestellten Sollwert würde ich auf jeden fall in das EEPROM übernehmen
(wegen Stromausfall usw).

Wenn es dir auf genaue zehntel Grad ankommt würde ich das ganze Konstrukt
nachher sowieso über nen Fieberthermometer justieren. Sicher ist sicher :D

Dann kann man ja auf den Display zB Sollwert , Istwert , Heizung an/aus
anzeigen lassen. Bei Echsen kann man ja glaube ich über die Temperatur
sogar das Geschlecht der Tiere bestimmen ;)

Gruß
Dino
 
Hallo Horst!

Den Ausführungen von Dino muss ich nicht mehr viel hinzufügen.... ;)
OK, statt den vier Tastern kannst du auch einen Drehencoder nehmen. Dann hast du wenigstens einen "Drehregler" für die Sollwerteinstellung. :D

Ich möchte dir aber nur mit auf dem Weg geben, dass es gar nicht soooo sinnvoll ist erst mal die Hardware zu behandeln und sich dann erst um die Software zu kümmern.

Du solltest erst einmal schauen wie du etwas Softwaremäßig erstellen kannst und danach die Hardware planen.

Nimm deinen Sollwertgeber mal als Beispiel.
Den Sollwert gleich digital vorzugeben ist doch sinnvoller, als einen analogen Wert zu digitalisieren und dann weiter zu verarbeiten.
Nun hast du dir schon gedanken um die Hardware gemacht und ein paar kurze Pläne gezeichnet..... die nun wieder für die Tonne sind. ;)

Zeichne dir erst einmal ein kleines Blockschaltbild und dann prüfe, wie du das meiste davon digital (und mit wenig externen Zubehör) realisieren kannst.

Dann kommen die Gedanken über die Pinbelegung am Mikrocontroller..... nicht das nachher das Display an den Pins für den ADC liegen usw.

Wenn ich mir deine Aufgabenstellung für den "Heizofen" so ansehe, dann reicht wohl ein Mega8, ein paar Taster, ein LCD, ein Temperatursensor (würde dir doch den DS1820 ans Herz legen) und die Triac-Stufe für die Heizung aus. (Kannst dir auch mal meinen kleinen Norkadosendimmer im Projekte-Bereich dazu ansehen.)

Das Interessante wird dann die Software.....
Es ist ja nicht ganz so schwer in 0,1Grad Schritten eine Temperatur zu erfassen (deswegen auch mein Tipp mit dem DS1820). Viel kniffliger wird die Ansteuerung der Heizung mit dem Triac.
Du musst dir also eine entsprechende "Rampe" programmieren, damit der Sollwert auch ohne große Abweichungen angefahren wird.
Wäre ja sehr dumm, wenn z.B. nach einem kurzem Stromausfall die Heizung wieder anspringt und erst mal locker 5 bis 10 Grad über das Ziel hinaus schießt. :eek:
Oder wenn z.B. die Hysterese deiner Regelung zu groß ist und selbst Temperaturschwankungen von +/- 3Grad verursacht.
Da nützt dir dann eine 0,1Grad Auflösung des Sensors auch nichts. ;)

Nun ja... wird schon werden.
Und wenn nicht... wir sind ja auch noch da. ;)

Schöne Grüße,
Cassio
 
Hi Dino,
Hallo Casio,

Danke an Euch für die Antworten und die Tipps, die ich natürlich Beherzigen werde.

So, dann werde ich mal die ganze Planerei (Hardwareseitig) übern Haufen werfen und von vorne Anfangen.

Blockschaltplan kein Thema, aber der Rest und hier meine ich die Software.:stupido:
Ich hatte mich ja bereits für Bascom entschieden, die Demo-Version installiert und mich auch schon mit ein paar Beispielen befasst, auch das von Markus Empfohlene Buch "Programmieren der....-AVR" von Claus Kühnel habe ich mir Besorgt, aber irgendwie will das ganze nicht in mein Schädel.:banghead:

Ich werde den Kopf jedoch nicht in den Sand stecken !!:stupido2:

Ich fang dann mal an und werde Euch meine ersten Prog-Versuche posten.
 
Zitat aus dem Thema: Kleiner 230V IR-Dimmer für die Norkadose !
Hallo Casio,

tolles Projekt, hast Du das in Betrieb ?

ich habe, wie Du mir Empfohlen hast, dein Programm mal Angeschaut und Versucht zu Verstehen.
Die Unterteilungen, Definitionen von Variablen, Hauptprogramm, Unterprogramm usw., ist klar aber alles andere

würdest Du bitte so nett sein und mir das etwas näher/genauer auskommentieren damit ich das nachvollziehen kann um es zu kappieren.

Dank schon mal im voraus


Hallo Horst!

Jepp! Habe bei mir zwei verschiedene Versionen dieser Dimmer laufen.
Einmal den baulich kleineren in einer Norka-Dose und die erste Version (größere Platinenmaße) in einer Hensel D9020 (oder D9040 :hmmmm: ) Verteilerdose.
Die IR-Empfänger habe ich immer ausgelagert.... je nach Lampenart.
Funktionieren beide super und die erste Variante wird jeden Abend benutzt.

Was den Code betrifft....
Ups... ich dachte eigentlich, ich hätte die ganzen Codezeilen mit ausreichend Kommentaren versehen. :hmmmm:

Nun gut.... was möchtest du wissen?
Ich denke mal, die Ansteuerung deiner Heizung mittels Phasenanschnitt. ;)
Das ist relativ einfach....

Erst einmal musst du die Eingangsspannung überwachen, damit du die Nulldurchgänge der Sinusspannung als Startsignal für die Zeitverzögerung nutzen kannst.
Das geht am einfachsten mit einem kleinen Brückengleichrichter und einem Optokoppler. Dieser steuert den INT0.

Der passende Code dazu ist dieser hier:
' INT0 dient zur Erfassung des Nulldurchganges
Config Int0 = Rising
On Int0 Timer_start
Enable Int0


Nun musst du nur noch einen Timer so konfigurieren, dass er maximal 10ms (eine Sinushalbwelle) läuft. Je kürzer die Zeit wird, desto früher wird der Traic gezündet und deine Heizleistung steigt an.
Der passende Code dazu ist dieser hier:
' Konfiguriere Timer1 Config
Timer1 = Timer , Prescale = 1
' 65536 x ( 1 / 1000000)= 65,536ms
' Timer Auflösung: 0,001ms
' 10 ms = 10000bit bis zum OVFL
' 10ms Wartezeit = 65536 - 10000 = 55536bit Ladewert
On Timer1 Triac_zuenden
Enable Timer1


Du kannst bei der Heizung natürlich auch noch ein paar feste Werte mit einprogrammieren.... genau wie beim Licht:
' Bestimme die Constanten
Const Hell = 65535
Const Licht_max = 65035
Const Licht_min = 56535
Const Dunkel = 55035

Du siehst also.... je höher der Ladewert für den Timer ist, desto schneller läuft der Timer über und um so früher wird der Traic gezündet.
Ergo wird deine Heizung auch viel heller.... ups, ich meinte heißer. ;)

Nun noch die beiden Subroutinen, die jeweils durch INT0 bzw. den Timer aufgerufen werden:
' Beim Auslösen des INT0 wird die Verzögerung (Phasenanschnitt) gestartet
Timer_start:
Portd.3 = 0
Stop Timer1
Timer1 = Licht
Start Timer1
Return

################################################
' Zünden des Triacs
Triac_zuenden:
Stop Timer1
Portd.3 = 1
Return


Tja, dass war es dann eigentlich auch schon.
Wie du nun deinen Ladewert für den Timer einstellst und wie groß die Leistungsschritte sein müssen, musst du allerdings selbst ermitteln.
Beim Licht ist das wesentlich einfacher. ;)

Den Schaltplan für die Hardware findest du auch in den Beiträgen für den Norkadosendimmer.
Dort kannst du auch die Nullspannungserfassung sehen.


Wenn sonst noch Fragen sind, einfach hier im Thema weiter schreiben. ;)

Gruß,
Cassio
 
Hi Casio,

Danke

so, Wochenende Vorbei und ich bin wieder Online.

Ups... ich dachte eigentlich, ich hätte die ganzen Codezeilen mit ausreichend Kommentaren versehen.

..kann ich nicht Beurteilen, ich habe es auf jeden Fall nicht Verstanden, was im Nachhinein Betrachtet nicht an Deinen Kommentaren sondern an meinem Verständnis lag/liegt.

Nun gut.... was möchtest du wissen?
Ich denke mal, die Ansteuerung deiner Heizung mittels Phasenanschnitt.


Mein Problem liegt darin das ich die Befehle nicht Verstehe da ich nicht wuste/weis was sie Bedeuten und wann man welchen Verwendet.
Habe aber mittlerweile herausgefunden das in Bascom eine F1 sehr Hilfreich sein kann. :yes4: :D und Googeln hilft auch ebenso Bücher welzen.;)

Was ich allerdings nicht gefunden habe. "Gibt es die Befehle mit deutscher Erklärung irgendwo." ???

Das ist relativ einfach....
....einfach ? Ok, für jemand der sich da bereits Auskennt vielleicht, ich Verstehe den Code mittlerweile auch.:cool:

Die Schaltpläne für Nulldurchganserkennung und Phasenanschnitt habe ich schon, hier muss ich eventuell noch Kleinigkeiten ändern, das Grobe steht schon.

Jetzt werde ich Bascom weiter Quäääähhhhlen.:rolleyes:
 
Was ich allerdings nicht gefunden habe. "Gibt es die Befehle mit deutscher Erklärung irgendwo." ???

Hallo Horst!

Jepp, das gibt es! :)

Schau doch mal, ob du das Buch:
BASCOM-AVR
Sprachbefehle
von Marius Meissner bekommen kannst.

Dort sind (fast) alle Befehle von BASCOM drin..... und alles auf deutsch! ;)

Letztlich ist es "nur" eine Übersetzung der englischen BASCOM-Hilfedateien.
Trotzdem bekommst du einen guten Überblick von den Befehlen.
Das Buch hat mir zu Beginn auch SEHR geholfen!

Ich weiß noch dass ich zu Anfang auch meine Schwierigkeiten hatte, weil ich einfach nicht wusste, welche Befehle es gibt und wie man die dann anwendet.
Selbst heute hole ich das Buch immer mal wieder hervor.... ;)


Das zweite Buch, welches mir danach sehr geholfen hat, ist:
Programmieren der
AVR RISC
Mikrocontroller
mit
BASCOM AVR
(2.Auflage)
von Claus Kühnel.

In dem Buch werden verschiedene kleine Themen behandelt und auch der Code dafür erklärt.
Ist nicht unbedingt als Erstlektüre für Anfänger gedacht, aber doch ziemlich verständlich.


Kannst ja mal nach den beiden Büchern im Internet suchen.
Auf alle Fälle kann ich dir für den ersten Überblick das "Nachschlagewerk" von Marius Meissner nur empfehlen!

Schöne Grüße,
Cassio
 

Über uns

  • Makerconnect ist ein Forum, welches wir ausschließlich für einen Gedankenaustausch und als Diskussionsplattform für Interessierte bereitstellen, welche sich privat, durch das Studium oder beruflich mit Mikrocontroller- und Kleinstrechnersystemen beschäftigen wollen oder müssen ;-)
  • Dirk
  • Du bist noch kein Mitglied in unserer freundlichen Community? Werde Teil von uns und registriere dich in unserem Forum.
  •  Registriere dich

User Menu

 Kaffeezeit

  • Wir arbeiten hart daran sicherzustellen, dass unser Forum permanent online und schnell erreichbar ist, unsere Forensoftware auf dem aktuellsten Stand ist und der Server regelmäßig gewartet wird. Auch die Themen Datensicherheit und Datenschutz sind uns wichtig und hier sind wir auch ständig aktiv. Alles in allem, sorgen wir uns darum, dass alles Drumherum stimmt :-)

    Dir gefällt das Forum und unsere Arbeit und du möchtest uns unterstützen? Unterstütze uns durch deine Premium-Mitgliedschaft!
    Wir freuen uns auch über eine Spende für unsere Kaffeekasse :-)
    Vielen Dank! :ciao:


     Spende uns! (Paypal)