AVR-Thermometer in Assembler

Gast #5984643
Lesenswert?

Hallo Forum, ich suche seit längerem ein Assemblercodebeispiel zum Thema 
NTC an AVR. Ich weiß nicht, entweder der falsche Suchbegriff in Google 
oder einfach zu dumm. Kann mir hier jemand weiterhelfen? Ich dachte an 
ein Programm, das mit einer internen Tabelle Arbeitet.

Danke im voraus
Gast #5985157
Lesenswert?

Soll das jemand für Dich programmieren?

Oder ist eher nur eine Linksammlung interessant?

Wenn Du so etwas einfachen noch nicht selbst kannst, dann nutze C und 
schaue dir den Assembleroutput an.

Denn kann man verwenden und so sich ein reines AVR-Assemblerprogramm 
schreiben.
Gast #5985161
Lesenswert?

Peter Pan schrieb:
> ein Assemblercodebeispiel zum Thema
> NTC an AVR

ADC konfigurieren, Bit auswerten das die Wandlung abgeschlossen ist und 
mit dem Wert was anstellen.
Dazu brauchst Du einen copy paste Code?

Die linearisierung soll Dir auch jemand abnehmen?

Warum programmierst Du in ASM wenn Du nicht in ASM programmieren kannst?
Gast #5985187
Lesenswert?

Als komplettes Beispiel Design für den PIC bietet sich dieser Beitrag 
von Sprut.de an:

http://www.sprut.de/electronic/pic/projekte/thermo/thermo.htm

Auch wenn Du nach eine AVR Lösung suchst (Ich weiss!), ist hier Vieles 
gut erklärt. Prinzipiell kann man ja den PIC Code für AVR umschreiben. 
Die Programmaufgaben sind ja nahezu dieselben. Es lohnt sich durchaus 
den PIC ASM Code zu studieren.

Temperaturmessung Grundlagen:
http://www.sprut.de/electronic/temeratur/temp.htm
Gast #5985855
Lesenswert?

Tut mir leid, ist falsch rüber gekommen. Mir ging es eig um das Prinzip, 
was man beachten sollte, bevor man anfängt. Auch die Schrittweite bei 
der E-Funktion wäre für mich wichtig. Da ich der volle "Mathefreak" bin.

mfg
Gast #5985864
Lesenswert?

Peter Pan schrieb:
> Tut mir leid, ist falsch rüber gekommen. Mir ging es eig um das
> Prinzip,
> was man beachten sollte, bevor man anfängt. Auch die Schrittweite bei
> der E-Funktion wäre für mich wichtig. Da ich der volle "Mathefreak" bin.
>
> mfg

Ich habe mir die betreffenden Rubriken von Sprut mal angesehen. Er 
beschreibt die Grundlagen sehr ausführlich. Auch die praktische Seite 
kommt nicht zu kurz was die möglichen Sensortypen betrifft. Die 
beschriebenen Projekte geben zumindest einen Anhalt für den Einstieg.
#5985894
Lesenswert?

Die e-Funktion wurde schon vor vielen Jahren in einer Siemens-Appnote 
ausführlich beschrieben. Heute heißen die Epcos und gehören zu TDK, aber 
der Text ist immer noch als pdf vorhanden:

https://www.tdk-electronics.tdk.com/de/510060/produkte/produktsuche/technische-parameter/sensoren-und-sensorsysteme/ntc-temperatursensoren--epcos-/ntc-elemente?t=information
vor allem unter "General technical information", und "Standardized R/T 
characteristics".
Gast #5987769
Lesenswert?

Ich dachte an einen billigen NTC (zB für 0,15€ bei Pollin), einen 
Attiny85, und eine serielle Datenverbindung zum PC, über usb <-> ser 
Adapter. Programmieren möchte ich folgendermaßen. Ich messe den 
Spannungswert über den AD-Wandler. Mit dem Wert schaue ich in einer 
Tabelle nach zwischen welchen Temperaturwerten der gemessene Wert liegt 
und nehme das Teilstück als linear an und berechen die Temperatur. Jetzt 
die Frage: Wie fein muß der Abstand der Werte in der Tabelle sein, damit 
das Ergebnis aus einigermaßen genau wird. Bei Pollin der NTC hat bei 25° 
1500 Ohm und einen B-Wert von 3975. Ich dachte, daß ich im Bereich von 
-20° bis 40° in 1° Schritte die Spannungswerte zur Temperatur angeben 
und jenseits von -20° und 40 ° in 2° Schritten. Kann man das so machen 
und ist das Sinnvoll?
Gast #5987810
Lesenswert?

Peter Pan schrieb:
> Kann man das so machen und ist das Sinnvoll?

Man kann einfach für alle 1024 ermittelten ADC Werte eine (in Excel 
vorausberechnete) Tabelle der dazu passenden Temperaturen in den uC 
stecken, was soll der ATtiny85 sonst mit seinem ganzen Speicher anfangen 
bei dem primitiven Job.

Ob man allerdings USB mit einem uC ohne USB interface treiben will, ist 
fraglich, eher ein 20ct CH552 von WCH statt dem steinzeitalten ATtiny85.
Gast #5993935
Lesenswert?

Der ATtiny85 hat schon ein eingebautes Thermometer. Da braucht man 
keinen angebauten NTC. Im Device-Databook unter Kapitel 17.12 
"Temperature measurement" beschrieben. Und linear misst das Teil auch. 
Aber wer unbedingt 0,1 Grad Genauigkeit haben möchte, kann das eh nicht 
gebrauchen.

mfg,
gerd
Gast #5994089
Lesenswert?

Vergiss die komplexe Mathematik. Für Raumthermometer erreichst du eine 
gewöhnliche Genauigkeit durch zuschalten passender Widerstände.

Berechnungshilfe: 
https://www.electronicdeveloper.de/MesstechnikNTCLinearR.aspx

Wesentlich genauer wird es nur mit einer Tabelle, die ganz individuell 
an diesen einen Sensor angepasst wird. Also nicht mit berechneten 
Zahlen, sondern tatsächlich gemessenen.
Gast #5995695
Lesenswert?

Peter Pan schrieb:
> Ich messe den
> Spannungswert über den AD-Wandler. Mit dem Wert schaue ich in einer
> Tabelle nach zwischen welchen Temperaturwerten der gemessene Wert liegt
> und nehme das Teilstück als linear an und berechen die Temperatur.

Wenn die Anzeige sowieso im PC erfolgt, wozu dann die Interpolation auf 
dem 8-Bit Rechner? Ich würde nur den A/D-Wert übertragen.

Peter Pan schrieb:
> Wie fein muß der Abstand der Werte in der Tabelle sein, damit
> das Ergebnis aus einigermaßen genau wird.

Das hängt vom Gesamtmeßbereich und dem Linearisierungswiderstand ab.
Ich messe von 10 Grad bis 40 Grad bei optimiertem 
Linearisierungswiderstand mit einer einzigen Geraden mit 0.3 Grad 
maximalem Linearitätsfehler. Bei 10 Bit A/D-Wandler ergeben sich ca 0.1 
Grad Auflösung.

Allerdings wird bei mir jeder einzelne Sensor abgeglichen da die 
billigen NTCs üblicherweise 5% Toleranz haben.

Gruß Anja

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren