PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : 1200°C Abgastemperatur Thermoelement? Wie auslesen? Display.



Fighter-2
14.06.2007, 18:43
Hallöchen liebe Forumuser!

Ich bin neu hier und starte direkt mal ein neues Thema, was mir auf dem Herzen liegt! :P

Dann machen wir uns mal ans Eingemachte!

Ich habe einen Atmega8353, damit habe ich schon viele kleine Schaltungen mit Relais und LED's aufgebaut. Also bin ich kein richtiger "NEULING" auf dem AVR Bereich! ;)

Da ich viele Hobbys habe, wie Elektrik und Motorsport, kombiniere ich gerne alles, wenn es geht.

Ich bin im Besitzt eines Rennrollers, mit 18PS und ~ 130km/h spitze! Das hört sich nicht viel an, aber eigentlich hätte dieser nur 3PS und 50km/h! Also schon ein satter Unterschied. Keine Bange, kein Straßenroller mehr, nurnoch auf Veranstaltungen wird der bewegt.

Da der Motor sehr Leistungsstark ist, brauch dieser eine sehr genaue Abstimmung.

MIt einem Abgastemperaturmessgerät kann man die Motor sehr genau und leistungsstark abstimmen.

Es gibt zwar solche Messgeräte schon auf dem Markt, aber kosten an die 100€.... außerdem kann ich dann nicht sagen, das ich es selber gebastelt habe.

Ich habe mich schon etwas schlau gemacht.

Ich wollte mir einen Atmega32 besorgen und ein Thermoelement, das einen Temperaturbereich von -100°C bis +1000°C hat. Was völlig ausreichen würde.

Artikel Nummer bei Conard:

Mantelthermoelement: 120764-99


Die Thermoelemente erzeugen ja kleinst Spannungen habe ich mir sagen lassen. Kann ich diese mit dem Atmega32 genau auswerten? Ich meine es kommen bei den Abgaswerten nicht auf +/- 10°C an.


Und die Temperatur auf einen LCD Display ausgeben lassen? Zum Display habe ich später auch noch kleine detail Frage, aber erstmal zu meinem Messgerät.

Wenn das so funktionieren würde, wie ich es mir vorstelle, dann komme ich unter 30€ weg mit allen Komponenten. Das wäre echt mal was! ;)

Würde mich über eure Antworten und Unterstützung sehr freuen.

LG Christian

r.moshage
14.06.2007, 18:50
Schau dir mal den MAX6675 an.

Fighter-2
14.06.2007, 19:00
Ehm wenn ich doof frage ^^ was ist den das ? Wo finde ich das?

wkrug
14.06.2007, 19:14
Schau dir mal den MAX6675 an.
Ehm wenn ich doof frage ^^ was ist den das ? Wo finde ich das?

Das ist ein IC von der Firma Maxim http://www.maxim-ic.com .
Hab das Datenblatt noch nicht durchgearbeitet ist aber anscheinend ein Temperaturauswerte IC, an das direkt dein Temperatursensor angeschlossen werden kann.
Das Teil hat anscheinend auch einen A/D Wandler und eine Schnittstelle zum Microcontroller.

Der Link zum Datenblatt:
http://datasheets.maxim-ic.com/en/ds/MAX6675.pdf

Arbeite mal das Datenblatt durch ob Dir das Teil was hilft, nach der ersten Sichtung würd ich mal vorsichtig ja sagen.

Ein Problem dürfte nur wieder mal die Beschaffung des Teils geben.
Bei Conrad und Reichelt gibts das Teil auf jeden Fall nicht.

Fighter-2
14.06.2007, 19:21
Kann ich das Thermoelement nicht so an den Controller anschleißen?

An einen Analogeneingang?


Ehm meine Kenntniss sind noch im Ausbau..... A/D Wandler sagt mir nix. Und die Anleitung auch nichts, in den Tabellen steht nirgents 1024°C nur in der Überschrift.

Wollte schon gerne, das mir auch schon 1024°C angezeigt werden und keine 102,4°C oder so! ;)



LG Christian

jar
14.06.2007, 19:27
schlechter Tipp,

Typ K ist NiCr-Ni und auch das genannte IC geht mit K nur bis 1000° siehe Datenblatt, mit Typ J Eisen / Konstantan konnte ich schon vor 22 Jahren bis 1200° messen, aber dafür braucht man ein anderes IC, ich hatte mit dem AD594 gearbeitet, umschaltbar auf verschiedene Typ K, J usw. und einen OP zur Verstärkung hinterher und heute würde es direkt an den ADC des Atmels gehen, damals noch über einen 8-Bit ADC an den Prozessorbus

Fighter-2
14.06.2007, 19:32
Würde mich sehr freuen, wenn ihr genauer ins Detail gehen würdet!

wkrug
14.06.2007, 19:34
Kann ich das Thermoelement nicht so an den Controller anschleißen?
An einen Analogeneingang?
Im Prinzip schon, ein "Analogeingang" dürfte ja ein A/D Wandler sein.

Ich kenn jetzt das Thermoelement nicht so genau das Du verwenden willst.
Wenn es aber stark nichlinear ist und zusätzlich noch kleine Spannungen abgibt wird das mit dem A/D Wandler eines ATMEGA ein ziemliches Gefrickel werden bis es einigermassen genau läuft.

Da wäre ein zum Termoelement passendes Auswerte IC eine gute Lösung.

Für die A/D Wandler eines ATMEGA's wärs schön, wenn dein Sensor bei 1000°C so um die 2,5V Spannung abgeben würde. Sind es weniger als 1,5V solltest Du einen Verstärker Vorschalten. Das bedeutet aber auch ein zusätzliches IC.

jar
14.06.2007, 19:40
Kann ich das Thermoelement nicht so an den Controller anschleißen?

nö , na ja man kann, ist aber sinnfrei


An einen Analogeneingang?

immer noch nö , na ja man kann, ist aber sinnfrei


Ehm meine Kenntniss sind noch im Ausbau..... A/D Wandler sagt mir nix. Und die Anleitung auch nichts, in den Tabellen steht nirgents 1024°C nur in der Überschrift.

AD Wandler ist im Atmel drin , heisst ADC Analog Digital Converter

dummerweise liefern Thermoelemente nur eine Spannung wenn das eine Ende (die Messstelle) einenTempraturunterschied zum anderen Ende ( dem Anschluß) hat, wenn man nun noch die Temperatur am Anschluß weiss und dazuaddiert, Eispunktkompensation, dann hat man eine proportionale Spannung, nicht ganz linear zur Temperatur, deswegen,

Thermo -> Eispunktkomp -> Linearisierung -> ADC oder Atmel

wer es nicht so genau mag, baut einfach einen Tempfühler I2C in der Nähe vom Anschluß des Thermoelements auf, spart den Eispunkt, die Umgebungstemp einfach adieren, Linearisierung kann der Atmel machen, in Tabellenform, einfach ein geeichtes o.ä. mal mitlaufen lassen un zu einigen Temperaturen, die ADC Were aufschreiben und rückwärts innerhalb verschiedener Abschnitte eine Geradengleichung einbauen

if(ADC > 100 && ADC <200)
C= m1 * ADC + b (m1 =Steigung 1 im Bereich 100-200°)

if(ADC > 200 && ADC <300)
C= m2 * ADC + b (m2 =Steigung 1 im Bereich 100-200°)

usw, so mal als Beispiel

Fighter-2
14.06.2007, 19:42
Oder gibt es noch eine andere Möglichkeit so hohe Temperaturen zu messen?


@ jar

Wie würdest du das an meiner Stelle nun machen?

Oder was brauche ich noch?

jar
14.06.2007, 19:50
Oder gibt es noch eine andere Möglichkeit so hohe Temperaturen zu messen?


@ jar

Wie würdest du das an meiner Stelle nun machen?

Oder was brauche ich noch?

ich würde es nach kurzer Sichtung wie eben,wieder mit

Typ J und AD 594 machen, weil ich finde auf die schnelle nix leichteres

der Maxim kann nur Typ K, für J liefern sie nix, anderes hab ich auch nicht gefunden

Fighter-2
14.06.2007, 20:08
OK... ich finde leider kein passendes Element für meine Anwendung.

Und was ist dieser AD 594, kannst du mir das mal erklären??

Wie muss man damit umgehen und was macht das?


LG Christian

EDIT:

Ich habe mal eben geschaut, der Tempfühler brauch nicht viel mehr als 700°C aushalten.

jar
14.06.2007, 20:32
OK... ich finde leider kein passendes Element für meine Anwendung.
Und was ist dieser AD 594, kannst du mir das mal erklären??
Wie muss man damit umgehen und was macht das?
LG Christian
EDIT:
Ich habe mal eben geschaut, der Tempfühler brauch nicht viel mehr als 700°C aushalten.

dann reicht dir doch Typ K und das Maxim IC, Muster gibt es von Maxim kostenlos, braucht nur noch ein Thermoelement,

sonst eben Typ J und AD594, hier steht alles drin sogar mit Schaltplan, einfach Figure 1 nehmen, power single supply

http://www.analog.com/UploadedFiles/Data_Sheets/AD594_595.pdf

ist zwar english, aber nicht wirklich schwer zu verstehen, wenn man Elektronikerfahrung hat.....

Fighter-2
14.06.2007, 20:42
Also kann ich den IC von Maxim nachbauen?? Wo gibt es den sowas?

Muss ich den nicht einstellen??


Gibt es den AD594 so zu kaufen??


Ich hasse Englisch!! ;)

wkrug
14.06.2007, 23:25
Beide IC gibt es bei Digikey http://dkc1.digikey.com/de/digihome.html

Wobei der AD594 über 10,€ Kostet und der MAX 6675 nur in Stückzahlen ab 100 zu kriegen ist.

Pass bei Digikey nur mit den AGB's auf. Die schlagen bei den Versandkosten kräftig zu, ausserdem ist bei Bestellungen unter 100,€ ein "Minderzuschlag zu zahlen.

Aber immerhin beliefern die auch Privatkunden.

Den AD594 würdest Du auch bei Farnell http://www.farnellinone.de kriegen, aber der beliefert nur Geschäftskunden mit Gewerbeschein und Studenten.

Eine mögliche Bezugsquelle wäre noch Geist Elektronik, aber da musst Du per Mail anfragen http://www.geist-elektronik.de/

Eine Linkseite mit Elektronikversendern findest Du hier:
http://www.klaus-leidinger.de/mp/LinkPage.html

Ich hass das auch immer wenn man für eine Schaltung ein Bauteil braucht und dann erst wieder mal Stundenlang nach einem Händler suchen muss, der einem das Teil verkaufen mag.

bax
15.06.2007, 00:27
Ich hab mich für meine EGT-Anzeige für den MAX6675 entschieden, hab ihn kürzlich recht günstig bei ebay bekommen (ca. 12€ incl. Versand). Zur Zeit wird aber leider keiner angeboten. Ausschlaggebend war die einfache Versorgungsspannung von 5V, beim AD brauchte man glaube ich mehr, wenn man über 500 °C (oder waren es sogar K?) messen will. Und ich habe ein etwas größeres Vertrauen in die Meßwerte, wenn Du Dich im Grenzbereich der Motorhaltbarkeit bewegst sind +/- 10 ° doch schon ganz schön ungenau.
Beim MAX braucht man halt dafür einen schön spitz gefeilten Lötkolben.. (nur als SMD erhältlich)

Nun off-topic: für mich hab ich die Schmerzgrenze der Abgastemperatur bei 900°C festgelegt, ganz kurzzeitig gehen wohl auch noch 950°C.

Ich versuche mal noch, morgen ein paar Bilder zu machen.

greetz Rajko

Fighter-2
15.06.2007, 19:48
ok 10°c ist schon was heftig! geht das genauer?


Ich bin nun total ratlos, was ich wie machen soll! Das Problem ich verstehe auch so wenig! Es ist im Moment alles neu für mich beim Temperaturenbereich, habe noch nie mit Wandlern gearbeitet! :(


kann nur Portc.1 = 1 mehr nicht und Timer, If Abfragen und und, aber sowas wie mit Bits und mehr verstehe ich noch nicht.

Ich möchte auf jedenfall meinen Kenntnishorizont erweitern! ;)

Ich habe es bis jetzt so verstanden, das es zwei IC's gibt, die mit Thermoelementen umgehen können, die auch LINIARE Werte für den Atmega32 ausgeben.

Nun die Frage, welchen?? Den für TYP K oder J.

K wäre naürlich besser, weil es Thermoelemente gibt die bis 1000°C gehen. Natürlich wird die Messnung niemals so hoch gehen, bei 750°C ist die Grenze.

Aber bissel Spielraum muss ja da sein, auch damit das Element lange den Temperaturen standhält.

NUn mal was zu etwas anderem:

Da ich in meiner Ausbildung leider noch nicht bei den Messumformern angelangt bin, weiß ich NULL darüber. Ich weiß nur das es zwei Formen gibt.

Einmal 4...20mA und 0 - 10V, nun die Frage, wäre ja perfekt, noch einen Spannungsteiler erstellen und dann hat man was verwendbares.

Aber es darf nicht den Kostenrahmen sprängen, son Messumformer kostet mehr als 50€, deswegen wäre das keine gute Sache.

Aber es wäre ne gute Sache. Oder würde das nicht gehen?

Da bleibt ja quasi der MAX6675 übrig.

Jetzt stellt sich die Frage, wo bekomme ich den her? WEil ich habe schon bei Geistelektronik geschaut der IC incl Versand 28€ :(

Gibt es keinen hier, der einen abgeben kann? ;)

@ bax

was meintest du mit den Bildern? hast du so eine Schaltung schonmal gemacht??

r.moshage
15.06.2007, 21:23
Lese mal diesen Forenbeitrag:

http://www.elektor.de/default.aspx?tabid=29&forumid=2&postid=2718&view=topic

MFG

Ralf

wkrug
16.06.2007, 12:17
Ich bin nun total ratlos, was ich wie machen soll! Das Problem ich verstehe auch so wenig! Es ist im Moment alles neu für mich beim Temperaturenbereich, habe noch nie mit Wandlern gearbeitet
Das ist ja das schöne bei den MAX6675.
Du schaltest an den Eingang den passenden Sensor und kannst Dir die gewandelten Temperaturwerte über die SPI Schnittstelle direkt in deinen ATMEGA32 laden.
SPI heiss meines Wissens soviel wie Seriell Port Interface.
Guck mal ins Datenblatt deines ATMEGA32 da ist das auch erklärt.
Ein ATMEGA 32 hat SPI Hardwaremässig on Board.
Für dich heisst das, das Max IC mit 3 Leitungen mit dem ATMEGA32 verbinden und den MAX per Software richtig einzustellen und aus dem MAX6675 die Temperaturwerte, vom darin eingebauten A/D Wandler abholen - das wars.
Vieleicht hast Du ja Glück und bax überlässt Dir seinen Quellcode.
Welche externen Bauteile der MAX6675 noch braucht kannst Du aus dem Datenblatt dieses Bausteines entnehmen.

Fighter-2
16.06.2007, 14:09
Muss ich dann den MAX etxra progen oder geht das über den Atmega32? :)


Ja ich muss nun schauen, das ich den Max bekomme und ne richtige Sonde!


Hier

http://www.maxim-ic.com/parts.cfm/p/MAX667


WElchen soll ich den bitte nehmen? :)

THX

Fighter-2
16.06.2007, 16:22
Es hat sich nun erledigt! Danke trotzdem....

LG Christian

wkrug
16.06.2007, 17:44
Muss ich dann den MAX etxra progen oder geht das über den Atmega32?
Das geht über den ATMEGA32 !!

bax
17.06.2007, 17:53
Auch wenn es sich so wie es aussieht erledigt hat, hier noch die versprochenen Bilder. Wenn ich alle Funktionen so verwirklicht hab, wie ich mir das vorstelle, schreib ich bestimmt mal einen ausführlicheren Beitrag.
Codeschnipsel könnte ich posten, aber es ist alles in ASM programmiert und z.Zt. auf 5 AVR's verteilt...

greetz Rajko

Fighter-2
22.06.2007, 20:45
Danke für die Bilder! :)

Ich halte nun den Max6675 in meinen Händen! ;)

Ich habe mal eine Skizze von der Hardware gemacht!

Habe alles aus dem Datenblatt entnommen = http://datasheets.maxim-ic.com/en/ds/MAX6675.pdf

Würdet ihr mal drüber schauen, ob es so richtig wäre und was ich noch verbessern könnte??



http://img252.imageshack.us/img252/2721/hardwarelsungmax6675qk5.jpg




Achja, an welche Ports muss ich am Atmega32 belegen?




Da "BAX" im Moment nicht ONLINE ist, wollte ich euch was fragen!


Er hat ja auf seiner Platine mehrere Kondensatoren extra verbaut! Warum?


Und was ist das?

http://img50.imageshack.us/img50/5776/max66572zq9.jpg


Da ich morgen noch Besorgungen machen möchte, wollte ich gerne wissenm was ich noch benötige! ;)


LG Christian

bax
22.06.2007, 22:13
Hi,

na prima, wo hast Du den MAX bekommen?

Ich hatte anfangs nur den 100n Kerko als Abblockkondensator dran. Da ich die Versorgungsspannung über ein Stück Sammelkabel zu der 'Meßbox' gebracht habe, hab ich mir darüber Störungen eingefangen, die sich in springenden Meßergebnissen geäußert haben. Jetzt gehe ich mit den kommenden 5V auf einen 100uF, von da geht es über eine 10uH Spule zu einem 1uF Tantal-Kondensator und parallel dazu zum 100nF aufs VCC vom MAX.
Das schwarze Ding ist ein Jumper, mit dem ich die Verbindung zwischen Masse und - Meßeingang trennen kann, wollte ich zum experimentieren so haben.

Da Deine Schaltung für's Auto ist solltest Du den Spannungsregler etwas besser schützen. Hab mit der einfachen Variante schon schlechte Erfahrungen gemacht. Infos findest Du z.B. hier: http://www.dse-faq.elektronik-kompendium.de/dse-faq.htm#F.23

Für die Portpins gibt es zwei Varianten: entweder Du nutzt die eingebaute SPI-Hardware im mega32, hast etwas weniger Programmieraufwand, allerdings mußt Du Dir dann etwas für den Programmieranschluß einfallen lassen, weil er auch genau diese Ports benutzt. Allerdings ist das Auslesen des MAX so einfach, das Du auch beliebige andere Portpins benutzen kannst, und das Auslesen per Software steuerst. Es hängt natürlich noch viel davon ab, was der mega noch so machen soll, die Verteilung der Ports macht nur Sinn, wenn Du alle Funktionen zusammen hast und was Du dafür für Ports brauchst.

greetz Rajko

goara
22.06.2007, 22:45
thermoelemt is doof... da brauchst du immer eine vergleichstemperatur wenns genau sein soll...
nimm doch nen thermowiderstand zb nen PT100 den schliesst du dann einfach ueber ne brücke an nen operationsverstärker und das ganze dann an den analogen port...

bax
23.06.2007, 00:17
Thermoelement is garnicht doof wenn man den MAX6675 nimmt, weil der die Vergleichstemperatur intern selber mißt und ausgleicht. Außerdem hab ich noch keinen Widerstandsfühler gefunden, der über 800°C aushält.

greetz Rajko

Fighter-2
23.06.2007, 01:46
So ich hatte eben 2 mal angefangen nen Text zu schreiben! xD Aber jedesmal is der Router abgekackT! :D

Naja... zum Spannungsregler. Ich habe eine 12V Versorgung! Also über Batterie!

Ich habe keine Lichtmaschine mehr! Weil die Lichtmaschine, den Motor am schnelle hoch drehen hintert! Also eine Rotorzündung!

Also keine Spaunngsspitzen! Ich habe auch keinen Elektrostarter! Weil der eh die hohen Kompressionsdrücke nicht schaft! ;)

Und Relais habe ich immer mit einer Freilaufdiode gesichert! :)

Der Atmega32 soll nur die Temperatur auf einem Display ausgeben! Mehr nix! Außer maybe noch paar Portabfragen, aber mehr auch nicht! Dafür habe ich noch nen Atmega8553 ^^ der macht andere drecks Arbeiten! ;)

Also kann ich mir doch die einfache Lösung herrauspicken oder? Wie würde die aussehen? :)


ICh habe nun folgendes Thermoelement ausgesucht!

http://www.rsonline.de/ Artikelnummer: 397-1286

Datenblatt:

http://home.arcor.de/fighter-2/RS272517001.pdf

(RECHTSKLICK SPEICHERN)


Da das Thermoelement ja eine sehr lange Anschlussleitung hat, brauche ich ja keine Verlängerung oder eine "Messbox"!

Soll / Kann ich eigentlich die Leitungen kürzen, wenn ich zu viel habe?


Da ich die Schaltung von Kondensatoren schriftlich nicht verstanden habe, muss ich mir das mal skizzen ^^, oder du? :) Soll ich das auch machen? Weil ich habe keine Lust auf Störsingnale!? :)


LG Christian

Fighter-2
23.06.2007, 14:29
So ich habe nun ein richtiges Update! :)

Ich habe mir meinen Max6675 auf eine alte Trägerplatine gelötet!

Hier:

http://img523.imageshack.us/img523/549/max6675qn3.jpg

Sieht nicht schlecht aus oder? Außer oben rechts, hat sich eine Leiterbahn gelöst! Aber das ist ja der N.C, soll ich einfach frei lassen oder?



Ich habe mir auch, zur Störfilterung noch folgende Sachen gekauft:

- Kondensator 100uF

- Kondensator 100nF

- 10uH Spule

und den 1uF Kondensator habe ich vergessen! ](*,) ](*,)

Muss nun nurnoch eine kleine Skizze machen und dann bin fertig! :)

bax
23.06.2007, 14:58
Vielleicht ist es so etwas besser verständlich.



10uH
+5V ___ .-------------.
o---------UUU----------------|Vcc |
| + | + | | |
### ### --- | 6675 |
--- --- --- | |
100uF | 1uF | 100n| | |
| | | -|GND |
| | | | '-------------'
- - - -



Das Kabel am Thermoelement kannst Du kürzen wie Du willst. Allerdings darfst Du es nicht mit einfachen Kupferdrähten verlängern, da sich sonst Temperaturdifferenzen zwischen der Verbindungsstelle und dem MAX als Meßfehler auswirken. Also die zwei Drähte fürs Thermoelement, die du an die Platine gelötet hast nur ganz kurz lassen!!

greetz Rajko

Fighter-2
23.06.2007, 18:57
Danke!

Nun fehlt mir noch den 1uF ! xD DAnn kann ich das alles herstellen!

Wie sieht es mit Lüsterklemmen aus? Sind da dann nicht auch so Thermospannungen?

Die Drähtchen vom Chip werde ich extrem kürzen! Also sodass quasi die Lüsterklemme direkt am Max sitzt!

Dann gehts an progen!

Nun ist nur noch nicht geklärt welche Ports am Atmega nutzen soll! :)

Aber das wird noch! :)

Danke für die nette Hilfe!

LG Christian

wkrug
24.06.2007, 11:34
Nun ist nur noch nicht geklärt welche Ports am Atmega nutzen soll!
Also die Hardware SPI belegt die Ports MISO( 7 ) MOSI( 6 ) SCK( 8 ) und /SS ( 5 ).
Die würd ich dann auch sinnvollerweise verwenden.
Somit bist Du dann auch frei in der Wahl, ob Du die Hardware SPI oder eine selbstgeschriebene Software SPI verwenden willst.
Was mir irgendwo fehlt, ist der SI Eingang des MAX6675, oder kann man da keine Register setzen ?
Der ATMEGA 32 wird in diesem System als SPI Master arbeiten.
Die nötigen Infos stehen im Datenblatt deines MAX6675 und im Datenblatt des MEGA32 ab Seite 130.

Fighter-2
24.06.2007, 12:39
OK danke!

Ich habe mich auch schon erkundigt!

Wie sieht es eigentlich mit der 10 poligen PC-Stecker aus? Der ist doch auch mit dem SPI Port verbunden oder??

kann man die Paralel machen? Ohne Probleme? Stelle ich mir was schwer vor?

LG Christian

wkrug
24.06.2007, 18:54
Wie sieht es eigentlich mit der 10 poligen PC-Stecker aus? Der ist doch auch mit dem SPI Port verbunden oder??
Du meinst den MAX angeschlossen lassen und den AVR Programmieren ?
Das sollte eigentlich funktionieren, eine Garantie darauf mag ich aber nicht geben.
So lange der Widerstand an den Programmierpins des AVR > als 4,7k Ohm ist sollte die ISP Programmierung noch funktionieren.
Im Zweifelsfalle hilft hier nur ausprobieren.
Wenns nicht geht kannst Du ja immer noch einen Programmierjumper vorsehen, der die SO Leitung des MAX auftrennt. SCK und /CS sind Eingänge am MAX und sollten somit keine Probleme machen.

Wenn Du deine SPI Softwaremässig realisierst, kannst Du fast jeden beliebigen Pin des AVR benutzen.

Fighter-2
24.06.2007, 19:16
ISt aber wiederrum schwerer zu programmieren oder?

Fighter-2
05.07.2007, 18:55
So!

ICh bin noch nicht weiter!

Bin im Moment voll aus dem Konzept! Ich weiß nicht wie ich das ganze noch weiter anpacken soll!

HIer ich habe mal ne Zeichnung gemacht!

Ist das so ok? Oder soll ich noch was verbessern??

http://img524.imageshack.us/img524/2966/aufbauchiozq8.jpg

Ich bin immer noch nicht sicher, wo die Leitungen vom Maxi dran sollen!

Und wie ich die Daten verarbeiten solL! Könnt ihr helfen??

LG Chris

wkrug
05.07.2007, 20:03
ISt aber wiederrum schwerer zu programmieren oder?
Nö eigentlich nicht.

Du legst den Pin auf dem /CS liegt auf L.
Du legst das erste Bit deiner Daten auf SO
Du legst CLK auf H und gleich wieder auf L

Dann kommt das nächste Bit deiner Daten auf SO
Du legst CLK auf H und gleich wieder auf L

usw.

sind alle Daten eines Blocks übertragen wird /CS wieder auf H gelegt.

Das auslesen sollte genauso funktionieren, nur das dabei die Daten von SO bitweise in ein Register geschoben werden.

Diese Bitschieberei macht das SPI Interface auch nicht anders, nur halt in Hardware realisiert.

Wann welche Signale in welcher Reihenfolge auf die Pins gelegt werden müssen sollte im Datenblatt des MAX... stehen.

Ich dachte, Du übernimmst das Konzept von Bax und hab mich deshalb nicht mehr gemeldet.

wkrug
05.07.2007, 20:09
Sorry doppelpost

Fighter-2
06.07.2007, 00:09
danke!

Ich hoffe Bax meldet sich, wie er es angeschlossen hat! ;)

und wie er die datenauslesung aufgebaut hat!

Ich kannn mich erst am Sonntag wieder melden! ;)

LG Chris

bax
09.07.2007, 21:00
Hi Chris,

der wkrug hat doch schon sehr gut beschrieben, was Du machen mußt.

Da der MAX6675 allerdings nur Daten sendet, und sebst keine empfangen kann, ist die Programmierung noch einfacher.

Also, nochmal der Ablauf:

die drei Leitungen an beliebige freie Ports, die vom ISP würde ich persönlich nicht nehmen.

CS und SCK werden Ausgänge an Deinem mega32, den Port am SO definierst Du als Eingang.

Die Initialisierung von Deinem Programm schaltet dann erstmal CS auf H und SCK auf L.

Das Auslesen der Temperatur startest Du, indem Du CS auf L schaltest.
Anschließend schaltest Du SCK auf H. Am Port, an dem SO hängt, kannst Du nun das bit D15 einlesen. Ein Blick ins Datenblatt verrät Dir, das dieses bit immer als 0 gesendet wird. Also ignorierst Du das einfach, und schaltest SCK wieder auf L.
Da als nächstes die interssanten Datenbits kommen, wäre jetzt eine Schleife angebracht. Also wieder SCK auf H schalten, und SO einlesen. Dieses bit (D14) steht jetzt für den Wert 2^9, also 512. Ich denke mal, das Du in Basic programmieren solltest. Dann würde ich es so machen, das ich eine Variable nun mit diesem Wert addiere, wenn eben das bit eins ist.
Anschließend SCK wieder auf L. Und zurück zum Schleifenanfang. das nächste bit (D13) hat den Wert 2^8, also jetzt mußt Du 256 zu Deiner Variable addieren, wenn Du bei SO eine 1 eingelesen hast. So geht das weiter, bis Du bei bit D3 angekommen bist, das den Wert 0,25 darstellt.

Anschließend liest Du genauso noch die bits D2...D0 ein, wertest die aber (erstmal...) nicht aus.

Zum Schluß legst Du CS wieder auf H. Damit beginnt der MAX automatisch wieder damit, die nächste Messung durchzuführen.

Dein Programm hat jetzt Zeit, den Wert in Deiner Variable auszugeben, z.B. auf ein LCD. Dann solltest Du noch eine kleine Warteschleife einbauen. und dann beginnt das ganze Spiel von vorne. Vorher nicht vergessen, die Variable für den Wert wieder auf 0 setzen.

Ich lese den MAX ca. 3 x pro Sekunde aus. Wenn man den viel öfter ausliest kommen nur noch Nullen hab ich festgestellt, vermutlich passiert das, wenn man öfter ausliest als der interne Meßzyklus dauert. Die entsprechende Angabe hab ich im Datenblatt allerdings nicht gefunden.

So, nun aber los. Viel Erfolg!!

Fighter-2
11.07.2007, 03:20
Danke! :)

Ich schätze deinen Zeitaufwand, mir bei meinen Vorhaben zuhelfen! :) Ich bin richtig froh, hier Unterstüzung zubekommen! :)

Ich habe bis jetzt erstmal nicht viel verstanden, muss mich wahrscheinlich erstmal in Bitverarbeitungen einarbeiten!

Was mir noch nicht ganz klar ist, wie setzt sich den daraus die Temperatur zusammen?

LG Chris

higedigdag
19.02.2008, 17:26
Hallo Fighter!

Ist denn was brauchbares bei deinem Projekt zustande gekommen?
Bin gerade dabei eine Abgastemp.Anzeige fürs auto zu bauen.

Andy

Fighter-2
19.02.2008, 19:18
Nein mit dem Max667 is nihcts draus geworden!

Gammelt nun bei mir in ner Kiste ^^

Weill den euiner haben? :D :D

higedigdag
19.02.2008, 19:57
wieviel willst du dafür haben?

BASTIUniversal
20.02.2008, 14:38
Hi!
@higedigdag: Ich bin zufällig auch gerade dabei sowas zu entwerfen. Für einen Benziner wird die max. Temperatur von 1024°C des MAX vermutlich nicht reichen...beim Auto können schon mal 1100°C und mehr vorkommen (vor allem wenn es zu mager läuft).

Ich werde einen AD595 mit einem Typ K Thermoelement verwenden.

Und wenn wir schon dabei sind...hat von euch schon jemand ne Breitband Lambdasonde angesteuert? ;-)

MfG
Basti

higedigdag
20.02.2008, 14:41
ok für nen sauger ist es vielleicht noch zuwenig, aber bei nem turbo sollte es reichen... und nur da find ichs sinnvoll. wegen schäden an der turbine.

bei dem AD595 brauchst du aber ein spannung von 30V oder?

mfg andy

BASTIUniversal
20.02.2008, 16:54
Der AD595 gibt am Ausgang ein Analoges Signal mit 10mV/1°C ab, wobei die Versorgungsspannung mindestens 3V über der max. Ausgangsspannung liegen muss.
Für 1200°C braucht man also etwa 15V Eingangsspannung bzw. für 1000°C 13V.
Eine negative Spannung brauchst du nur, wenn du Temperaturen unter 0°C messen willst.

MfG
Basti

higedigdag
20.02.2008, 16:56
ah ok, und wie stellst du die 15V bereit? mit stepup regler?

BASTIUniversal
20.02.2008, 17:18
Ja, einfach nen billigen MC34063 in Step-Up Schaltung. Der AD595 braucht ja nicht viel Strom.

MfG
Basti

higedigdag
20.02.2008, 17:22
hmm da hab ich sogar noch einen da... meinste das funzt auch mit nem AD597 ?

BASTIUniversal
20.02.2008, 17:37
Ja, ein AD597 funktioniert genauso. Mit einem Typ K Element bis 1250°C.

MfG
Basti

higedigdag
20.02.2008, 17:39
ok, danke :)

da werd ich mir mal die datenblätter genauer ansehen.

kurze frage noch:
hast du mal versucht das drehzahlsignal vom auto auszuwerten?

BASTIUniversal
20.02.2008, 18:01
Nein, ein Drehzahlsignal hab ich noch nie an einem Auto ausgelesen. Ich hatte bis jetzt immer einen Drehzahlmesser mit an Bord.

Aber zu dem Thema dürfte es ziemlich viel Lesestoff in diesem und in anderen Foren geben.
Im Endeffekt kommt es immer drauf an, welche Signale du zur Verfügung hast. Bei einem Benziner kannst du direkt ein Zündkabel "anzapfen".

MfG
Basti

higedigdag
20.02.2008, 18:04
ja nen drehzahl messer hab ich auch ;) aber z.b. für schaltblitz wärs ganz cool.
ich hab solche zündspulen die direkt auf der kerze stecken... da gibts glaub keine zündkabel mehr...

BASTIUniversal
20.02.2008, 19:06
Hi!
Solche Kerzen hab ich auch...da kann man nix mehr selber dran machen (bzw. nur mit Spezialwerkzeug oder Schraubenzieher + Risiko).
Aber für deine Anwendung ist das vielleicht sogar ein kleiner Vorteil, denn du musst dann nicht mit Hochspannung arbeiten.
Die "Einzelfunken-Zündspulen" von VW bekommen z.B. ein 12V Signal und erzeugen dann einen Funken (ob nach High oder Low geschalten wird, weiß ich aber nicht).
Für dich heißt das dann im Endeffekt, über nen Hochohmigen Widerstand direkt an den AVR-Pin :-)

MfG
Basti

higedigdag
20.02.2008, 22:09
ja hab nen a3 1.8t
aber ich wollts schon so machen das man es auch in anderen autos verwenden kann...

könnte man nich auch den kurbelwellen oder nockenwellen sensor abgreifen? ich denk mal das die alle so ziemlich das selbe signal abgeben...

Fighter-2
20.02.2008, 23:03
Man könnte aber auch Schlitziniziatoren verwenden!

higedigdag
20.02.2008, 23:06
Was meinst du damit?
Die Nocken/Kurbelwellensensoren sind ganz normale Induktivesensoren.

Fighter-2
20.02.2008, 23:32
Wenn man eine SCheibe mit einem Schlitzanbringen könnte , dann könnt eman die Drehzahl auch mit einem Schlitzini. abgenommen werden! ;)

Aber auch die Induktiven sind eine Möglichkeit! ;)

higedigdag
20.02.2008, 23:33
Naja aber wozu noch was einbauen wenn eh schon alles vorhanden ist... ;)