Sie sind nicht angemeldet.

Lieber Besucher, herzlich willkommen bei: We-Mod-It | Das Forum von Moddern für Modder. Falls dies Ihr erster Besuch auf dieser Seite ist, lesen Sie sich bitte die Hilfe durch. Dort wird Ihnen die Bedienung dieser Seite näher erläutert. Darüber hinaus sollten Sie sich registrieren, um alle Funktionen dieser Seite nutzen zu können. Benutzen Sie das Registrierungsformular, um sich zu registrieren oder informieren Sie sich ausführlich über den Registrierungsvorgang. Falls Sie sich bereits zu einem früheren Zeitpunkt registriert haben, können Sie sich hier anmelden.

Hobbybiologe

Neu Hier!

  • »Hobbybiologe« ist der Autor dieses Themas

Beiträge: 25

Registrierungsdatum: 1. November 2016

  • Nachricht senden

1

Mittwoch, 2. November 2016, 08:15

Inkubator für pflanzliche Gewebekulturen

Hallo Liebe Moddercomunity,

Ich bin beim Stöbern für mein neues Projekt auf diese Anleitung [DIY How To Arduino] Arduino Tutorial 3 - Lüfter per PWM steuern gekommen welche
mir einen groben Überblick verschaffte wie mein nächstes Projekt etwa verlaufen
könnte. Jedoch möchte ich mich zuerst ein wenig vorstellen was ich so mache.

Und zwar bin ich Maschinenbaukonstrukteur und habe auch schon einige Projekte
Projekte welche etwas mit Arduino zu tun haben hinter mir z.b. mein
selbstgebauter 3D Drucker. Jedoch ist meine grosse Passion die Züchtung von
Karnivoren umgangsprachlich "fleisch fressende Pflanzen" in einer
sterilen umgebung (engl. Plant Tissue Culturing). In welchem ich Gewebeproben
von verschiedenen Karnivoren in einer sterilen Nährlösung über verschiedene
Stadien züchte bis zur abgehärten Pflanze. Diese Kulturen stehen in einem Grow
Tent welches beleuchtet und belüftet wird um die Temperatur zu senken und somit
komm auf mein (für euch wohl einfaches) Projekt.

Und zwar möchte ich eine auf Arduino basierende Steuerung schreiben welche die
Temperatur in meinem "Inkubator" stehts auf 23°C oder leicht darunter
hält. Momentan steure ich den PC Lüfter über ein Potentiometer welches soweit
gut funktioniert jedoch leider nicht an die Temperatur gekoppelt ist. Ich
möchte die entstehnde Abwärme der LEDs benutzen um die Temperatur zu halten.

Ich habe grob probiert die Umbegung auf zu zeichnen sodass Ihr euch dazu ein
Bild machen könnt. Das ganze sieht vollgendermassen aus:



Ein 80x45x80 grosses Grow Tent welches 16 Stunden lang pro Tag die Kulturen
beleuchtet. Ich benutze folgenden Lüfter welchen ich auch gerne weiterhin
nutzen möchte https://www.brack.ch/noctua-gehaeuseluefter-nf-302946.

beiden werden über ein 12V 60W Meanwell Netzgerät betrieben welches an einer
Zeitschaltuhr angeschlossen ist welche 16 Stunden am Tag läuft. Nachts ist das
ganze System bis auf die Zeitschaltuhr stromlos und soll auch so bleiben.

In meiner Vorstellung würde ich gerne nun wie auf der Skizze meinen PC Lüfter
über ein Arduino steuern welcher wie in dieser Anleitung beschrieben linear zu
der Temperatur an Drehzahl gewinnt und auch bei niedriger Drehzahl zuerst die
Anlaufspannung überwindet und dann auf "Sparflamme" geht und
möglichst leise läuft. Eigentlich wie in dem obigen Tutorial beschrieben.


Für die Beschaffung der Komponeten habe ich mir Exp-Tech ausgesucht, da diese
ein grosses Inventar an verschiedenen Bauteilen in hoher Qualität haben was mir
sehr wichtig ist.


Für dem Temperatursensor habe ich mir wie beschrieben den untenstehenden NTC
Widerstand ausgesucht. Jedoch würde ich gern das Kabel um ca. 40cm verlängern.
Bin mir jedoch unsicher was für einen Einfluss dies auf die
Temperaturgenauigkeit hat.

http://www.exp-tech.de/10k-precision-epo…mistor-3950-ntc


Desweitern würde ich gerne eine kleines LCD Display benutzen welches mir folgende
Werte anzeigt:

Momentan Temperatur
Maximale Temperatur
Minimale Tempatur

Diese müssen nicht in einem Datenlogger gespeichert werden und sind immer nur
Tagesbezogen, können also gelöscht werden wenn die Zeitschaltuhr abends
auschaltet. Es soll mir nur einen groben Überblick geben in was für einem
Temperaturbereich sich die Kulturen bewegen während ich am arbeiten bin
tagsdurch und abends kurz einen Blick darauf werfen kann.

Ich habe folgendes Display gefunden welches sich dafür denke ich mal nicht schlecht
eignet:

http://www.exp-tech.de/adafruit-rgb-back…lcd-20x4-extras


Nun muss ich leider gestehen, dass ich dazu keinerlei Idee habe wie ich dieses
an den Temperatursensor koppeln kann, sodass es die entsprechenden Werte
ausgiebt. Leider habe ich nach Internet Recherche keine Anleitungen dazu
gefunden, vielleicht habe ich auch nur falsch gegoogelt :lol:
Kann mir jemand dazu eine Anleitung empfeheln ?

Und was für ein Arduino Board eignet sich wohl für mein Vorhaben am besten ?

Ich danke euch schon mal für eure Rückmeldungen und freue mich auf dieses für
mich anspruchsvolle Projekt.

Viele Grüsse

Lukas

Scynd

1. Platz Enermax Casecon Contest

Beiträge: 924

Registrierungsdatum: 12. März 2012

Wohnort: München

Beruf: Maschinenbautechniker

Danksagungen: 74

  • Nachricht senden

2

Mittwoch, 2. November 2016, 21:36

Hallo und willkommen bei WMI ^^

Schönes Projekt hast du da.
Also zu deiner ersten frage wegen der Kabellänge, das ist zu vernachlässigen. Ich habe gerade mal mit nem Rechner nachgeschaut und die zusätzliche Abweichung liegt so bei 0,1% - 0,2%. Da hat der NTC mit seinem 1% Toleranz schon deutlich mehr Spielraum ;)

Wegen dem Display würde ich zu einem mit I2C Schnittstelle raten, da du hier einen wesentlich einfacheren Anschluss am Arduino hast.
Wenn dir ein zweizeiliges reicht, würde ich das hier nehem.
http://www.exp-tech.de/blue-white-i2c-lcd-1602-module-v2

Wenn es vier Zeilen seien sollen, das hier.
http://www.exp-tech.de/blue-white-i2c-lcd-2004-module-v2

Code für die Ansteurung des Displays kann ich dir geben, habe nur gerade keine Zeit das raus zu suchen. Würde ich dann die Tage nachholen :thumbup:

Ich bin mir auch nicht gaz sicher wie du dir das mit den Daten vorstellst. Möchtest du da eine Tagesübersicht, z.B. einen Average Wert, oder z.B. Stündliche Werte zum durchblättern, oder einfach ganz banal nur den aktuellen Wert ablesen können?


Gruß Scynd


Scynd

1. Platz Enermax Casecon Contest

Beiträge: 924

Registrierungsdatum: 12. März 2012

Wohnort: München

Beruf: Maschinenbautechniker

Danksagungen: 74

  • Nachricht senden

3

Donnerstag, 3. November 2016, 07:33

Hier erst einmal eine Info, wie und mit welcher Library die I2C LDC Display zum laufen gebracht werden können :beer:

https://arduino-info.wikispaces.com/LCD-Blue-I2C


Gruß Scynd


Hobbybiologe

Neu Hier!

  • »Hobbybiologe« ist der Autor dieses Themas

Beiträge: 25

Registrierungsdatum: 1. November 2016

  • Nachricht senden

4

Donnerstag, 3. November 2016, 12:36

Hallo Scynd,

Vielen Dank schon mal für deine Unterstützung für mein Projekt :-)

Das die Kabellänge vernachlässigbar ist freut mich auf jeden Fall schon mal :-)

Danke für den Rat mit dem IC2, das wusste ich nicht. Grundsätzlich spielt es keine Rolle ob es 2 oder 4 zeilig ist. Die Aufteilung bei einem Vierzeiligen ist meiner Meinung nach einfach schöner.

Ich stelle mir dies dann Folgendermasse vor

Temperaturübersicht
aktuelle Temperatur: 22.9
tiefste Temperatur: 19.1
höchste Temperatur: 23.1

Die oberste Zeile ist steht für den aktuellen Wert welcher sich von Messung zu Messung neu anzeigt.

Die tiefste Temperatur soll die tiefste gemessene Temperatur anzeigen welche über diesen Tag bzw. seit die Zeitschaltuhr Strom durch lässt.
Die höchste Temperatur stellt den höchsten Messwert im Verlauf des Tages dar.

In meiner laienhaften Vorstellung sieht dies so aus, dass er den tiefsten gemessenen Wert bzw. den höchsten immer "speichert" und diesen in den entsprechenden Feldern auf dem Display anzeigt. Sobald der Strom weg ist sind diese Daten ebenfalls weg und am nächsten Tag beginnt das Spiel von neuem.

Das soll mir einfach helfen, dass ich Abends einen Überblick bekomme in was für einem range sich die Kulturen bewegen und bei eventuellen Spitzen handeln zu können ("extreme" Kälte im Winter oder "extreme" Hitze im Sommer)

Welches Arduino Motherboard würdest du mir empfehlen ? Da gibt es ja mittlerweile auch so viele verschiedene. Umso einfacher umso besser für mich :rofl:

Gruss Lukas

Scynd

1. Platz Enermax Casecon Contest

Beiträge: 924

Registrierungsdatum: 12. März 2012

Wohnort: München

Beruf: Maschinenbautechniker

Danksagungen: 74

  • Nachricht senden

5

Donnerstag, 3. November 2016, 16:46

Gern geschehen ^^
So wie du dir das mit der Temperaturdarstellung vorstellst, sollte es kein Problem sein.
Ich würde an deiner Stelle zu einem Arduino Nano greifen, die sind schön klein. So kannst du deine Schaltung auf einer Lochrasterplatine zusammenlöten und den Arduino mit drauf stecken. :thumbup:


Hobbybiologe

Neu Hier!

  • »Hobbybiologe« ist der Autor dieses Themas

Beiträge: 25

Registrierungsdatum: 1. November 2016

  • Nachricht senden

6

Donnerstag, 3. November 2016, 21:30

Hey Scynd,

Super ich danke dir. Ich werd mich in den nächsten paar Tagen ein wenig in die Ganze Thematik einlesen und mich dann wieder melden sobald ich mein Grundwissen ein wenig ausgebaut habe. Werd dann aber bestimmt noch mehr als genug Fragen haben, da ich momentan noch keine Idee habe wie das mit dem tiefsten und höchsten Wert speichern funktioniert :S

Bin aber trotzgem guter Dinge.

Was ich mich momentan Frage aus deinem Tutorial mit dem 3Pin Lüfter benutzt du ein Mosfet. Dieses sollte doch in meinem Fall mit dem 4 Pin Lüfter weg fallen, da ich ja direkt über den PWM den Lüfter steuern kann und diesen über das Netzteil mit den 12V speisen kann. Stimmt meine Überlegung so ?

Auf jeden Fall ist das nur die erste von vielen Fragen, hab aber richtig Bock auf das Projekt :-)

Viele Grüsse
Lukas

Scynd

1. Platz Enermax Casecon Contest

Beiträge: 924

Registrierungsdatum: 12. März 2012

Wohnort: München

Beruf: Maschinenbautechniker

Danksagungen: 74

  • Nachricht senden

7

Samstag, 5. November 2016, 11:04

Ja, mach das. Ich kann dir da dann gerne helfen ;)
Du hast recht mit der Annahme, dass der Transistor dann wegfällt. Ist in meinem Arduino Tutorial 3.2 - Lüftergeschwindigkeit mit zweit Tastern steuern zu sehen.
Ich muss allerdings sagen, dass die Tutorial Reihe hier noch nicht komplett ist. Der Teil 3 ist die alte Version, in der alles zusammengefasst ist. Die neueren Teile sind Teil 3.1 und 3.2.
Ich muss mich mal aufraffen und den Rest auch überarbeiten, dann kann ich das alte Teil 3 löschen.


Hobbybiologe

Neu Hier!

  • »Hobbybiologe« ist der Autor dieses Themas

Beiträge: 25

Registrierungsdatum: 1. November 2016

  • Nachricht senden

8

Mittwoch, 9. November 2016, 09:33

Guten Morgen Scynd,

Super! das freut mich sehr einen kompetenten Ansprechpartner für dieses Projekt zu haben :-). Ich bin leider noch nicht sehr intensiv dazu gekommen mich einzulesen, da ich momentan beruflich viel los habe. Bin aber mal dazu gekommen den Warenkorb mal zusammenzustellen. Sollte alles dabei sein was ich benötige oder ? bestellt habe ich noch nicht.



Das Breadboard werde ich wohl nur zum testen benutzen. Danach wird alles fix verkabelt und kommt in ein schönes 3D gedrucktes Gehäuse :-).

Gruss Lukas

der_george

"Mein Name ist George - Der George"

Beiträge: 4 832

Registrierungsdatum: 17. März 2010

Wohnort: Da wo der Berch wohnt

Beruf: Inginöööör und Freundinbeschäftiger

Danksagungen: 356

  • Nachricht senden

9

Mittwoch, 9. November 2016, 09:39

23,80 € für einen Nano :golly:

Ah, erstmal herzlich willkommen bei WMI!

Du kannst mal nach einem ATMega 32U4 in gleicher Bauform suchen - ist mittlerweile mein bevorzugter µC für solche kleine Anwendungen. Solltest du auch deutlich günstiger finden (um ca. 2,50€)

So long :0)
Meine Mods bei we-mod-it:
24h Stealth - 1.Platz 24h Livemodding DCMM 2010 | | taabar sin - 2. Platz Casemod DCMM 2012 | | 24h Semmetastic - 2. Platz 24h Livemodding DCMM 2013

Mein Modding-Verkaufsthread

Scynd

1. Platz Enermax Casecon Contest

Beiträge: 924

Registrierungsdatum: 12. März 2012

Wohnort: München

Beruf: Maschinenbautechniker

Danksagungen: 74

  • Nachricht senden

10

Mittwoch, 9. November 2016, 13:54

Ja das müsste passen.
Aber wie George schon gesagt hat, würde ich auch zu einem Nachbau greifen. Ist aber dein Geld, mit dem du tun und lassen kannst, was du willst :P


Hobbybiologe

Neu Hier!

  • »Hobbybiologe« ist der Autor dieses Themas

Beiträge: 25

Registrierungsdatum: 1. November 2016

  • Nachricht senden

11

Donnerstag, 17. November 2016, 15:06

Hallo Zusammen,

Ich wollt mich wieder mal bei euch melden. Ich habe jetzt meine Bestellung erhalten, schaut soweit alles gut aus :-)

Jedoch hatte ich bisher noch keine Zeit etwas herumprobieren. Ich hoffe ich komme Samstag/Sonntag dazu etwas damit herumzuspielen. Momentan habe ich leider echt viel los...Naja was solls :-) Das Case dazu bin ich auch noch am aufkonstruieren.

Viele Grüsse
Lukas

Hobbybiologe

Neu Hier!

  • »Hobbybiologe« ist der Autor dieses Themas

Beiträge: 25

Registrierungsdatum: 1. November 2016

  • Nachricht senden

12

Samstag, 19. November 2016, 17:22

Hallo zusammen,

Endlich hab ich mir die Zeit genommen und mal etwas aufgezeichnet. Ich denke dies wäre Anschlussplan wie das Ganze auszusehen hätte. Ich habe den 4 Pin Lüfter etwas vereinfacht durch einen DC Motor dargestellt,da ich leider einen Lüfter nicht in der Bibliothek fand.

Was meint ihr dazu ? kann man damit arbeiten ? :)



Ich wolte noch die Sketch Datei hochladen, falls ihr noch etwas daran ändern würdet, leider ist diese Datei eine ungültige Endung (.fzz) :-(

Das Case habe ich schon fast fertig modeliert (auch wenn es ziemlich simple ist^^)

Ich werd wohl das Breadboard darin einbauen, damit bleibt die Sache für mich ein wenig übersichtlicher.

Viele Grüsse

Lukas

edit: Eingangspannung beträgt 12V

Scynd

1. Platz Enermax Casecon Contest

Beiträge: 924

Registrierungsdatum: 12. März 2012

Wohnort: München

Beruf: Maschinenbautechniker

Danksagungen: 74

  • Nachricht senden

13

Samstag, 19. November 2016, 20:56

Hallo Lukas, da hat sich der Fehlerteufel eingeschlichen ;)

Display:
SDA vom Display muss an Pin A4 und SCL an Pin A5
https://www.arduino.cc/en/Main/ArduinoBoardNano

Temperatursensor:
Die Leitung zum Arduino muss an die linke Seite deines Widerstands. Also zwischen NTC und Widerstand. Das ist ein Spannungsteiler ;)
[DIY How To Arduino] Arduino Tutorial 5 - Sensoren

Lüfter:
Der PWM Eingang des Lüfters (blaue Leitung) muss auch beim Arduino an einen PWM fähigen Pin. Das sind beim Nano Pin 3, 5, 6, 9, 10 und 11. Kannst dir einen aussuchen :D


Aber sonst passt alles soweit ich sehe.

Gruß Bert


Zombie

Fühlt sich wohl hier

Beiträge: 380

Registrierungsdatum: 13. November 2012

Wohnort: Bad Salmoden- Stallfinster

Beruf: Steuerungsprogrammierer

Danksagungen: 13

  • Nachricht senden

14

Sonntag, 20. November 2016, 22:01

Sehr schönes Projekt. Finde ich auf jeden Fall interessant.

Ich habe aber noch eine Frage bezüglich der LED Heizung. Wie sieht die denn aus? Ist das eine einfache Ansammlung riesiger 3W Monster die auf einem Kühlblock kleben?
Oder kann man das kommerziell kaufen?

Paladin

Wenn I Murksen muss... Aaarrgh..

Beiträge: 12 086

Registrierungsdatum: 18. Juli 2009

Name: Patrick Betz

Wohnort: Simbach bei Landau a. d. Isar

Beruf: Kraftfahrer (Gelernter Schreiner)

Danksagungen: 363

  • Nachricht senden

15

Montag, 21. November 2016, 05:01



Ich wolte noch die Sketch Datei hochladen, falls ihr noch etwas daran ändern würdet, leider ist diese Datei eine ungültige Endung (.fzz) :-(


Dateien die nicht gehen einfach als zip oder rar verpacken. Dann kannst du sie hochladen.
COMPLEX-MODS.deMODDING | CONS | CE-MODS
HausModding by Patrick und Sonja

Ein Bayer kann alles, außer Hochdeutsch...... :D


Hobbybiologe

Neu Hier!

  • »Hobbybiologe« ist der Autor dieses Themas

Beiträge: 25

Registrierungsdatum: 1. November 2016

  • Nachricht senden

16

Dienstag, 22. November 2016, 16:10


Hallo Lukas, da hat sich der Fehlerteufel eingeschlichen ;)

