Themen / Index

tsonew_n - Demo für Unterprogramme lq/tsonewin - Temperaturwerte von 8 DS18S20 abholen.

Content (automatic)

Testprogramm tsonew_n

Dieses Programm erfasst 8 Temperaturen über 8 Datenleitungen. Das erspart das Auslesen und merken der Seriennummern.
Über andere Demo- und Hauptprogramme siehe: ../lq/one_wire_haupt.htm
ehe:
tsonewir.cpp - Demo-Programm für die Unterprogrammsammlung lq/tsonewi.cpp (Siehe tsonewir.htm / ../lq/tsonewi.htm)
onewire.cpp - kleines Demo-Programm. Damit habe ich die Schnittstelle studiert und Erkenntnisse gewonnen, die in die lq-Unterprogramme eingeflossen sind. Siehe onewire.htm

Der Dialog läuft durch die serielle Schnittstelle RS232, 9600 Baud.

AVR: Dieses Programm läuft auf dem ../../../etronik/s/atm32b.htm. Acht Sensoren DS18S20 werden angeschlossen an PORTD, PD0 bis PD7, mit Pull-Up-Widerstand 4.7 kOhm


? Hilfe anzeigen

Durch Taste ? wird die Hilfe angezeigt:

tsonew_n: ?
? - Hilfe anzeigen
z- Stackverwendung
0..0 - eine Temperatur laufend anzeigen
t - Temperaturen anzeigen
b - Speicher Hex anzeigen
 tsonew_n Version2016-11-28


z - Stapelspeicherverwendung anzeigen

tsonew_n: z
DIA: Stapel frei =33 verwendet =31 von =64
FUNMESS: Stapel frei =13 verwendet =63 von =76

Also kann der Entwickler den Speicherplatzbedarf optimieren:

Anstatt
kann sein
#define NSTKDIA 64
#define NSTKDIA 40

Dann ist immer noch 6 Worte Reserve

0 ... 7 - Hole eine Temperatur

tsonew_n: 0
DS1820[0]: ,2.988008s ,,k0,20.18, OK
,5.014706s ,,k0,20.18, OK
,7.040327s ,,k0,20.18, OK
,9.065984s ,,k0,20.25, OK
,11.091637s ,,k0,20.25, OK
,13.118327s ,,k0,20.25, OK
,15.145009s ,,k0,20.25, OK
,17.171713s ,,k0,20.25, OK
,19.198410s ,,k0,20.25, OK
,21.225121s ,,k0,20.25, OK


t - Hole Temperatur

Nach dem Befehl t werden die Messwerte von allen angeschlossenen Sensoren angezeigt:
Die Seriennummer ist egal.

tsonew_n: t Temperaturen
23.279881s ,k0,20.25, OK
25.306495s ,k0,20.25, OK
27.331173s ,k0,20.25, OK
29.355821s ,k0,21.25, OK
31.380478s ,k0,23.06, OK
33.405131s ,k0,25.37, OK
35.429779s ,k0,25.68, OK


Fehlermeldungen und Ursachen

Reset(): Leitung wird nicht Low
Gar kein Sensor ist angeschlossen
Reset(): Leitung am Ende bleibt Low
Der 4.7 kOhm Pull-Up-Widerstand fehlt.
* Falsches Kommando. Hilfe=?
Auf der seriellen Leitung kam etwas anderes herein, als t z ? [^M]
Über Fehlernummern siehe : ../lq/tsonewin.htm#fehler - Dokumentation des Unterprogramms.

Speicherbedarf und Versionen

Hinweis: der Programmspeicher des 8535 / ATMega8 geht von 0 bis 1fff (8KB=8192Befehle)
Hinweis: der Datenpeicher des 8535 geht von 8000060 bis 800025f (1/2KB=512Byte)
Hinweis: der Programmspeicher des Atmega32 geht von 0 bis 7fff (32KB=32767Befehle)
Hinweis: der Datenpeicher des Atmega32 geht von 8000060 bis 800085f (2KB=2048Byte)
Version

Neu in dieser Version
2015-09-27A
ROM: 5080 (13D8H), RAM:  1577 (629H)

2015-09-27B ROM: 5088 (13E0H), RAM:  1577 (629H)
2016-11-28
ROM: 6170 (181AH), RAM:  458 (1CAH)
Angepasst an lq/tsonewin.cpp (Ein Kanal)







Siehe auch

../lq/tsonewin.htm - Die Unterprogramme / die Klasse
../lq/tsonewin.htm#fehler - Fehlermeldungen und Abhilfe
../../../../etronik/sensor/DS18S20.pdf - Datenblatt des Sensors
../../../etronik/s/atm32b.htm - Schaltplat des Microprozessors
onewire.htm - Demoprogramm mit eingebauten Treibern
onewire2.htm - onewire2 - Temperaturwert abholen (von Peter Dannegger)

WWW

http://github.com/smurfix/owslave - Das ist ein Slave !
http://www.tm3d.de/index.php/1-wire-barometerm - Noch ein Slave - für Barometer
http://milesburton.com/Dallas_Temperature_Control_Library -
http://tushev.org/articles/arduino/item/52-how-it-works-ds18b20-and-arduino - Messen dauert bis zu 750 ms

Google

quelle one wire C

1-Wire DS18S20