µC: ATmega8 (8 MHz) Compiler: aktuelle Version von WinAVR Programmer: AVR-ISP (von Atmel) Erfahrung: Anfänger Problem: Will einen dig. Temperatursensor an einen ATmega8 anschließen und den Temperaturwert auf einem 2x16 char LCD anzeigen. Das eigendliche Problem ist, dass es zwar mehrere Codesammlungen gibt, aber keine davon wirklich funktionieren will. z.B. http://mc-project.de/Pages/AVR/Programme/Programme.html http://www.mikrocontroller.net/attachment.php/84831/1wire.zip Ich bin schon am verzweifeln. Vielleicht gibt es ja hier jemanden, der schon mal in der gleichen Lage war und mir hoffendlich weiterhelfen kann.
Was genau funktioniert nicht? Die Ansteuerung der DS18x20? Oder das Display? Schreib mal genauer, wo es dich drückt... Gruß Elektrikser
schau mal hier http://www.siwawi.arubi.uni-kl.de/avr_projects/tempsensor/index.html damit hatte ich sie ausgelesen bekommen udn auf einem LCD angezeigt Gruss
Dann schau dir den Link von Jens an. Diese Ansteuerung funktioniert sehr gut.
So hab jetzt mit einem anderen Beispielprogramm versucht und entsprechend abgeändert. Allerdings bekomme ich bei 24°C Raumtemperatur (mit Thermometer gemessen) mit dem DS18B20 142°C angezeigt. Als Anhang hab ich mal die Dateien angehängt, mit denen ich zur Zeit arbeite.
So hab nun den Fehler selbst gefunden. Im Scatchpad wurde nur das erste Byte gelesen. In DS18B20.c muss folgendes geändert werden: unsigned char read_scratchpad (void) { --cut-- //for (i=0; i<9; i++) scratchpad [0] = read_byte (); scratchpad [1] = read_byte (); reset (); //terminate transfer (read 2bytes) --cut-- Und in Temp_LCD.c folgendes: --cut-- for (;;) { read_scratchpad (); temperature = (scratchpad [1] << 8) + scratchpad [0]; temperature *= 0.0625; //für 12bit itoa (temperature, buffer_temp, 10); lcd_gotoxy (5,0); lcd_puts (buffer); lcd_puts (" C"); } --cut--
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.