Display:
SDA vom Display muss an Pin A4 und SCL an Pin A5
https://www.arduino.cc/en/Main/ArduinoBoardNano

Temperatursensor:
Die Leitung zum Arduino muss an die linke Seite deines Widerstands. Also zwischen NTC und Widerstand. Das ist ein Spannungsteiler ;)
[DIY How To Arduino] Arduino Tutorial 5 - Sensoren

Lüfter:
Der PWM Eingang des Lüfters (blaue Leitung) muss auch beim Arduino an einen PWM fähigen Pin. Das sind beim Nano Pin 3, 5, 6, 9, 10 und 11. Kannst dir einen aussuchen :D


Aber sonst passt alles soweit ich sehe.

Gruß Bert

Vielen Dank fürs korrigieren. Ich werds heute abend mal umsetzen. Ich bin froh, dass ich wenigstens die Pole richtig eingezeichnet habe ;-)


Sehr schönes Projekt. Finde ich auf jeden Fall interessant.

Ich habe aber noch eine Frage bezüglich der LED Heizung. Wie sieht die denn aus? Ist das eine einfache Ansammlung riesiger 3W Monster die auf einem Kühlblock kleben?
Oder kann man das kommerziell kaufen?

Vielen Dank! Nicht einmal. Es sind insgesammt 3m an LED Strips. Die Strips sind mit CREE LEDs bestückt und werden auf ein Aluminiumprofil geklebt. Durch diese Abwärme "heize" ich meine Phytokammer. Wobei man hier von einer erwärmung weniger grad sprechen. RT liegt bei ca. 19-20°C und in der Phytokammer sollte es ca. 23°C haben. Für mein Vorhaben werden wohl die Stripes genügen. Für grössere Heizleistungen eher nicht. Der Kühlkörper darf sich natürlich auch nicht zu sehr erwärmen, dann hätte ich das Problem dass die darüberstehenden Kulturbecher matsch werden :D

Viele Grüsse
Lukas

Ich lad heute abend die angepasste Skizze inkl. zip hoch :-)

Hobbybiologe

Neu Hier!

  • »Hobbybiologe« ist der Autor dieses Themas

Beiträge: 25

Registrierungsdatum: 1. November 2016

  • Nachricht senden

17

Dienstag, 22. November 2016, 20:52

Sooo guten Abend zusammen :-)

Ich hab hier mal den sketch überarbeitet und hoffe es passt jetzt. Die fzz Datei ist im Anhang als zip hochgeladen. Die Spannung steigt jetzt wo es langsam an das Programmieren geht, der Teil macht mir am meisten Sorge :thinking:



Noch irgendwelche Tipps für Vorlagen um die höchst und tiefst Temperatur zwischenzuspeichern ? das bereitet mir momentan noch am meisten Kopfzerbrechen.

Viele Grüsse
Lukas

Phytokammer sketch.zip

Scynd

1. Platz Enermax Casecon Contest

Beiträge: 924

Registrierungsdatum: 12. März 2012

Wohnort: München

Beruf: Maschinenbautechniker

Danksagungen: 74

  • Nachricht senden

18

Dienstag, 22. November 2016, 21:34

Dein Schaltplan sollte jetzt passen ;)

Wegen der Min und Max Temperaturen stelle ich das so vor. Du musst im Setup Teil eine erste Temperaturmessung ausführen. Diesen Wert (nennen wir ihn "temp") übernimmst du in die Variaben "minTemp" und "maxTemp". Danach führst du im Loop Teil kontinuierlich Temperaturmessungen durch. Dann vergleichst du temp mit minTemp. Wenn temp kleiner als minTemp ist, übernimmst du den Wert als minTemp. Dann vergleichst du temp mit maxTemp. Wenn temp größer als maxTemp ist übernimmst du den Wert in maxTemp. So kannst du die Min und Max Werte speichern.

Quellcode

1
2
3
4
5
6
7
8
9
if (temp < minTemp)
{
minTemp = temp;
}

if (temp > maxTemp)
{
maxTemp = temp;
}


