Hallo,
da ich nur Codes für mehrere Sensoren gefunden habe.
Diese gerade für Anfänger sehr unübersichtlich waren.
Und ich aber nur einen einzelnen gebraucht habe zum vergleichen, dachte ich mir ich stell das mal ein.
Mein Code sollte auch sehr gut Kommentiert sein das jeder es nachvollziehen kann.
Viel Spaß damit. Ich hoffe ich konnte helfen.
Alles anzeigen
da ich nur Codes für mehrere Sensoren gefunden habe.
Diese gerade für Anfänger sehr unübersichtlich waren.
Und ich aber nur einen einzelnen gebraucht habe zum vergleichen, dachte ich mir ich stell das mal ein.
Mein Code sollte auch sehr gut Kommentiert sein das jeder es nachvollziehen kann.
Viel Spaß damit. Ich hoffe ich konnte helfen.
BASCOM-Quellcode
- 'Programm zum Ansteuern des Arduino Uno mit DS18B20
- $regfile = "m328pdef.dat"
- $crystal = 16000000
- $hwstack = 100
- $swstack = 100
- $framesize = 100
- $baud = 9600 'Übertragungsgeschwindigkeit RS232; 115200 Baud 8,N,1
- '---------- DS18B20 -----------------------------------------------------
- 'Temperatur Messung:
- '1wire am
- 'DS18B20 ueber 4,7k Wiederstand an 5V VCC
- ' VCC--4,7k---|-----DS18B20-----GND
- '
- ' PC5
- '---------- Variablen DS18B02 -----------------------------------------------------
- Dim DS18B20(9) As Byte
- Dim Itemperature As Integer At DS18B20 Overlay 'enthält Temp. in 0.0625°C
- Dim TempD As Single
- '---------- DS18B02 --------------------------------------------------------
- Config 1wire = Portc.5 'achtung, externer Pullup 4k7 nach VCC 5V
- '---------- Hauptprogramm -----------------------------------------------------
- Print " ----- Temperatur Messung DS18B02 ----- " 'Ausgabe Seriell
- print "" 'hilfe zur lesbarkeit Monitor
- do 'Start Hauptprogramm
- 'print " ----- DS18B20 Messung -----"
- print ""
- Gosub TemperaturD_starten 'Unterprogramm Sensor Starten
- waitms 500
- Gosub TemperaturD_lesen 'Unterprogramm Sensor lesen
- waitms 500
- Gosub TemperaturD_ausgeben
- print " "
- print " ----- ENDE -----"
- print " "
- print " "
- Wait 2
- loop 'Ende Hauptprogramm
- '---------- Sub TemperaturD_starten -----------------------------------------------------
- TemperaturD_starten:
- 1wreset 'Initialisierung
- 1wwrite &HCC 'Skip ROM Kommando
- 1wwrite &H44 'Convert Temperature Kommando
- return
- '---------- Sub TemperaturD_lesen -----------------------------------------------------
- TemperaturD_lesen:
- 1wreset 'Initialisierung
- 1wwrite &HCC 'Rom überspringen, nur 1 Sensor
- 1wwrite &HBE 'Temperatur auslesen
- DS18B20(1) = 1wread(9) 'Daten in ein Array lesen
- return
- '---------- Sub TemperaturD_ausgeben -----------------------------------------------------
- TemperaturD_ausgeben:
- print " Temperatur vom DS18B20"
- Print ""
- wait 1
- TempD = Itemperature * 0.0625 'umrechnen des DS18B20 Wertes in Grad Celsius
- Print " " ; TempD 'Ausgabe Temperatur
- wait 1
- Print ""
- Print " -------------------------------------------------------"
- Print ""
- wait 1
- return