Hallo,
ich wollte mir das USB-Experiment Interface bei Conrad.
bestellen.http://www.conrad.de/goto.php?artikel=191137
An dieses wollte ich einige Sensoren anschließen, z.B. Temperatur,
Feuchtigkeit etc..
Diese Daten wollte ich später mit C# auslesen, was kein Problem
darstellen sollte, jedoch meine Frage:
Reicht es aus, z.B. einen digitalen Temperatursensor einfach an die
digitalen Eingänge des Boards anzuschliessen.. Kann mir eventuell jemand
erläutern ob da irgendwelche Schwierigkeiten bestehen und evtl.
alternativen Beschreiben.
Vielen Dank für euere Antworten.
Was wäre den eine alternative zum K-8055? Mir geht es nur um ein Paar
Temp Sensoren anzuschließen, diese irgendwie auszulesen und die Werte
weiterzuverarbeiten.
Der eigentliche Aufwand soll minimal sein. Wenn möglich ein fertigen
Microcontroller an den man einfach max 5-6 Sensoren anschliessen kann.
Ich habe einige Std gegoogelt, jedoch ohne erfolg. ich würde schon diese
one-wire kommunikation mit dem 8055 realisieren.
Die Karte registriert den DS1820 als angeschlossen. Jedoch ist mein
Problem das herstellen der Kommunikation mit C#. Gibt es da bestimmte
Beispiele ?
Hans wrote:
> Ich habe einige Std gegoogelt, jedoch ohne erfolg. ich würde schon diese> one-wire kommunikation mit dem 8055 realisieren.>> Die Karte registriert den DS1820 als angeschlossen.
"Glaube ich nicht". Die K8055 Karte registriert einen Logikpegel an dem
Digitaleingang an dem der DS1820 mit einem Beinchen hängt, aber keinen
"Wert".
Hier gibt es bereits ein weiteres Problem: Der Sensor muss an einem
umschaltbaren Digitalport angeschlossen werden. Einmal ist der Port
Eingang und einmal Ausgang. Das ist auf dem K8055 so nicht vorgesehen!
K8055 ILLUSTRATED ASSEMBLY MANUALhttp://www.velleman.be/downloads/0/illustrated/illustrated_assembly_manual_k8055_uk_rev3.pdf
Die Kommunikation zu einem DS1820 läuft so ab, dass der "Master" (dein
PC) auf dieser Leitung Bits schickt und dann eine gewisse Zeit darauf
wartet, dass der DS1820 antwortet, d.h. seinerseits Bits schickt.
Das Zeitverhalten (Timing) muss im Bereich von paar 10 bis paar 100
Mikrosekunden liegen.
"The bus master transmits (TX) a reset pulse (a low signal
for a minimum of 480 µs). The bus master then
releases the line and goes into a receive mode (RX).
The 1–Wire bus is pulled to a high state via the 5K
pull–up resistor . After detecting the rising edge on the I/O pin, the
DS1820 waits 15–60 µs and then transmits
the presence pulse (a low signal for 60–240 µs)."
*DS1820 1–Wire Digital Thermometer*
http://www.micro-ide.com/downloads/ds1820.pdf> Jedoch ist mein> Problem das herstellen der Kommunikation mit C#. Gibt es da bestimmte> Beispiele ?
Es gibt Beispielcode für C# und K8055 unter Linux #1
http://linuxk8055.free.fr/ und Windows #2
http://www.k8055-velleman.at.tt/
Wahrscheinlich nicht für den speziellen Fall K8055 + DS1820, jedenfalls
hat meine Suche (oben) nix gebracht und deine ja auch nicht.
Ich befürchte, du kannst die rel. engen Zeiten 15–60 µs und 60–240 µs
mit C# durch den USB-Stack durch die Blackbox PIC-µC auf dem K8055 nicht
einhalten.
In dem Link #2 ist die Rede von "general conversion time: 20ms per
command". Das wäre fast 1000x zu langsam für diese Anwendung!
In http://forum.velleman.be/viewtopic.php?t=1096 sind Aufzeichnungen zu
sehen, die Zeiten im 10ms Bereich fürs Toggeln aus einem C++ Programm
heraus bestätigen. Damit kannst du bei einem DS1820 definitiv nix
reissen.
Was wäre den die alternative zu dem DS12S80? Also ein digitaler Sensor
der auf jeden fall mit dem K8055 funktionieren könnte? Vorzugsweise
digital, an sonsten wenns umstandshalber nicht geht, dann analog.
Danke für euere Hilfe
Hallo
Nimm doch einen aus der KT-Serie. Z.B. KTY....
Den mit Widerstand an plus minus 5 Volt und dann
über den AD-Wandler dran hängen. Dann mit
hilfe des Programms ihn auslesen. Muß halt dann
programmiert werden.
In der Artikelsammlung sind ja allgemeine Temperaursensoren
aufgezählt und in dem Forumlink oben zum K-8067 sind auch jede Menge
genannt, die sogar in der Praxis eingesetzt werden.
Das K8055 braucht selbst lt. Manual ca. 70 mA von USB, d.h. "legal" hast
du noch 30 mA, die du einer externen Schaltung zuführen. Das sollte für
einen Temperatursensor reichen.
Bei den analogen Temperatursensor wäre es so:
Du hast zwei analoge Spannungseingänge für 0-5V und die werden mit 8-Bit
digitalisiert (256 Stufen). Ein Temperatursensor mit 0-5V Ausgabe und 5V
Versorgungsspannung (irgendwo auf dem Board abgegriffen) würde direkt
passen.
Einen Sensor mit geringerem Ausgabebereich (LMx35, s. K-8067 von
Vellemann) könnte man anpassen, indem man von der boardeigenen 5V
Referenzspannung auf eine geringere, eigene Referenzsannung wechselt. So
könnte man auch die Auflösung erhöhen, allerdings unter Verkleinerung
des Messbereichs.
Die von Gast genannte KTY-Familie stellt temperaturabhängige Widerstände
dar. Die könnte man auch einsetzen.
http://www.nxp.com/acrobat_download/literature/9397/75016148.pdf
Bei den digitalen Temperatursensor könnte einer mit I2C Bus oder eine
der SHT1x/SHT7x interessant sein, denn deren Protokolle kann man langsam
abwickeln, weil man selbst den Takt (SCK) vorgibt. Ist die Frage, ob
dann für die Anwendung noch genug Daten kommen.
Tsic mit dem ZAGWire Protokoll halte ich bei den Bitzeiten für zu
schnell (100 µs Bereich)
http://www.ist-ag.com/eh/ist-ag/resource.nsf/imgref/Download_TSic_Zacwire_EN.pdf/$FILE/TSic_Zacwire_EN.pdf
Die Schaltung für die Datenleitung wäre IMHO nicht ohne, denn man hat
keinen umschaltbaren IO-Pin sondern müsste einen Digitalausgang und
einen Digitaleingang benutzen und miteinander verschalten. Die
Abwicklung selbst wäre komplett selbst zu programmieren, denn eine
entsprechende Hardware Schnittstelle ist nicht auf dem Board!
Hallo,
ich wollte mal nachfragen, ob sich das Problem mit dem Daten einlesen
gelöst hat. Ich sitze nämlich gerade vor dem selben Problem mit dem
selben Board. Nur habe ich Infrarotsensoren an der Karte angeschlossen.
Jedes mal, wenn ich die Daten einlese bekomme ich den Wert für meine
Ausgänge angeszeigt. Dies ist aber nicht der Wert, den ich bekommen
möchte.
Vielen Dank