Jetzt kannst du dir die Temperaturen am Display ausgeben lassen :thumbup:

Wenn ich morgen mal Zeit habe, kann ich nen richtigen Beispielcode schreiben wenn du willst.


Gruß Bert


Scynd

1. Platz Enermax Casecon Contest

Beiträge: 924

Registrierungsdatum: 12. März 2012

Wohnort: München

Beruf: Maschinenbautechniker

Danksagungen: 74

  • Nachricht senden

19

Mittwoch, 23. November 2016, 07:58

Ohhhh, jetzt ist mir noch was eingefallen. Du hast ja einen PWM Lüfter...
Die kann man normalerweise nicht abschalten. Auch wenn du da einen PWM Wert von 0 einstellst laufen die mit minimaler Drehzahl weiter. Da musst du noch einen Transistor mit einbauen, damit du die Stromzufuhr (GND) vom Lüfter unterbrechen kannst.

Ich schaue mal ob ich im laufe des Tagens Zeit habe, dann zeichne ich dir das in deinen Schaltplan ein ;)


Scynd

1. Platz Enermax Casecon Contest

Beiträge: 924

Registrierungsdatum: 12. März 2012

Wohnort: München

Beruf: Maschinenbautechniker

Danksagungen: 74

  • Nachricht senden

20

Mittwoch, 23. November 2016, 15:32

So, ich habe etwas Zeit gehabt :P

Dein Schaltplan sollte folgendermaßen aussehen:



Nimm als Transistor am besten den hier.

Und hier mal der Code den ich mir aus den Fingern gesaut habe. Der funktioniert wahrscheinlich nicht auf Anhieb, da ich es ja nicht testen konnte, sollte aber nahe dran sein.

Quellcode

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
#include <Wire.h>
#include <LiquidCrystal_I2C.h>

// Konstanten
const int fanPin = 3;             	// PWM Pin des Lüfters
const int fanPower = 4;           	// Pin zum schalten des Transistors für Lüfter An/Aus
const int ntc = A0;               	// Pin für den 10kO NTC Wiederstand
const long interval = 1000;       	// Interval wie oft die Temperatur abgefragt wird (milliseunden)
const int abfrageZahl = 5;        	// Je mehr abfragen, desto stabiler isr das Ergebnis, dauert aber länger
const int ntcNominal = 10000;     	// Wiederstand des NTC bei Nominaltemperatur
const int tempNominal = 25;       	// Temperatur bei der der NTC den angegebenen Wiederstand hat
const int bCoefficient = 3977;    	// Beta Coefficient(B25 aus Datenblatt des NTC)
const int serienWiederstand = 10000;  // Wert des Wiederstands der mit dem NTC in Serie geschalten ist
const int tMin = 22;              	// Minimaltemperatur. Unterschalb schaltet der Lüfter ab
const int tMax = 30;              	// Maximaltemperatur. Ab dieser Temperatur läuft der Lüfter mit 100%

// Variablen
int fanSpeed = 0;            	// Variable für den PWM Wert des Lüfters
boolean fanOut = true;       	// Zustand des Lüfters (An/Aus)
int abfrage[abfrageZahl];    	// Array Variable für das Mitteln der Temperatur
float durchschnitt = 0;      	// Variable für das Mitteln der Temperatur
float temp;                  	// Variable für die Berechnung der temperatur nach Steinhart
float minTemp = 0;           	// Variable für die niedrigste gemessene Temperatur
float maxTemp = 0;           	// Variable für die höchste gemessene Temperatur


// Setzt die I2C Adresse des LCD auf 0x27 für ein 20 Zeichen und 4 Zeilen Display
LiquidCrystal_I2C lcd(0x27, 20, 4);


