LM75-Wert am Display anzeigen

Gast #187059
Lesenswert?

Hallo zusammen,

ich habe mal eine <include> - Datei mit CodeVision geschrieben, mit der
man den LM75 Temperatursensor am I2C-Bus auslesen kann und den Wert dann
direkt am Display anzeigen lässt. Na ja, ich weiß, da gibt’s ja sowieso
schon genug :o)

Man übergibt an eine Funktion die Adresse des gewünschten Chip und die
X/Y Position an der die Temperatur auf dem Display erscheinen soll.

Z.B. >> lm75_auf_lcd(0,6,1); <<

Somit erscheint auf der Display-Position (6,1)

z.B. < +19,5° > oder <  -2,0° >

Ich habe es versucht, so weit es ging, das Programm zu testen. Leider
habe ich die "bitterkalten" Tage in der letzten Zeit verschlafen :o(
g.
Also bis auf einige wenige Minusgerade, die die Gefriertruhe her gibt,
funktioniert es. Über 100° bin ich heute Abend auch nicht mehr
gekommen. Vielleicht hat jemand von euch da eine leichtere Anwendung
dies auszuprobieren.

Bei mir funktionierte es bis jetzt wie gesagt, nur weiß ich nicht ob
ich etwas in der Include- Datei vergessen habe und es nur deshalb ging
da ich noch andere Anwendungen in meinem Programm hatte.
Ich würde mich für Hinweise oder Verbesserungen sehr freuen.

Bis dahin.....

Grüße Marcel
Angehängte Dateien:
Gast #187061
Lesenswert?

"hat eigendlich schon mal jemand alle Treiber komplett selber
geschrieben?"

Ja, ich.


Ich benutze meistens die Pins, die mir am besten passen oder eine
andere Quarzfrequenz und sowas können die fertige Treiber nicht.

Hier mal ein LCD-Beispiel:

http://www.mikrocontroller.net/forum/read-4-22246.html#new


Und für den Temperatursensor:

http://www.mikrocontroller.net/forum/read-4-84831.html#new

Ich benutze nicht die I2C-Sensoren, da die größer sind und nicht
parallel schaltbar und nicht über 2 Drähte.


Peter
Gast #187062
Lesenswert?

Hmmm, ich bin erst neuling was das Programmieren betrifft. So weiß ich
nicht so genau was damit gemeint ist dass man immer nur Treiber von
anderen Herstellern benuzt. Aber ich bin mir ganz sicher, dass es mich
mehr Zeit kossten würde wenn man etwas selber schreiben würde und nicht
das nehmen würde was schon da ist. Wieso das Rad neu erfinden?? Und wenn
man wirklich zu viel Zeit hat und nicht weiß wohin damit dann kann man
das ja gerne machen :o)

Naja ich bin, wie gesagt, für verbesserungen total offen!!!

Gruß Marcel (",)
Gast #187063
Lesenswert?

Hallo zusammen,
ich habe einen kleinen Fehler in meinem Code entdeckt. Es fehlte die
<stdlib.h>! Das war's schon.

Da ich immer wieder Anfragen bekomme wie ein Programm mit der #include
<Lm75_anzeige.h> aussieht, habe ich mal ein Programm für den Mega8
"gepostet"

//=======================================================

#include <mega8.h>
#include <delay.h>
#include <Lm75_anzeige.h>

// Anschlussinitialisierung des I2C- Buses am PORT C
// SDA Pin 4
// SCL Pin 5
#asm
   .equ __i2c_port=0x15
   .equ __sda_bit=4
   .equ __scl_bit=5
#endasm
#include <i2c.h>

// 4x20 Zeilen-Display am PORT D
#asm
   .equ __lcd_port=0x12
#endasm
#include <lcd.h>

void main(void)
{

// Initialisierung des I2C- Buses
i2c_init();

// Initialisierung des LCD's
lcd_init(20);

while (1)
      {
       delay_ms(500);       // Pause von einer halben Sekunde
       lm75_auf_lcd(0, 4, 1);  // Temperatur des LM75-Sensors mit
               // der Adresse 0 auf die Position
               // (x=4/y=1) auf dem Display
      };
}

//=======================================================

Ich glaube das ist recht einfach zu verstehen!!!

Wichtig noch mal!! Die <Lm75_anzeige.h> muss in den richtigen Ordner
des Compilers kopiert werden!!!

Grüße, Marcel
Angehängte Dateien:

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren