Forum: Projekte & Code LM75-Wert am Display anzeigen


von Marcel (Gast)


Angehängte Dateien:

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

von Michael K. (Gast)


Lesenswert?

hat eigendlich schon mal jemand alle Treiber komplett selber
geschrieben? Irgendwie benutzen alle nur Treiber vom Hersteller des
Compilers! Wie Uncool!

von peter dannegger (Gast)


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

von Marcel (Gast)


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 (",)

von Marcel (Gast)


Angehängte Dateien:

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

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.