Forum: Mikrocontroller und Digitale Elektronik Temperatur & Feuchte Sensor DS1923-F5


von Markus F. (fedi75)


Lesenswert?

Hi Leute,
wer hat Erfahrung mit dem DS1923 ???
Ich schreibe meine Progs mit Bascom.
Ich habe meinen iButton am PortC.0 meines ATMega32.
Mit:

Rom_data(1) = 1wsearchfirst()
If Err = 1 Then
Ibutton = "iButton error"
Else
Ibutton = "iButton O.K."
End If

wird der iButton zwar gefunden, oder auch nicht, wenn ich ihn abstecke.

Die Abfrage des Family-Code und der Serial-number war bisher erfolglos.
Bitte um Hilfe

von D. S. (jasmin)


Lesenswert?

In der Bascom Hilfe und im sample Ordner gibt es genug fertige 
Programme.
Vom WEB ganz zu schweigen.

Das Zauberwort heißt also Drag and Drop ;-)

von Markus F. (fedi75)


Lesenswert?

Ja, schon, aber nicht für den DS1923!

Auch im Buch 'AVR Risc Microcontroller mit Bascom' ist u.A. der DS1920 
beschrieben.
Aber da es sich beim 1923'er nicht um einen Sensor, sondern um einen 
Logger mit 8kb Speicher handelt, vermute ich da den Fehler.
Ausserdem glaube ich, die Spannungsversorgen mit 'ParasitePower', eine 
weitere mögliche Ursache sein könnte. Trotzdem müsste ich aber den 
Family-Code und die SN auslesen können. Variablen bleiben aber leer!
Ich dachte halt nur, jemand hat so ein Teil am laufen, der mir ein wenig 
Source-Code in Basic zukommen lassen könnte.
Dann könnt ich bei mir besser auf Fehlersuche gehen!
Aber trotzdem ... merci

von Markus F. (fedi75)


Angehängte Dateien:

Lesenswert?

Ich hab mal meinen abgespeckten Source-Code angehängt.
Vielen Dank, für jeden der sich die Zeit nimmt, sich das mal 
anzuschauen.


$regfile = "m32def.dat"
$crystal = 16000000
$hwstack = 100
$swstack = 100
$framesize = 100
$baud = 9600




'----------------------------------------------------------------------- 
---
'Startvariablen setzen
'----------------------------------------------------------------------- 
---


Dim Rom_data(8) As Byte
Dim Ibutton As String * 13
Dim Family_code As Byte
Dim Serial_number(6) As Byte
Dim Crc As Byte

Dim X As Byte
Dim Xx As Byte


'----------------------------------------------------------------------- 
---
'LCD-Display Konfiguration
'----------------------------------------------------------------------- 
---

Lcd_db4 Alias Portb.4
Lcd_db5 Alias Portb.5
Lcd_db6 Alias Portb.6
Lcd_db7 Alias Portb.7

Lcd_e Alias Portc.1
Lcd_rs Alias Portc.2

Config Lcdpin = Pin , Db4 = Lcd_db4 , Db5 = Lcd_db5 , Db6 = Lcd_db6 , 
Db7 = Lcd_db7 , Rs = Lcd_rs , E = Lcd_e
Config Lcd = 20 * 4
Cursor Off
Cls

'----------------------------------------------------------------------- 
---
'iButton 1-Wire devices
'----------------------------------------------------------------------- 
---


Config 1wire = Portc.0

'----------------------------------------------------------------------- 
---
'Hauptschleife
'----------------------------------------------------------------------- 
---





Do

      1wreset

      Rom_data(1) = 1wsearchfirst()

      Wait 2

      If Err = 1 Then
         Ibutton = "iButton error"
      Else
         Ibutton = "iButton O.K. "
      End If

      Locate 1 , 1
      Lcd Ibutton
      Locate 2 , 1
      Lcd "SN :"

      Family_code = 1wread()

      For X = 1 To 6
         Serial_number(x) = 1wread()
         Xx = X * 2
         Xx = Xx + 3
         Locate 2 , Xx
         Lcd Hex(serial_number(x))
      Next

      Crc = 1wread()


      Locate 3 , 1
      Lcd "FC :" ; Hex(family_code)
      Locate 4 , 1
      Lcd "CRC:" ; Hex(crc)



Loop

End

' Ergebnis im LCD:


'----------------------------------------------------------------------- 
---
'iButton O.K.
'SN :000000000000
'FC :00
'CRC:00
'----------------------------------------------------------------------- 
---


'Der Family-Code sollte eigentlich 42 sein!

von Markus F. (fedi75)


Lesenswert?

Korrektur:

Der Family-Code des DS1923 sollte &H41 lauten

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.