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.