C ds18b20

flecralf

Mitglied
25. Juli 2013
194
2
18
Sprachen
  1. ANSI C
Hallo alle zusammen,
heute habe ich einen Temperaturfühler bekommen, einen DS18B20.
Im Datenblatt sah ich nach kurzem Stöbern die Kürzel Tx und Rx.
Nun die Frage:
Bezieht sich die auf die Serielle Schnittstelle ?
Dann ist der Tiny13 ja wieder aus dem Rennen...
Auf meinem DIY-QuadCoreBoard ist noch ein ATMEGA8 vorhanden, der hat ja eine serielle Schnittstelle.
Gibt's denn hier einen C-Code, oder ist wieder Handarbeit angesagt ?
Bald ist ja Weihnachten.... beten und programmieren.... gut, ist ja auch nix neues...
:)
Gruß
Ralf
 
Hallo Ralf,

heute habe ich einen Temperaturfühler bekommen, einen DS18B20.
Im Datenblatt sah ich nach kurzem Stöbern die Kürzel Tx und Rx.
Nun die Frage:
Bezieht sich die auf die Serielle Schnittstelle ?

lies dir das Datenblatt nochmal genau durch. Da steht bestimmt auch drin das es keine RS232 ist.

Der DS18B20 ist genauso wie der DS18S20 ein Temperaturfühler mit 1-Wire-Bus. Das ist ein total anderes Protokoll und auch der Bus ist total anders. Dort werden die Bits in unterschiedlich langen Low-Phasen codiert. Du kannst das überhaupt nicht miteinander vergleichen.

Gruß
Dino
 
Ich kann mich Dino nur anschliessen. 1wire und RS232 sind so unterschiedlich wie Stringtanga und Gehhilfe :) Lies mal das Datenblatt vom DS18B20 oder, wenn Dich das Thema interessiert, schau mal auf der Seite von Maxim Dallas vorbei, da gibts ne ausfuehrliche Erklaerung zu dem Bus und seiner Arbeitsweise. Ein Attiny reicht zum Betrieb locker aus, nur mit der Anzeige der Temperatur musst Du was ueberlegen :)

P.S. Wo steht denn im Datenblatt was von Rx und Tx? :hmmmm:
 
Hallo Ralf,

viel Spaß mit dem 18b20 bzw. 18s20, sind tolle Bausteine, bergen aber auch einige Tücken. Das Datenblatt ist Pflichtlektüre!
Ob und wie der 1wire-Bus von C unterstützt wird, da kann ich nichts dazu sagen, in Bascom gibt es eine recht gute Unterstützung.
Du solltest für den Anfang die 3-draht-Variante (GND 5V Data) benutzen, sonst hast du evtl. noch zusätzliche Probleme mit dem Bus, PullUp-Widerstand nicht vergessen!!!
Das Timing ist auch nicht ohne, bei voller Auflösung braucht der fast eine Sekunde für die Messung bzw. Umsetzung. Auflösung hat nichts mit Genauigkeit zu tun!

Gruß

gp177
 
Hallo zusammen,

Ob und wie der 1wire-Bus von C unterstützt wird, da kann ich nichts dazu sagen, in Bascom gibt es eine recht gute Unterstützung.

C "unterstützt" zunächst überhaupt keine Hardwaremodule wie TWI, ADC, Timer, PWM usw. Es ist eine Hochsprache, die erst einmal unabhängig von der Hardware ist.

Bezüglich des Dallas Temperatursensors gibt es aber sicherlich massenweise Beispiele in C/C++ unter anderem auch im Bereich Arduino.

Vielleicht läßt sich hier auch etwas von einem kleinen Beispiel-Projekt aus meinem Blog verwenden.

Atmel Studio C Library für Seven Segment LED Backpack


  • TWI_Master.c
  • TWI_Master.h


Eine Anzeigemöglichkeit für die Temperatur hätte man da dann auch gleich ;)


Dirk :ciao:

nano_sevenseg_ledbackpack1.jpg
 

Ü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)