Speicher

Das Ziel unserer Kleingruppe im Microcontrollerbereich ist es, einen Microcontroller mit einem passenden Speicher zu ergänzen. Damit können wir später aufgenommene Daten der einzelnen Sensoren abspeichern, um später einen genauen Überblick zu erhalten, ob das Gewächshaus entsprechend funktioniert.

Um das Ganze zu realisieren, haben wir uns bisher in unseren Kleingruppen eingefunden und recherchiert, wie man das ganze umsetzen kann. Wir sind zu der Erkenntnis gekommen, dass wir auf jeden Fall eine SD – Speicherkarte als Speichermedium benutzen wollen. Da diese leicht ansteuerbar ist und als so genannter Flashspeicher, der immer neu überschreibbar ist.

Über die mögliche Ansteuerung versuchen wir momentan das ganze ohne eingekauftes Bauteil zu realisieren, da der Lerneffekt deutlich höher ist so was selbst zu entwerfen. Programmieren wollen wir die Schnittstelle in C, da der Atmega 32 damit leicht zugänglich ist.

Auf dem Speichermedium sollen alle momentanen und vergangen Istwerte, sowie die Sollwerte gespeichert werden. Die gespeicherten Istwerte können von der LCD- Gruppe abgerufen und angezeigt werden, sodass der Verlauf der Werte vom Benutzer nachvollzogen werden kann. Auch die Funktion des Gewächshauses kann so überprüft werden. Desweiteren werden die Ist- und Soll-Werte mit der Daten- Gruppe ausgetauscht, um eine Steuerung des Gewächshauses zu gewährleisten. Um eine optimale Anzucht zu gewährleisten, soll es angepasste Sollwerte für verschiedene Pflanzenarten und -größen geben.

Speichern der Sollwerte

Am Anfang war unser Plan , die vom User eingestellte Sollwerten in einer SD-Karte zu speichern. Dann haben wir darauf verzichtet, da diese Sollwerten von der Größen her passend waren , in dem EEPROM von unserem ATMega32 zu speichern.Wenn man präziser sein sollte : ATMega 32 hat einen Speicherplatz von 1024 bytes als „data EEPROM memory“.Die Sollwerte , die wir benutzen ,sind vom Typ uint16_t und bestehen aus 16 Bits.Eine Sollwert-Passage beinhaltet 8 Parameter. Das soll grob heißen , dass man in ungefähr 60 nacheinander folgende Sitzungen Sollwerte sicher speichern kann , ohne ein externes Speichermedium zu brauchen und ohne durch Löschen der vorhandene Info Platz zu schaffen.

Kommunikation mit LCD

Die Kommunikation mit der LCD erfolgt über UART.Die größte Schwierigkeit, die wir dabei erlebt haben, ist folgende : Wir als Speichergruppe empfangen die vom User eingestellte Soll-Werte vom LCD und das machen wir periodisch. Genau an dieser Stelle muss man Interrupts einsetzen , um ein Kommunikationskonflikt zwischen Master ( in diesem Fall LCD) und Slave (unsere Mikrokontroller) zu vermeiden.Wenn der User nicht periodisch neue Werte einstellt , aber von unserem Mikrokontroller trotzdem neu Werte als Input gefordert werden , verursacht das , dass der Programmablauf an der Stelle stoppt und die weitere Code nicht durchgelesen wird, bis neue Soll-werte eingestellt werden. Da in der Realität der User höchstwahrscheinlich nicht immer neue Soll-Werte einstellen wird, mussten wir die Code so umformen, sodass nur dann auf einen Wert gewartet wird, wenn LCD die schickt.Als Lösung haben wir uns,wie oben erwähnt, das Interrupt-Konzept gedacht und sowohl mit LCD- als auch mit Datengruppe zusammengearbeitet.Als zeitlichen Gründen konnten wir unsere Codeentwurf nicht testen und deswegen auch nicht implementieren.