Main Menu

Login Form

Atmega/Avr

Bascom

Die älteren kennen  noch BASIC vom C64 oder anderen ersten Homecomputern.  Bascom ist fast genauso aber ohne Zeilennummern dafür etwas strukturierter.
Der Bascom-Compiler lässt keine aufwendigen arithmetischen Funktionen zu.  Man kann in Bascom komplexe Anwendungen schreiben die dann compiliert übertragen werden.  Fortgeschrittenen können auch mit Bascom direkt in das Prozessorgeschehen eingreifen. Trotzdem wird man von den Assemblerfreaks nur müde belächelt.

Hier der Downlod für den Compiler. Achtung in der kostelosen Version ist die Kapazität eingeschränkt, reicht aber für den Anfang.

 

lm 335

LM335 richtig anschließen und auswerten.

Der LM335 hat im Gegensatz zum LM35 einen Messbereich vom -40  - 100°Celsius
Am Ausgang liefert eine Spannung von 0,01V pro °Kelvin

Laut Datenblatt beträgt die Spannung am Out bei 25° Celsius 2,98V

Die Spannung mal 100 ergibt 298°Kelvin. Um auf Celsius zu kommen lm335muss man 273  ( genau 273,15) abziehen Sind also 25° Celsius.

Die Messgenauigkeit beträgt 0,5° bei 25°C. Laut Datenblatt lässt sich noch ein Poti zwischen den freien Pin und Out anschliessen. Pedanten kalibrieren das Ding dann in Eiswasser. Man kann es sich aber leichter machen, falls ein genaues Termometer zur Hand ist, indem man die eventuelle Abweichung per Software mit einrechnet.

Hier nochmal ein Bild aus dem Datenblatt. Mit Poti lässt sich das Ding exakt kalibrieren.


lm335datenblatt

In Bascom sieht das so aus:

'Getestet am 16.11.2014

$regfile = "m16def.dat"
$crystal = 16000000
$framesize = 16
$hwstack = 30
$swstack = 30
Dim Temperatur As Single
Dim Messwert As Word
Dim Kelvin As Single

Const Adc_multi = 0.4882812       ' = 5.0 / 1024.0*100 Kopfrechnen spart Code!
Const Correct = 273.15            'Konstante Für Umrechnung Kelvin Nach Celsius
Config Adc = Single , Prescaler = Auto , Reference = Avcc
Start Adc
'Hautprogramm '------------
Do
Messwert = Getadc(1)
Kelvin = Messwert * Adc_multi
Temperatur = Kelvin - Correct
Print
Print "ADC : " ; Messwert ; " Kelvin : " ; Kelvin ; " Celsius : " ; Fusing(temperatur , "#.##" )
Waitms 300
Loop


'------------------
'Ende Hauptprogramm

'------------------

End