Das deutsche QBasic- und FreeBASIC-Forum Foren-Übersicht Das deutsche QBasic- und FreeBASIC-Forum
Für euch erreichbar unter qb-forum.de, fb-forum.de und freebasic-forum.de!
 
FAQFAQ   SuchenSuchen   MitgliederlisteMitgliederliste   BenutzergruppenBenutzergruppen  RegistrierenRegistrieren
ProfilProfil   Einloggen, um private Nachrichten zu lesenEinloggen, um private Nachrichten zu lesen   LoginLogin
Zur Begleitseite des Forums / Chat / Impressum
Aktueller Forenpartner:

Suspensionsabsaugung

 
Neues Thema eröffnen   Neue Antwort erstellen    Das deutsche QBasic- und FreeBASIC-Forum Foren-Übersicht -> Profi-Forum
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen  
Autor Nachricht
Markus



Anmeldungsdatum: 16.09.2004
Beiträge: 104
Wohnort: Wien

BeitragVerfasst am: 30.03.2006, 21:53    Titel: Suspensionsabsaugung Antworten mit Zitat

Hallo, Gehirnakrobaten!

Damit es nicht immer nur um Nullen und Einsen geht: Ich hab´da ein Problemchen, das nach Mitdenkern schreit.
Gesucht wird schlicht eine genial-einfache Lösung.

Nämlich: Ich habe eine Maschine gebaut, die PC-gesteuert in Wasser gelöste Bodenbestandteile trennt (je nach Sedimentationszeit). Nun soll ich das Ganze in einzelnen Modulen mikrokontrollergesteuert bauen. Steuerungstechnisch habe ich das - glaub´ich - im Griff, aber der Hund liegt im Detail.

Folgendes: Aus einem großen 3 Liter-Glas, das mit 2,5 Liter Wasser-/Bodensuspension gefüllt ist, soll diese schlammige Suspension nach einer bestimmten Zeit bis etwa 5 cm über Boden ganz langsam (!) abgesaugt werden - und das maximal kostengünstig, weil 10 solcher Module gebaut werden sollen und Geld Mangelware ist.
Da die Suspension anfangs aber ziemlich tonig und dickflüssig ist, mordet sie nach rel. kurzer Zeit jede normale Pumpe (Verstopfen, Abrieb...). Loch ins Glas und über ein Magnetventil ausfließen lassen wäre eventuell möglich, aber zu teuer, ist daher zu vermeiden.
Schlauchpumpen wären ideal, sind aber unbezahlbar.

Ich dachte mir, das könnte irgendwie nach Art kommunizierender Gefäße funktionieren:
2 solcher 3-L-Gläser stehen nebeneinander. Beide sind mit 2.5 L Wasser gefüllt und sind über die Öffnungen bis 5 cm über Boden mit einem dünnen Schlauch verbunden (Schlauch wird links + rechts reingehängt).
Pumpe ich nun aus dem rechten Glas die Suspension ab, sinkt der Flüssigkeitsspiegel und Flüssigkeit wird aus dem linken Glas nachgesaugt. Je dünner der Schlauch, desto langsamer wird rübergesaugt - Geschwindigkeit ist also steuerbar.
Das funktioniert aber nur, wenn der Schlauch wassergefüllt ist. Der aber wird leer, wenn aus dem linken Glas bis auf 5 cm alles rübergeronnen ist, weil er dann Luft nachsaugt.

Fällt euch dazu irgend eine (bessere) Lösung ein?

lg
Markus
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden
Heizi



Anmeldungsdatum: 19.01.2005
Beiträge: 309

BeitragVerfasst am: 31.03.2006, 07:42    Titel: Antworten mit Zitat

vielleicht mit nem Sieb?
oder das eine Glas etwas größer machen als das andere??
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
E-P-S



Anmeldungsdatum: 16.09.2004
Beiträge: 500
Wohnort: Neuruppin

BeitragVerfasst am: 31.03.2006, 11:11    Titel: Antworten mit Zitat

Warum oben raussaugen? Kannst du die Glasverbindung und auch den Absaugschlauch selbst nicht in der gewünschten Bodenhöhe seitlich am Glas anbauen?

In etwa so:


_________________
Man kann sich öfter als zweimal im Leben halb tot lachen.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
Markus



Anmeldungsdatum: 16.09.2004
Beiträge: 104
Wohnort: Wien

BeitragVerfasst am: 31.03.2006, 19:04    Titel: Antworten mit Zitat

Hallo!
Natürlich ginge es so auch - sofern man ein Loch ins Glas bohren kann, ohne daß es springt.
Aber: Es besteht die Gefahr, daß vermehrt Flüssigkeit (und damit Material) auch unterhalb der gewünschten Bodenhöhe abgesaugt wird. Idealerweise dürfte NUR die Flüssigkeit oberhalb des Absaug"punktes" entfernt werden.

Sauge ich von oben, strömt die Flüssigkeit hauptsächlich von "links und rechts" in ziemlich konstanter Höhe in den Absaugschlauch, wenn horiziontal, dann auch von unten.

That´s the problem.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden
Markus



Anmeldungsdatum: 16.09.2004
Beiträge: 104
Wohnort: Wien

BeitragVerfasst am: 31.03.2006, 19:22    Titel: Antworten mit Zitat

N A S E !

Das könnte die Lösung sein!
Danke, E-P-S, ohne dich wäre ich nicht auf diesen Gedanken gekommen.
Seit Monaten grüble ich nach der idealen Lösung.

Ich gehe mit dem Ventilanschluß etwas oberhalb des Absaugpunktes ins Glas und dann mit einer kurzen Nase nach unten. Dann wird hpts. horizontal abgesaugt.
Wenn der Ablaufschlauch bis unter das Bodenniveaus geht, entleere ich so bis alles bis zum "Nasenniveau" lächeln

Ich besorge mir gleich morgen einen Glasbohrer, wenn es so etwas gibt....

MERCI ! vor Freude klatschen

Markus
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden
Skilltronic



Anmeldungsdatum: 10.09.2004
Beiträge: 1148
Wohnort: Köln

BeitragVerfasst am: 31.03.2006, 21:45    Titel: Antworten mit Zitat

Hallo

Wie wär's, wenn du als zweiten Behälter einen Kanister oder so benutzt, in den den Schlauch aus dem ersten reinführst und dann z.B. mit einem Staubsauger die Luft aus dem zweiten Absaugst? Die Anschlüsse am zweiten Behälter selbst müssten dan natürlich luftdicht sein und der Behälter gross genug, damit kein Wasser in den Staubsauger gelangen kann. Kann ja auch eine andere Art von Pumpe sein, so käme sie jedenfalls nicht mit dem Schmutzwasser in Berührung.



Gruss
Skilltronic
_________________
Elektronik und QB? www.skilltronics.de !
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
Markus



Anmeldungsdatum: 16.09.2004
Beiträge: 104
Wohnort: Wien

BeitragVerfasst am: 31.03.2006, 23:01    Titel: Antworten mit Zitat

Hallo Skill!

Genau so mache ich es bisher, nämlich mit Unterdruck (mit Wasserstrahl-Pumpe, die mit einem Waschmaschinen-Magnetventil eingeschalten wird) in ein 2tes Glas saugen und von dort wegpumpen.

Das aber erfordert einen höheren technischen Aufwand (zB. muß sehr langsam und gleichmäßig abgesaugt werden) und vor allem mehr Platz, und eine meiner Vorgaben ist, möglichst an Platz zu sparen, weil bis zu 10 dieser Absaug-"Module" gebaut werden sollen und alles ohnehin schon vollgestopft ist.
Außerdem ist unser Gebäude derart desolat, daß häufig wegen Reparaturen das Wasser bzw. der Strom über Nacht abgedreht wird, worauf das System natürlich nicht mehr funktioniert bzw. Meßwerte unerklärlich falsch sind...

Wenn ich pro Modul nur 1 3L-Gurkenglas (wozu sündteure Laborgläser?) brauche und alles mit 12V versorge, kann ich die Stromversorgung mit einer Autobatterie puffern und den Wassernachschub mit einem 60L-Faß (WC-Schwimmer füllt nach) auch übers Wochenende sicherstellen und bin von Nachschub weitgehend unabhängig. Die ohnehin für die Wassernachfüllpumpe und das Auslaßventil erforderlichen 12V werden mit einem Festspannungsregler zu 5V für die Elektronik.
Erforderlich sind also neben der Elektrik nur das Glas mit "Nase", darauf ein "Kopf" mit der Steuerelektronik, Rührwerk und Temperaturfühler, ein 12V-Ventil und etwas Schlauch. Das wäre glaube ich die absolut billigste und platzsparendste Variante.
Ich werd´s mal so versuchen.

Das Glas zu lochen macht noch etwas Sorgen. Probiere ich morgen. Die Verbindung nach außen zum Ventil versuche ich mit irgendwelchen Druckluft-Verschraubungen aus Plastik herzustellen.

Wenn das klappt, muß "nurmehr" die Temperaturmessung mit dem Picaxe funktionieren. Der richtige 18B20er-Sensor ist schon bestellt...

lg + erholsamen Schlummer
Markus
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden
Markus



Anmeldungsdatum: 16.09.2004
Beiträge: 104
Wohnort: Wien

BeitragVerfasst am: 28.05.2006, 22:39    Titel: Antworten mit Zitat

Schönen Abend, alle zusammen!

So, jetzt habe ich eine Möglichkeit gefunden, Glas zu lochen, ohne jede Menge Splitter zu produzieren, nämlich mit einem Glasbohrer ein kleines Loch reinzubohren und mit einem Korund-Stein + Wasser auf die gewünschte Größe aufzureiben. Das Ausfließen über Ventil + Nase funktioniert auch.
An der Mechanik des Rührwerkes muß ich noch etwas basteln. Aber es wird ja langsam.

Nun grüble ich über die Steuerung mit dem Picaxe-18-Mikrokontroller, genauer: "PICAXE-18X mit 9 Digital-Out, 5 Digital-In (3 Analog)"

Kann mir jemand sagen, was der Unterschied zwischen Digital- und Analog-Ausgängen ist? Außer beim Temperaturfühler brauche am Kontroller nur die Info, ob 5V anliegen oder nicht.
Genauer: Ich steuere über Taster, die an 5V hängen (Prog-Start, wenn Taster gedrückt bzw. wenn an Pin x 5V anliegen, dann Relais / Ventil einschalten...)
Kapiert der MK das sowohl bei digital als auch bei analog? Wenn nicht, wirds mächtig mühsam...

Beste Grüße
Markus
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden
Michael Frey



Anmeldungsdatum: 18.12.2004
Beiträge: 2577
Wohnort: Schweiz

BeitragVerfasst am: 29.05.2006, 17:31    Titel: Antworten mit Zitat

Ohne in ein Datenblatt zu sehen:
Zitat:
Kann mir jemand sagen, was der Unterschied zwischen Digital- und Analog-Ausgängen ist? Außer beim Temperaturfühler brauche am Kontroller nur die Info, ob 5V anliegen oder nicht.

Zu meinst wohl Eingänge!?

Wenn du Eingänge meinst:
Dann ist es ein Typischen Digital Signal, wobei auch analoge eingänge Digitalsignale annehmen können.

Also:
Die Taster an die digitalen oder zur Not analogen eingänge.

Der Temperaturfühler an einen analog eingang.
(Wenn der Temperaturfühler einen Digitalausgang hat, wird's aber komplizierter).

Hast du ein Datenblatt zum Temperatursensor?

Edit://
PICAXE-18X Datenblatt 1
So wie ich das sehe, kannst du die Analogeingänge zu Digitaleingängen umschalten.

Wieviele Eingansignale hast du?
_________________
http://de.wikibooks.org/wiki/FreeBasic Jede Hilfe für dieses Buch ist Willkommen!
http://de.wikibooks.org/wiki/FreeBasic:_FAQ FAQ zu Freebasic (im Aufbau, hilfe Willkommen)
Neu mit Syntax Highlight
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
Markus



Anmeldungsdatum: 16.09.2004
Beiträge: 104
Wohnort: Wien

BeitragVerfasst am: 30.05.2006, 11:33    Titel: Antworten mit Zitat

Hallo Michael!
Ja, meinte Eingänge. War schon spät, da ist das Hirn noch weicher als sonst lächeln
Beim Picaxe brauche ich 5 Eingänge, davon einen (egal welchen? irgendeinen Digitaleingang?) mit dem Temperatursensor verziert.
http://www.roboter-teile.de/datasheets/DS18B20.pdf
Bei den anderen 4 soll nur geprüft werden, ob 5V anliegen oder nicht (Taster).

Ausgänge brauche ich alle 7. Damit sollen durch deren Einschalten Relaiskarten angesteuert werden.

Mit READTEMP liest der Picaxe angeblich die Temperatur ein (im 8-Bit-Modus), auf 0,5 °C genau.
Mit READTEMP12 auch, nur mit 12-Bit-Auflösung, soll genauer sein und diese höhere Genauigkeit wäre in meinem Fall absolut notwendig.
Nur kann ich die Temperatur ja nicht auf einem Bildschirm anzeigen.
Mir ist das Datenblatt reichlich rätselhaft.

Weißt du, ob ich so die Temperatur in °C gemessen bekomme oder ob ich das Signal irgendwie umrechnen muß? (Und wenn ja, wie??)

Beste Grüße
Markus
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden
Michael Frey



Anmeldungsdatum: 18.12.2004
Beiträge: 2577
Wohnort: Schweiz

BeitragVerfasst am: 30.05.2006, 17:07    Titel: Antworten mit Zitat

Mal sehen, ich arbeite in der Regel mit ganz anderen Prozessoren.
(80C31 und mit einem PIC10F200 hab ich auch schon gearbeitet, beide in Asembler)
Ich lese mich mal ein.

Ich nehm mal diese Datei als Grundlage:
Link 1

Zu den Ein-/Ausgängen:
14 I/O Pins, 9 Output, 5 Eingänge, geht auf.

Neues Dokument mit den Augen rollen
Link 2

Zum Umrechnen:
Wir reden vom Readtemp12 Befehl, das macht das Leben schwere, die Rechnung aber genauer.
Ich betrachte mal den Beispiel Code:
Code:
loop:
readtemp12 1,w1 ‘ read value into b1
debug w1 ‘ transmit to computer screen
goto loop

Zitat:
However for larger numbers two byte variables can be combined to create a word
variable, which is capable of storing integer numbers between 0 and 65335. These
word variables are labelled w0 to w6, and are constructed as follows:
w0 = b1 : b0

Aha ...
Das wird ja ein Abenteuer.

Ich hab mal auf die Schnelle einen Converter in QBasic geschrieben:
Code:
DECLARE FUNCTION bin$ (zahl AS SINGLE)
CLS
INPUT "Temperatur ", temp
PRINT bin$(temp * 2 ^ 4)
FUNCTION bin$ (zahl AS SINGLE)
        DO WHILE zahl <> 0
                a$ = LTRIM$(STR$(zahl MOD 2)) + a$
                zahl = zahl \ 2
        LOOP
        bin$ = a$
END FUNCTION

Geben wir mal 79.125 Grad Celsius ein, dann gibt es
10011110010. Das Zerlegen wir mal so 100 11110010 (der Rechte Block muss genau 8 Zeichen umfassen)

Jetzt weiter:
Wir wollen diese 79.125 Grad Celsius als Schwellwert nutzen, also:
Code:
loop:
readtemp12 1,w1 ‘ read value into b1
IF b1=%100 and b0=%11110010 then Schwelle
goto loop

Schwelle: ‘Genau auf Schwellwert, mach irgendwas
goto loop

Ich hoffe das es stimmt ...
Wenn es stimmt, springt das Programm bei genau 79.125 Grad auf das Label "Schwelle".
(Ist also keine echte Schwelle, eine echte würde ja bei grösser/gleich oder kleiner/Gleich springen)

Leider habe ich keine Hardware zum Prüfen.
_________________
http://de.wikibooks.org/wiki/FreeBasic Jede Hilfe für dieses Buch ist Willkommen!
http://de.wikibooks.org/wiki/FreeBasic:_FAQ FAQ zu Freebasic (im Aufbau, hilfe Willkommen)
Neu mit Syntax Highlight
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
Markus



Anmeldungsdatum: 16.09.2004
Beiträge: 104
Wohnort: Wien

BeitragVerfasst am: 01.06.2006, 19:42    Titel: Antworten mit Zitat

Hallo Michael !
Danke für die Mühe!
(Bin 2 Tage nicht ins Forum gekommen - irgendwo war da ein Knopf in der Leitung?!)
Das mit dem Schwellwert verstehe ich ungefähr, wenn auch nicht, warum man den Block zerlegen muß. Aber man muß ja nicht alles wissen.

Also ist es so, daß man mit readtemp12, 1, w1 den Temperatursensor auf Pin1 ausliest und den Wert in w1 hat. Das ist offenbar eine Binärzahl, die man in °C umrechnen muß.

Nur WIE? Ich könnte mit deinem Converter alle °C in Zehntelgrad in eine Binär-Liste schreiben und vergleichen, aber soviele Zeilen habe ich auf dem Picaxe nicht. Also müßte der Binärwert direkt in °C umgerechnet werden, und zwar mit den Picaxe-Befehlen
http://www.rev-ed.co.uk/docs/picaxe_manual2.pdf

Fällt dir da eine passende kleine Routine ein ?? (Ewige Dankbarkeit und so.....)

Zum Überprüfen:Wenn ich die °C im Picaxe habe, könnte ich das überprüfen, indem ich ein genaues Thermometer (ist vorhanden) und den Sensor in ein Glas Wasser stecke, und mir die Temperatur über Blinken einer LED anzeigen lassen.

Beste Grüße
Markus
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden
Michael Frey



Anmeldungsdatum: 18.12.2004
Beiträge: 2577
Wohnort: Schweiz

BeitragVerfasst am: 02.06.2006, 16:29    Titel: Antworten mit Zitat

Zum Forum:
Das Frage ich mich auch was los war, siehe ersatzt Forum "aus einer anderen Zeit".

Zitat:
Das mit dem Schwellwert verstehe ich ungefähr, wenn auch nicht, warum man den Block zerlegen muß. Aber man muß ja nicht alles wissen.

Wie soll ich das erklären?
Der Picaxe arbeitet mit 8 Bit, aber du liest ja einen 12 Bit Wert ein.
Der Controller kann also mit dem Wert nich "direkt" arbeiten und zerlegt den Wert deshalb in zwei 8 Bit Werte, mit denen er ja arbeiten kann.
siehe
Zitat:
However for larger numbers two byte variables can be combined to create a word
variable, which is capable of storing integer numbers between 0 and 65335. These
word variables are labelled w0 to w6, and are constructed as follows:
w0 = b1 : b0


Zitat:
Nur WIE? Ich könnte mit deinem Converter alle °C in Zehntelgrad in eine Binär-Liste schreiben und vergleichen, aber soviele Zeilen habe ich auf dem Picaxe nicht. Also müßte der Binärwert direkt in °C umgerechnet werden, und zwar mit den Picaxe-Befehlen

Ich verstehe nicht, wieso du den Wert umrechnen must.

Ich stelle mir die Aufgabe etwa so vor:
Pseudo Code:
Code:
do
  If Temperatur < 24°C then
     Heizung ein
  elseif Temperatur > 26°C then
    Heizung aus
  End if
loop

also must du "nur" vergleichen ob grösser als ...

Eine Idee:
Vielleicht kannst du es dir so leichter Vorstellen:
Code:
0 Dezimal = 0°C
1 Dezimal = 0.0625°C
2 Dezimal = 0.125°C
3 Dezimal = 0.1875°C
4 Dezimal = 0.25°C
...
10 Dezimal = 0.625 °C
...
50 Dezimal = 3.125 °C
...
100 Dezimal = 6.25 °C
...
1000 Dezimal = 62.25 °C

also Pro Dezimal Schrit 0.0625 °C.

Als ich diese Tabelle ist mir folgender eintrag im Datenblatt aufgefallen:
Zitat:
You can use any word, byte or bit variable within any mathematical assignment or
command that supports variables
. However take care that you do not accidentally
repeatedly use the same ‘byte’ or ‘bit’ variable that is being used as part of a ‘word’
variable elsewhere.

Das Zerlegen war also Unnötig (mein Fehler, hab den Text nicht genau genug gelesen), also der abgeänderte Code:
(immer noch 79.125 °C)
Code:
loop:
readtemp12 1,w1 ‘ read value into b1
IF w1=1266 then Schwelle
goto loop

Schwelle: ‘Genau auf Schwellwert, mach irgendwas
goto loop

Zu Beachten: Du darfst die Variablen B0 und B1 nicht verwenden, weil W1 aus B0 und B1 zusammen gebaut ist.

Zur Umrechnung:
Code:
 1 Dezimal = 0.0625°C
(79.125°C/0.0625°C)*1 Dezimal=1266 (im auf Ganzzahl runden!)

_________________
http://de.wikibooks.org/wiki/FreeBasic Jede Hilfe für dieses Buch ist Willkommen!
http://de.wikibooks.org/wiki/FreeBasic:_FAQ FAQ zu Freebasic (im Aufbau, hilfe Willkommen)
Neu mit Syntax Highlight
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
Markus



Anmeldungsdatum: 16.09.2004
Beiträge: 104
Wohnort: Wien

BeitragVerfasst am: 02.06.2006, 19:52    Titel: Antworten mit Zitat

Hallo Michael!
Das Leben besteht nicht nur aus Heizungssteuerungen (leider)! lächeln
Ich muß alle 10 Minuten eine sich dauernd ändernde Wassertemperatur messen. Wenn eine bestimmte Temperatursumme erreicht ist, wird ein Absaugvorgang ausgelöst, nachgefüllt etc.
Ich brauche also eine möglichst exakte Temperatur (0,3°C genau), und das oft. Deshalb umrechnen.
Aha, dezimal! Das heißt, die Dezimalen, die der Sensor ausgibt, müssen gelesen und entsprechend multipliziert werden?

HA ! Ich habe gerade das gefunden:
http://www.roboter-teile.de/modules.php?name=Forums&file=viewtopic&t=83

Dir wird das deutlich mehr sagen als mir. Mir ist die dortige Berechnung (so einfach sie ist), unklar. Woher die Zahlen der Divisionen/Multiplikationen?
Aber offenbar ist das eine Möglichkeit, Plusgrade einzulesen. Mal ausprobieren. Aber wie geht das bei Frost?

Beste Grüße
Markus
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden
Sebastian
Administrator


Anmeldungsdatum: 10.09.2004
Beiträge: 5969
Wohnort: Deutschland

BeitragVerfasst am: 02.06.2006, 20:03    Titel: Antworten mit Zitat

Zitat:
Ich muß alle 10 Minuten eine sich dauernd ändernde Wassertemperatur messen. Wenn eine bestimmte Temperatursumme erreicht ist, wird ein Absaugvorgang ausgelöst, nachgefüllt etc.

Was du für seltsame Maschinen baust... durchgeknallt
_________________

Der Markt regelt das! | Opas Leistung muss sich wieder lohnen - für 6 bis 10 Generationen!
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
Markus



Anmeldungsdatum: 16.09.2004
Beiträge: 104
Wohnort: Wien

BeitragVerfasst am: 02.06.2006, 23:30    Titel: Antworten mit Zitat

Danke, Sebastian, du bist der erste, der meine Maschinen als seltsam bezeichnet und nicht mich selbst. lächeln

Es geht doch bloß darum, aus einer Bodenlösung die Tonfraktion zu entfernen, damit man mittels Röntgendifraktometrie den reinen Schluff (0.002 - 0.063 mm), der zuweilen eine etwas andere Mineralzusammensetzung hat als der Ton, messen kann. Weil die Sedimentationsgeschwindigkeit aber sehr stark von der Wassertemperatur abhängt und diese im Labor durch benachbarte andere Geräte (Trockenöfen etc.) stark schwanken kann, muß ich die Temp. halt messen und ... aber jetzt wirds langweilig.
Den Rest erspare ich dir.

Gute Nacht!
Markus
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden
Sebastian
Administrator


Anmeldungsdatum: 10.09.2004
Beiträge: 5969
Wohnort: Deutschland

BeitragVerfasst am: 03.06.2006, 09:15    Titel: Antworten mit Zitat

Mein Kommentar war keineswegs böse gemeint, ich habe mich nur gewundert, was das wohl werden soll, wenn's fertig ist. zwinkern
_________________

Der Markt regelt das! | Opas Leistung muss sich wieder lohnen - für 6 bis 10 Generationen!
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
Michael Frey



Anmeldungsdatum: 18.12.2004
Beiträge: 2577
Wohnort: Schweiz

BeitragVerfasst am: 03.06.2006, 09:36    Titel: Antworten mit Zitat

Langsam bekomme ich ein Problem mit erklären.

Also nochmal:
Der Temperatur Sensor liefert die Temperatur so zusagen in einer anderen Einheit.
1 dieser Einheit entspricht 0.0625 °C.

Wenn er bei 25 °C schalten soll, dann schreibst du anstelle von 25 °C einfach die Zahl 400.
Diese 400 ergeben sich aus 25°C/0.0625°C=400.
Also "400" entspricht 25°C.

Ich geh mal auf den Anderen Ansatz ein:
Zitat:
Dir wird das deutlich mehr sagen als mir. Mir ist die dortige Berechnung (so einfach sie ist), unklar. Woher die Zahlen der Divisionen/Multiplikationen?

Ich könnte es dir erklären, aber es wird mühsam, weil du offensichtlich nicht viel von Binärzahlen beziehungsweise von Zahlensystem algemein verstehsts.
Ein Versuch:
Das Niederwertigste Bit (auch LSB genannt) hat denn Wert 2^-4, und das entspricht 0.0625.
Wenn also das Bit ganz Rechs hat also den Wert 0.0625 Grad.
Nun zum Problem: Der Pic kennt keine Kommawert und behandelt darum den Wert als "1", obwohl er eigentlich ja 0.0625 ist.
Nun zur umsetzung:
Code:
ReadTemp12 1,TReading 'Einlesen über Pin1 in die VariableTReading
TempC_100 = TReading * 6 ' TC = value * 0.0625
TReading = TReading * 25 / 100
TempC_100 = TempC_100 + TReading
if TempC_100 > 2550 then ..... ´entspricht 25,5 °C da 100facher Wert

Weil der Pic nicht mit Kommazahlen Rechnen kann, ist die Rechnung auf geteilt.

Zitat:
Aber offenbar ist das eine Möglichkeit, Plusgrade einzulesen. Mal ausprobieren. Aber wie geht das bei Frost?

Siehe http://www.phanderson.com/picaxe/ds18b20_08m.html
Code:
    Symbol TReading = W0
    Symbol SignBit = B4
    Symbol TempC_100 = W4

       ReadTemp12 1,TReading
       SignBit = TReading / 256 / 128
       If SignBit = 0 Then Positive
       ' its negative
       TReading = TReading ^ $ffff + 1 ' take twos comp

Positive:
       TempC_100 =  TReading * 6      ' TC = value * 0.0625
       TReading = TReading * 25 / 100
       TempC_100 = TempC_100 + TReading
       If TempC_100 > 2550 and signbit=0 then ..... ´entspricht 25,5 °C da 100facher Wert
       If TempC_100 > 2550 and signbit=1 then ..... ´entspricht -25,5 °C da 100facher Wert

_________________
http://de.wikibooks.org/wiki/FreeBasic Jede Hilfe für dieses Buch ist Willkommen!
http://de.wikibooks.org/wiki/FreeBasic:_FAQ FAQ zu Freebasic (im Aufbau, hilfe Willkommen)
Neu mit Syntax Highlight
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
Markus



Anmeldungsdatum: 16.09.2004
Beiträge: 104
Wohnort: Wien

BeitragVerfasst am: 03.06.2006, 21:34    Titel: Antworten mit Zitat

Hallo Michael !

Danke für die Erklärung. Damit komme ich klar.

Merci vielmals.

lg
Markus
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden
Beiträge der letzten Zeit anzeigen:   
Neues Thema eröffnen   Neue Antwort erstellen    Das deutsche QBasic- und FreeBASIC-Forum Foren-Übersicht -> Profi-Forum Alle Zeiten sind GMT + 1 Stunde
Seite 1 von 1

 
Gehe zu:  
Du kannst keine Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum nicht antworten.
Du kannst deine Beiträge in diesem Forum nicht bearbeiten.
Du kannst deine Beiträge in diesem Forum nicht löschen.
Du kannst an Umfragen in diesem Forum nicht mitmachen.

 Impressum :: Datenschutz