void setup() {
  pinMode(ntc, INPUT);    	// Setzt den Pin des NTC Wiederstands als Eingang
  pinMode(fanPin, OUTPUT);	// Setzt den PWM Pin des Lüfters als Ausgang
  pinMode(fanPower, OUTPUT);  // Setzt den Power Pin des Lüfters als Ausgang
  
  lcd.begin();            	// Initialisiert das LCD
  lcd.backlight();        	// LCD Hintergrundbeleuchtung einschalten
  lcd.print("Phytokammer");   // Begrüßungsnachricht anzeigen
  delay(2000);            	// Zeige die Begrüßung 2s an
  lcd.clear();            	// Display leeren

// Erste Temperatuerfassung um die min/max Werte festzulegen
  temperaturberechnung(); 	
  minTemp = temp;
  maxTemp = temp;
}


void loop()
{
  // Startet die Temperaturerfassungsroutine
  temperaturberechnung();
 
  // Wenn die Temperatur kleiner als die minTemp ist, den Wert als neue minTemp speichern
  if (temp < minTemp) minTemp = temp;
  // Wenn die Temperatur größer als die maxTemp ist, den Wert als neue maxTemp speichern
  if (temp > maxTemp) maxTemp = temp;

  // Wenn die Temperatur unter die von tMinn fällt, schält der Lüfter ab
  if (temp < tMin) 
  {
	fanOut = true;
	digitalWrite(fanPower, LOW);
  }
  
  
  // Hysterese(Einschaltverzögerung)
  if(temp >= (tMin + 1))
  {
	fanOut == false;
	digitalWrite(fanPower, HIGH);
  }
  
  // Lüftergeschwindigkeit über den Temperaturbereich einstellen
  // TMin->0% PWM | TMax->100% PWM
  
  if (fanOut == false)
  {
	fanSpeed = map(temp, tMin, tMax, 0, 255);
  }
  
  // Ausgabe der aktuellen Temperatur in Zeile 1
  lcd.setCursor(0, 0);
  lcd.print("Temperatur ");
  lcd.print(temp);
  lcd.print(" *C");

// Ausgabe der niedrigsten Temperatur in Zeile 2
  lcd.setCursor(0, 1);
  lcd.print("Min. Temp ");
  lcd.print(minTemp);
  lcd.print(" *C");

  // Ausgabe der höchsten Temperatur in Zeile 3
  lcd.setCursor(0, 2);
  lcd.print("Min. Temp ");
  lcd.print(minTemp);
  lcd.print(" *C");

  delay(1000);
} 


void temperaturberechnung()
{
  // Nimmt N Abfragen in einer Reihe, mit einem kurzen delay
  for (int i=0; i < abfrageZahl; i++)
  {
	abfrage[i] = analogRead(ntc);
	delay(10);
  }
  
  // Mittelt alle Abfragen
  durchschnitt = 0;
  for (int i=0; i < abfrageZahl; i++)
  {
	durchschnitt += abfrage[i];
  }
  durchschnitt /= abfrageZahl;
  
  // Umwandlung des Wertes in Wiederstand
  durchschnitt = 1023 / durchschnitt - 1;
  durchschnitt = serienWiederstand / durchschnitt;
  
  // Umrechnung aller Ergebnisse in die Temperatur mittels einer Steinhard Berechnung
  temp = durchschnitt / ntcNominal; 	// (R/Ro)
  temp = log(temp);                 	// ln(R/Ro)
  temp /= bCoefficient;             	// 1/B * ln(R/Ro)
  temp += 1.0 / (tempNominal + 273.15); // + (1/To)
  temp = 1.0 / temp;                	// Invertieren
  temp -= 273.15;                   	// Umwandeln in °C
}


Hier ist der Code zum Download Phytokammer.zip

Du brauchst für das Display noch die Liquid Crystal I2C Library. Die hier LiquidCrystal-I2C.zip
Wie man die richtig einbindet, bitte google fragen ;)

Du musst dann noch die I2C Adresse des Displays herausfinden. Dazu befindet sich ein Beispielcode in der Library (I2C Scanner). Der zeigt dir im seriellen Monitor alles Geräte an, die angeschlossen sind. Die Adresse musst du dann in Zeile 28 eintragen.

Aber bei diesen ganzen Sachen kann ich dir dann nochmal zu Seite stehen ^^


Gruß Bert
»Scynd« hat folgende Datei angehängt: