Habe die Schaltung nachgebaut: http://www.dh2faa.de/ unter: Projekte Nr.22 Er zeit mir aber -1,5*C an. was soll ich da machen. Hab auch schon den 4,7K Widerstand ausgetauscht/verändert.
Sorgfältiger Nachbauen. Du hast einen Fehler drin. Sonst würde es funkttionieren. Was anderes kannst du nicht machen, wenn du zu 100% Copy&Paste machst, hast du von der ganzen Sache keine Ahnung. Also hilft nur möglichst genau alles zu kopieren. gruß cyblord
cyblord ---- schrieb: > Sorgfältiger Nachbauen. Du hast einen Fehler drin. Sonst würde es > funkttionieren. > > Was anderes kannst du nicht machen, wenn du zu 100% Copy&Paste machst, > hast du von der ganzen Sache keine Ahnung. Also hilft nur möglichst > genau alles zu kopieren. > > gruß cyblord Was soll ich da KOPIEREN?
Na zum Beispiel das hier
1 | '------------------------------------------------------ |
2 | ' |
3 | ' DS1820 für das pollin spiel 810148 |
4 | ' |
5 | ' DH2FAA 06.03.2011 |
6 | '------------------------------------------------------ |
7 | ' |
8 | ' |
9 | ' Ansicht von unten auf die Anschlüsse des DS18S20 |
10 | ' |
11 | ' GND DQ Vdd |
12 | ' ----------- |
13 | ' | 1 2 3 | |
14 | ' \ / |
15 | ' \_______/ |
16 | ' |
17 | ' |
18 | ' Beschaltung: |
19 | ' |
20 | ' Vdd an Spannung |
21 | ' Dq an Port B.5 ----------PB5 |
22 | ' GND an Masse |
23 | ' |
24 | ' zusätzlich einen Pullupwiderstand 4,7 K von Vdd an DQ legen |
Hast du deinen DS genau so angeschlossen?
Simon R. schrieb: > cyblord ---- schrieb: >> Sorgfältiger Nachbauen. Du hast einen Fehler drin. Sonst würde es >> funkttionieren. >> >> Was anderes kannst du nicht machen, wenn du zu 100% Copy&Paste machst, >> hast du von der ganzen Sache keine Ahnung. Also hilft nur möglichst >> genau alles zu kopieren. >> >> gruß cyblord > > Was soll ich da KOPIEREN? Na du hast doch NACHGEBAUT (=KOPIERT). Also und da ist irgendwo halt was falsch. Pindreher oder falsch angeschlossen oder sonst was. Wenn du alles 1:1 übernommen hättest, würde es ja wohl gehen. gruß cyblord
> Na du hast doch NACHGEBAUT (=KOPIERT). Also und da ist irgendwo halt was > falsch. Pindreher oder falsch angeschlossen oder sonst was. > Wenn du alles 1:1 übernommen hättest, würde es ja wohl gehen. > > gruß cyblord Ich gebe zu, das ich beim ersten mal den Sensor falsch herum (-/+) angeschlossen habe. Beim zweiten mal habe ich den aber mit einem neunen Sensor richtig herum angeschlossen...
Die Software sollte in der Lage sein, einen fehlenden Sensor oder eine kurzgeschlossene Sensorleitung festzustellen. Wenn nicht => Müll.
Hast du denn besagtes 'Pollin Spiel'? Hast du einen
1 | $regfile = "ATtiny2313.dat" |
im Einsatz oder ist das ein anderer µC?
Dieses Projekt bezieht sich offenbar hierauf: http://www.pollin.de/shop/dt/MTU4OTgxOTk-/Bausaetze_Module/Bausaetze/Bausatz_Pollin_Spiel_I.html
Karl Heinz Buchegger schrieb: > Hast du denn besagtes 'Pollin Spiel'? Ja, das habe ich. > Hast du einen$regfile = "ATtiny2313.dat" die .hex > im Einsatz oder ist das ein anderer µC? Nein, der besagte 2313 1: DS18... 2: SensorID0000 3: Wie Bild Alle Leitungen überprüft...
A. K. schrieb: > Dieses Projekt bezieht sich offenbar hierauf: > http://www.pollin.de/shop/dt/MTU4OTgxOTk-/Bausaetz... Genau
$regfile = "ATtiny2313.dat"
Lcd_db4 Alias Portb.0
Lcd_db5 Alias Portb.1
Lcd_db6 Alias Portb.2
Lcd_db7 Alias Portb.3
Lcd_e Alias Porta.0
Lcd_rs Alias Porta.1
Lcd_ein Alias Portd.6
Config Lcd_ein = Output
Lcd_kontrast Alias Portb.4
Config Lcd_kontrast = Output
Summer Alias Portd.5
Config Summer = Output
$framesize = 40
$swstack = 10
$hwstack = 32
$crystal = 8180000
Config Lcdmode = Port
Config Lcd = 16 * 2 , Chipset = Ks077
'LCD wird im 4-Bit-Modus betrieben
Config Lcdbus = 4
Config Lcdpin = Pin , Db4 = Lcd_db4 , Db5 = Lcd_db5 , Db6 = Lcd_db6 ,
Db7 = Lcd_db7 , E = Lcd_e , Rs = Lcd_rs
'1wire
Config 1wire = Portb.5 'use this
pin for 1wire
'-----------------------------
' const
'-----------------------------
Const Myversion1 = "-DS1820-"
Const Myversion2 = " V 0.2 "
'-----------------------------
' deklarationen
'-----------------------------
Declare Sub Init
Declare Sub Piep
Declare Sub Ausgabe_sensor_id
Declare Sub Convert_temperatur
Declare Sub Read_temperatur
Declare Sub Ausgabe_temperatur
'-----------------------------
' variablen
'-----------------------------
'temperatur
Dim Chex As String * 2
Dim I As Byte
Dim Tmp As Byte
Dim Stemperatur As String * 5
Dim Twert As Integer
Dim Halb As Byte
Dim 1w_id(8) As Byte ' ID
Dim Scratchpad(9) As Byte ' ScratchPad
'-----------------------------
' MAIN
'-----------------------------
Call Init
'Now search for the first device on the bus
1w_id(1) = 1wsearchfirst()
Call Piep
Call Ausgabe_sensor_id
Call Convert_temperatur
Call Read_temperatur
Cls
Enable Interrupts
'****************** HAUPTPROGRAMMSCHLEIFE
**********************************
'
Do
'Debounce Pind.0 , 1 , Key_t1 , Sub
Debounce Pind.1 , 1 , Key_t2 , Sub
'Debounce Pind.3 , 1 , Key_t3 , Sub
'Debounce Pind.4 , 1 , Key_t4 , Sub
Debounce Pind.2 , 1 , Key_ein , Sub
Call Convert_temperatur
Call Read_temperatur
Call Ausgabe_temperatur
Wait 1
Loop
End
'************* ENDE HAUPTPROGRAMM
******************************************
'Key_t1:
' Call Piep
'Return
Key_t2:
Call Ausgabe_sensor_id
Return
'Key_t3:
' Call
'Return
'Key_t4:
' Call
'Return
Key_ein:
Call Init
Return
'*****************************************************************
'-----------------------------
' func/subs
'-----------------------------
Sub Init
Set Lcd_ein
Set Lcd_kontrast
Initlcd
Cursor Off
Cls
Locate 1 , 1 : Lcd Myversion1
Locate 2 , 1 : Lcd Myversion2
Wait 5
Cls
Cursor Off
End Sub
Sub Piep
Sound Summer , 124 , 675 'H2(1/16)
End Sub
'-- ausgabe sensor_id
Sub Ausgabe_sensor_id
Locate 1 , 1 : Lcd "SensorID"
Locate 2 , 1:
For I = 1 To 8
Chex = Hex(1w_id(i))
Lcd Chex
Next
Wait 3
End Sub
'-- Ausgabe_temperatur
Sub Ausgabe_temperatur
Cls
Locate 1 , 1
Lcd "Temp. ="
Locate 2 , 1
Lcd Stemperatur
End Sub
'-- Convert_Temperatur
Sub Convert_temperatur
1wreset
1wwrite &H55 'Match Rom
1wwrite 1w_id(1) , 8 'DS1820 ID
senden
1wwrite &H44 'Convert
Temp
Waitms 500 'DS1820
500ms
'Waitms 750 'DS18S20
750ms
End Sub
'-- Read_temperatur
Sub Read_temperatur
1wreset
1wwrite &H55 'Match Rom
1wwrite 1w_id(1) , 8 'DS1820 ID
senden
1wwrite &HBE 'Read
Scratchpad
Scratchpad(1) = 1wread(9) 'Temp Wert
auslesen
'in den untersten bytes steht die temperatur in 1/2 Grad
Twert = Makeint(scratchpad(1) , Scratchpad(2) )
Halb = Twert And 1
'Temperatur durch 2 teilen
Shift Twert , Right , 1 , Signed
Stemperatur = Str(twert) + ","
If Halb = 1 Then
Stemperatur = Stemperatur + "5" + Chr(223)
Else
Stemperatur = Stemperatur + "0" + Chr(223)
End If
End Sub
Die Beschreibung im Datasheet ist etwas verwirrend, denn es gibt von den Sensoren 2 verschiedene Typen: DS18S20 und DS18B20 und beide werden darin erwähnt. Das Programm passt aber nur zum DS18S20.
Was für eine Sensor-ID wird denn angezeigt? 000000 steht für Fehler.
Ich habe den DS18S20 Es wird ID00000 wie im Bild angezeigt. Wenn ich den Sensor herausnehme zeigt er nach den -1,5*C 0*C an
Sensor-ID 00000000 bedeutet, dass der Sensor nicht erkannt wird. Was dann als Temperatur angezeigt wird ist schnuppe. Das Bitmuster 0b1111...1111 einer offenen Leitung wird aufgrund des bei negativen Werten fehlerhaften Programms als -1,5° angezeigt. "Korrekt" wäre -0,5°C.
Ich würde mal den Krokoklemmenkabeln nicht trauen. Miss doch mal mit einem Durchgangsprüfer nach, ob du direkt vom Pin B5 eine Verbdindung zum Datenpin des DS hast. Und bitte: rechne deine Bilder ein bischen runter. 2MB ist ein bischen heftig für ein Photo. Wir können sowieso nicht kontrollieren, ob deine Krokoklemme am richtigen Pin sitzt.
Karl Heinz Buchegger schrieb: > Ich würde mal den Krokoklemmenkabeln nicht trauen. > > Miss doch mal mit einem Durchgangsprüfer nach, ob du direkt vom Pin B5 > eine Verbdindung zum Datenpin des DS hast. Alle Verbindungen bestehen. Habs auch schon mit einer anderen Verbindungsart versucht.
Dietrich L. schrieb: > Simon R. schrieb: >> Der Sensor > > Mach mal einen Stützkondensator dran. Hab einen 4.7 uf drangehängt. Keine Veränderung.
>$crystal = 8180000 > >Das ist aber ein komischer Quarz;) Irgendwie springt Simon da ja nicht drauf an;) Woher weisst du das dein uC mit diesem Takt läuft? Hast du das gemessen? Mit falschem Takt läuft 1-Wire nicht. Ich vermute mal das ist dein Problem.
Auf der Platine ist kein Quarz. Was die Frage aufwirft, ob der AVR noch jungfräuliche Fuses hat - dann wären es 1MHz statt 8MHz. Wie hat das Programm denn seinen Weg in den Controller gefunden? Den Wert 8180000 hatte möglicherweise der Entwickler mal für die RC-Oszillator-Frequenz seines Exemplars bei offiziellen 8MHz nachgemessen. Wobei diese Feinheit hier nicht wichtig ist, also ob mit 8 oder 8,2. Bei realen 1MHz allerdings geht natürlich mit Einstellung 8MHz nix.
A. K. schrieb: > Wie hat das > Programm denn seinen Weg in den Controller gefunden? Mit einem ISP Programmer: http://www.ebay.de/itm/neu-USB-ISP-USBASP-Programmiergerat-Programmer-Atmel-AVR-ATMega-51-ATTiny/251308277493?rt=nc&_trksid=p2047675.m1851&_trkparms=aid%3D222002%26algo%3DSIC.FIT%26ao%3D1%26asc%3D287%26meid%3D83078496602345610%26pid%3D100005%26prg%3D1073%26rk%3D5%26rkt%3D5%26sd%3D221128128589%26 Un dem Programm "eXtreme Burner - AVR"
Ich hab ja keine Ahnung davon, aber sollte die Auskommentierung nicht genau andersrum sein für einen DS18S20, so wie er einen hat? Waitms 500 'DS1820 500ms 'Waitms 750 'DS18S20 750ms
>Sag mir bitte was ich ändern muss...
Die Low Fuse muss 0xE4 sein. CKDIV8 ist noch aktiv
und der uC läuft mit 1MHz.
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.




