Temperaturanzeige mit PIC18F14K22

In dieses Forum gehören all deine Fragen rund um die Elektrotechnik und im Speziellen zum Bereich der Mikrocontrollertechnik.

Re: Temperaturanzeige mit PIC18F14K22

#31

Ungelesener Beitrag picass » 23. Aug 2019, 18:26

Die Freude nach dem Erstellen der neuen Platine wich fix, weil es so auch nicht weiter ging. Zum notwendigen Erstellen und gleichzeitigem Abgleichen der vielen Tabellenwerte wurde ja eine vierstellige Anzeige benötigt. Die frisch erstellte hatte aber nur drei, die war ja auch schon für die Endversion der Anzeige der Temp-Werte von 20 bis 120 gedacht. Schwitz..., jetzt da wieder mit Fädeltechnik eine weitere Stelle realisieren....? Die reizenden Krähen hatten ja Platinen in Masse mitgeliefert, und so entstand eine weitere Anzeigenplatine, und nach ein paar kleinen Modifikationen auf der Hauptplatine zeigt die eine nun die Einer und Zehner an, die andere die Hunderter und den einen Tausender. Aber die Kombi war unzuverlässig, die Anzeige flackerte wild - nein, wieder keine auffälligen Schwingungen per Oszi zu sehen - , da passte gleich Mehreres nicht. Nach langdauerndem Durchkämmen des Programms ist nun endlich vernünftiger Betrieb möglich, wozu auch die weitere Reduzierung der Prog-Geschwindigkeit führte, eine Zeitschleife stellt das Prog nun auf ca. einen Durchlauf pro Sek.
Alles gut? Nein.... ich bemerke, dass ich dieser Arbeit müde werde. Der Zeitaufwand ist einfach zu groß, und vor allem wird es unumgänglich, dass andere, wichtige Arbeiten erledigt werden, als Beispiel die diesmal komplizierte Steuererklärung. Die Hardware steht, aber wenn ich das Prog nicht innerhalb der nächsten Zeit zu Ende bringe, dann winkt wieder die lange Bank......
Grüße, picass
Dateianhänge
doppeldecker.jpg

Re: Temperaturanzeige mit PIC18F14K22

#32

Ungelesener Beitrag picass » 24. Aug 2019, 12:02

Wieder ein Stück weiter: die "Wasserplanscherei" mit den beiden neuen Platinen hat Erfreuliches ergeben.
Geblieben bin ich bei meiner Stromquelle, dem temp-stabilisierten LM334, welcher 1,994 mA liefert. Da dran den Metall-Vorwiderstand mit 499 Ohm, als unteren Zweig den NTC-Sensor, und der PIC pict sich die Spannung zwischen den beiden raus. Genau genommen hatte ich eigentlich den Sensor vermessen, und dabei festgestellt, dass der sich widerstandsmäßig sehr genau direkt unterhalb seiner in der Hersteller-Tabelle als Maximun angegebenen Werte einsortiert. Getestet bei 20°, 25°, 30°, 40° und 50° C. Weil sich da auch im Ansatz keine Abweichung gegenüber der Tabelle ergab, wird jetzt beschlossen, dass alle weiteren benötigten Werte errechnet werden. Das muss und das wird passen. Damit geht nun eine Rechenorgie los, mal sehen, wieweit sich das mithilfe des programmierbaren HP41C erleichtern lässt.
Nach der Orgie verbleiben.....das Einhämmern der Werte, entweder in eine Tabelle im Programm, Platz wäre da wohl genug, oder ins EEProm. Danach das Umstellen von Hardware und dem Prog auf 3-stellige Zahlenausgabe. Klingt alles einfach, aber für mich liegen bei der Software immer irgendwelche Fallstricke aus. Für die Tabellen-Nutzung exisitert eine Lektion von Microchip für die oben schon genannte PicKit Low Demo-Platine. Aber die nutzen dadrin eine veraltete Syntax, und Dreckfehler in genau diesen Lektionen gibts auch. Es geht zwar tatsächlich irgendwie auf ein Ende zu, aber ob es ein gutes wird, ist noch offen, die Zeit rennt....
Grüße, picass

Re: Temperaturanzeige mit PIC18F14K22

#33

Ungelesener Beitrag vloki » 25. Aug 2019, 10:57

Ist mir echt ein Rätsel, was der Vorwiderstand bewirken soll, wenn du eine Stromquelle verwendest.

Das macht für mich nicht nur keinen Sinn, sondern bringt eine Ungenauigkeit mehr rein,
die bei einer ratiometrischen Messung weg fällt. (Versorgungssp. - Vorwiderstand - Sensor - GND; und fertig)

Das Messergebnis wird so von der Versorgung unabhängig und wird nur vom Verhältnis der Widerstände bestimmt.
Mit zusätzlicher Stromquelle wird das Ergebnis auch von dieser und der Referenz des ADC abhängig.

Re: Temperaturanzeige mit PIC18F14K22

#34

Ungelesener Beitrag picass » 26. Aug 2019, 08:56

Du hast recht. War gedanklich wie auch in der Praxis jeweils ein Schuss in den Ofen. Zudem hat die vormals zuverlässige Stromquelle nach der Umstellung auf Temp-Kompensierung schlapp gemacht und ist zu hochohmig geworden. Das waren jetzt 3 Tage Rückschritt. Einzig Erfreuliches war das Ausbuddeln der Programmierung des HP41C. Das Gerät ist ja wirklich alt, und vor allem durch die Kontakte der Folienkabel gefährdet, aber noch funkt sie. War schweineteuer, hat aber offenkundig eine irre gute Qualität, und das Handbuch dazu ist ein Muster für Anleitungen, wie sie sein könnten.
Heute baue ich um von S-Quelle auf Festsp.-Regler.
Grüße, picass

Re: Temperaturanzeige mit PIC18F14K22

#35

Ungelesener Beitrag picass » 26. Aug 2019, 09:28

Schade, Editieren klappte gerade nicht mehr, aber da ich gerade hier bin, hänge ich es doch noch an:
Mein "Labor-Shunt" von exakt 115,1 Ohm, mit welchem dem Pic eine Temp von 120° C vorgegaukelt wird.
Grüße, picass
Dateianhänge
Labor-Shunt.jpg

Re: Temperaturanzeige mit PIC18F14K22

#36

Ungelesener Beitrag picass » 26. Aug 2019, 18:28

Die 3 Rückschritte sind aufgeholt, und ggf. ist einer dazu gekommen: die Stromquelle ist Geschichte, als Regler regelt jetzt ein LT1521 und der ist mittels dreier SMD-R‘s auf berechnet 5,9 Volt für den Spannungsteiler mit dem 499 Ohm Vor-R und dem NTC-Sensor eingestellt. So sollte bei dem Einsatzpunkt von 20° C sich rechnerisch ein Bitwert direkt unterhalb von 1023 ergeben. Die tolle SMD-Brücke oberhalb des SO-8-IC-Gehäuses erbrachte dann doch 5,975 Volt. Bei 20°C hab' ich es noch nicht getestet, aber bei der Raumtemp von 22,6° C ergibt sich ein netter Wert von 989 bit, damit kann ich gut leben.
Am anderen Ende der Temp-Skala sollten sich mit den aktualisierten Werten rechnerisch 229 bit anzeigen lassen. In der hatten Wirklichkeit sind es 227 bit, aber „so what ?“.
Grüße, picass
Dateianhänge
smd brücke.jpg
reihe mit sensor.jpg
reihe mit labor-shunt.jpg

Re: Temperaturanzeige mit PIC18F14K22

#37

Ungelesener Beitrag vloki » 26. Aug 2019, 20:41

Wahnsinn, was du für einen Aufwand treibst, mit deinem Fimmel den 10 Bit Bereich möglichst gut auszuschöpfen ;-)

4-stellige Anzeige? Das hätte ich mir einfach im Debugger angeschaut, oder die "1" einfach imaginiert,
bzw. wenn es denn unbedingt sein muss mit einer LED dargestellt.
Jetzt eine extra Spannungsquelle mit 5,9V -> Extra Fehlerquelle (weil Messung nicht mehr ratiometrisch)

Re: Temperaturanzeige mit PIC18F14K22

#38

Ungelesener Beitrag picass » 27. Aug 2019, 09:38

Die Darstellung des Tausenders "imaginiert", hier mittels einer LED, kannst du in dem dritten Bild meines Beitrages vom 15.08. sehen.

Auch mit deinem Hinweis auf den Aufwand triffst du leider ins Schwarze, der Aufwand ist - vor allem zeitlich gesehen - schon abgefahren. Darüber grübel ich auch und komme zu dem Ergebnis, dass dies teils in einer meiner Eigenschaften liegt, und teils der Unsicherheit geschuldet ist, die denjenigen vollumfänglich umschlingt, welcher etwas zum Ersten Male macht. Da möchte man es eben auch gut machen.
Erst wenn man eine Materie weitgehend im Griff hat, und entsprechend über mehrere/viele Möglichkeiten/Techniken verfügt, ist man in der Lage, sich von den vielen Möglichkeiten für eine einfache zu entscheiden. So verstehe ich - zumindest teilweise - den Beruf des Ingenieurs: ein Projekt fertig zu stellen, ist nicht die Frage. Aber es mit einfachen und damit preiswerteren Mitteln zum sicheren Funktionieren zu bringen, das kann nicht jeder.
Deinen Hinweis auf die angeblich nicht mehr vorhandene ratiometrische Eigenschaft kann ich nicht/ noch nicht nachvollziehen. Was hat die Höhe der Versorgunsspannung für den Spannungsteiler damit zu tun? Nur dieser wird ja mit höherer Spannung versorgt, aber an der Auswertestelle, dem Eingangsbereich des Pics werden davon nur der Bereich zwischen 0 und 5 Volt abgegriffen. Da hat sich doch nichts verändert! Oder doch?
Grüße, picass

Re: Temperaturanzeige mit PIC18F14K22

#39

Ungelesener Beitrag vloki » 27. Aug 2019, 10:44

picass hat geschrieben:
27. Aug 2019, 09:38
Deinen Hinweis auf die angeblich nicht mehr vorhandene ratiometrische Eigenschaft kann ich nicht/ noch nicht nachvollziehen.
Der Witz bei der ratiometrischen Messung ist, dass der Einfluss von Versorgungsspannungsschwankungen eliminiert wird und nur noch das Verhältnis der Widerstände in das Messergebnis eingeht.
Schwankungen der einen Quelle wirken gleichermaßen auf den Spannungsteiler und die Referenz des ADC und bleiben so ohne Wirkung.
Bei zwei unterschiedlichen Quellen ist das natürlich nicht möglich!

Re: Temperaturanzeige mit PIC18F14K22

#40

Ungelesener Beitrag picass » 27. Aug 2019, 11:52

Danke, "vloki", für die Nachhilfe! Wenn man es weiß, ist es einfach (zu verstehen)!
Um Spannungsschwankungen hatte ich mir nicht nur Gedanken gemacht. Die frisch erstellte Spannungsquelle mit dem LT1521 hatte ich sofort einem Härtetest unterzogen, und die fast unbelastete Ausgangsspannung und dann diejenige mit dem Max-Strom ermittelt, wobei der Max-S die 120° C - Situtation abbildet, also Rvor=499 Ohm plus R-NTC mit ca. 110 Ohm. Also einen entsprechenden Widerstand dafür reingehängt, gemessen, dann einen nur halb so großen R reingehängt, gemessen und - Tusch - die Spannungsänderungen zwischen Fast-Garnicht und Max betrug genau 0,8 Millivolt! Und für diese Änderung ist mindestens eine Zeit von 15 Minuten anzusetzen.
Der PIC hängt zur Zeit noch am gleichen Strang wie auch die Versorgung für die 4 Siebensegment-Anzeigen, die ziehen etwa 50 mA. Wobei deren Schwankungen eher gering sind, auch wenn man bedenkt, dass nur die Zahl "1" eine geringe Zahl an Segmenten nutzt, alle anderen....
Aber je nach weiterem benötigten Aufwand verpasse ich dem PIC noch seinen eigenen LT1521.

Gerade hatte ich geplanscht und meinen HP41C um Rat gefragt. Die Temp-Messreihe umfasste die Temps von 20°, 30°, 40° und 50° C. Die Parameter der Rechnung waren dabei die aktualisierten Werte der Spannungen: 5,90 V des LT1521 - Nebenbei: jetzt passt die Berechnung exakt auf das Ergebnis der Praxis! - für den Spannungsteiler aus Rvor mit 499 O und halt den Werten für den NTC aus der Tabelle, jeweils nahe Maxwert-Spalte, also knapp unterm Max., und 4,94 Volt für die PIC-Versorgung:

Die an den 4 Punkten rechnerisch ermittelten Werte wichen um genau 1° C ab, die Rechenwerte waren jeweils alle um 1° C höher als die gemessenen.

Hm…. ein Schelm, der nun nicht auf die Idee verfiele, die Tabelle im PIC um genau dieses eine Grad zu schieben.
An „höheren“ Messpunkten habe ich nicht kontrolliert, und – ganz ehrlich – verspüre im Moment wenig Drang danach. Temperaturen auf den Punkt genau zu erzeugen, ist unter Verwendung von einfachen Haushaltsmitteln schon ein….. naja, halt Geplansche. Diese Temp dann aber auch noch wenigstens für 30 Sek stabil zu halten, ist oberhalb von 50° C nicht möglich, dafür braucht es größeren Aufwand.
Ich lass das jetzt mal einfach so stehen, und kümmere mich um die nächsten Baustellen: Wie bekomme ich die Werte in den PIC? Also Tabelle und EEprom als Stichworte, dann Umbau der Hardware und – ach ja – der Software. Und noch mal – ach ja: an diesen Aufwand mag ich im Moment nicht wirklich gerne denken.
Grüße, picass

Re: Temperaturanzeige mit PIC18F14K22

#41

Ungelesener Beitrag picass » 28. Aug 2019, 09:59

Von den verbleibenden 4 Hürden scheint eine genommen, das Erstellen der Tabelle. Ist noch nicht komplett ausgeführt, aber das Prinzip, rsp. der Testlauf mit 0 Werten klappte. Wobei es sich in diesem Fall um eine perverse T handelt, weniger anzüglich gesagt um eine pervertierte. Bei den handelsüblichen Ts kennt man die Nummer der Schublade, nicht aber deren Inhalt. Bei meiner ist es gerade andersrum, ich kenne den Inhalt der Schublade, und muss raus finden, welche Nummer diese hat, wo also sich der Inhalt passend einsortieren lässt.
Hat wieder Nerven gekostet, weil das Testprog aus Teilen von 3 vorigen anderen Progs zusammen gesetzt wurde. Is klar….. , immer wieder mit Flüchtigkeitsfehlern beim Kopieren, oder – wie zuletzt – mit Verblüffung, warum statt 907 nur 902 angezeigt wird. Räusper…. weil mal wieder beim Rumwuseln zwischen Hexadezimalsystem und unserem „Normalen“ ein „b“ als „6“ gelesen wurde.

Dann gabs noch so‘ne Überraschung wie diejenige, dass die supertolle Tabelle des Herstellers dieses NTCs nicht wirklich geraten ist. Die suggeriert ja mit ihren Werten, gerne mit Dezimalstelle, noch gerner auch mit 2 Dezimalstellen, hohe Präzision,…. komisch das! Gestern entstand ja der Gedanke, die Tabelle zu schieben, um das eine Grad auszugleichen. Ein paar Tastendrücke am HP41C weiter, und dann schien die Superlösung zum Greifen zu sein: Nicht diejenigen Werte nehmen, welche gemessen wurden und nahe den Max-Werten lagen, sondern aus der Tab die Min-Werte nehmen. Das Ergebnis entsprach dann bis auf ein oder zwei Bits immer den angezeigten Bitwerten des gestrigen Plansch-Kalibrier-Tests. Dabei würde auch das Interpolieren, rsp. spontane Auf- oder Abrunden der auszuwählenden Werte wegfallen, da ja nun nichts mehr zu Interpolieren wäre, und mithin alles exakt in die Hyperbolie passen müsste.

Nix! Das vorhandene Prog im HP41C wurde an die neue Formel angepasst, und generierte die endgültigen, tollen Bitwerte. Aber komisch: die Differenzen zwischen diesen Werten wollten nicht überall so was wie Regelmäßigkeit aufweisen. So kam es ausgerechnet in demjenigen Bereich des Kurvenverlaufs, in welchem wegen des Einfügens des 500 Ohm Vorwiderstandes die größte Gleichmäßigkeit herrschen müsste, zu diesen Differenzen zwischen den Bitwerten pro 1° C:
9,10,9,7,10 ! Und da gabs noch mehr solcher Abweichler!
Alle Parameter bei dieser Berechnung blieben gleich, bis auf den einzigen, der sich änderte, nämlich die aus der H-Tabelle entnommenen Min-Werte für den NTC. Am HP41C kann es nicht gelegen haben, der hat keine Probleme im Umgang mit Zahlen, oder dem automatischen Abarbeiten einer Formelberechnung, auch nicht mit Rundungen.

Die Tabelle ist Murks! Möglicherweise hat da jemand versucht, zwischen Werten zu interpolieren, und beim Versuch ist es geblieben.
Das führt dann schon zu sichtbaren Sprüngen im Verlauf der neuen Aufstellung. Da kam mir doch wieder der Anfang meines Bemühens in den Sinn, nämlich die Suche nach einer Formel, welche alle Werte exakt berechenbar machen könnte, und welche – die Formel – der Hersteller nicht raus rücken wollte „wegen Datenschutzes“!

Egal, da müssen wir jetzt durch. Heute wird die Fleißarbeit der Erstellung der noch verbliebenen Werte und dann die Apokalypse des Einhackens der 200 Werte in ein Programm in Angriff genommen. Gestern hatte ich schon rote, brennende Augen vom Starren in den zu hellen Bildschirm………….
Grüße, picass

Re: Temperaturanzeige mit PIC18F14K22

#42

Ungelesener Beitrag picass » 28. Aug 2019, 19:55

Die Apokalypse ist beendet, der Pic lädt sein EEProm und zeigt es auch wieder an: sämtliche 200 Bytes trudeln wie eingetippt auch wieder raus. Abgesehen von solchen Mühen des Alltäglichen, wie dem plötzlichen Erscheinen einer kalten Lötstelle, und – is klar – einem Tippfehler bei der Eingabe der Hex-Zahlen, und ähnlichem Klein-Murks, abgesehen davon lief es prächtig in beiden Boards.

Der nächste Fortschritt, das darauf aufbauende Prog, welches auf den Bestand des EEProms zugreift, ohne sich der Mühe des Neuprogrammierens zu unterziehen, war dann aber mal wieder doch kein Fort-, sondern ein Rückschritt. Es will einfach nichts anzeigen außer der Ausblendung der Einerstelle und Nullen auf Zehner- und Hunderter-Stelle. Wiederholt! Dabei hatte ich aus dem erfolgreichen Prog mit dem zunächst EEProm-Beschreiben und dann anzeigen nur das Beschreiben rausgenommen. Ich schwör‘s! Sonst null-komma-null Änderungen. Wiederholt!
Daraus kann ich nur schließen, dass meine frühere Frage, ob man denn einen PIC nach dem Eintrag ins EEProm nochmal und schadfrei programmieren könnte, seine Antwort gefunden hat:
Das EEProm wird doch gelöscht.

Mist, flixter, schon wieder ein Stolperstein, warum sollte es auch mal einfach gehen!!!
Grüße, picass

Re: Temperaturanzeige mit PIC18F14K22

#43

Ungelesener Beitrag picass » 29. Aug 2019, 18:59

Konnte heute nur wenig tun, war aushäusig, dennoch zwei kleine Schritte weiter. Weil das EEProm bei Neuprogrammierung gelöscht wird, blieb nur der Ausweg, das Füllen des EEProms im Prog zu erhalten, und irgendwie einen Schalter anzubringen, welcher nach der Erst-Beschreiben das Immer-Wieder-Neu-B. verhindert. Da war schon mal von der Belegung eines Ports die Rede, um den z.B. mittels Jumper oder Widerstand um zu marken.
Heute habe ich erstmals den Debugger in Betrieb genommen, vormals immer nur den Simulator…… ist so, muss ich durch, durch diesen Teil der Wahrheit. Der hat mir dann die richtige Adresse für diesen Schalter vermittelt, den ich nicht per Hardware, sondern im Prog installiert habe: Abfrage des Inhalts einer EEProm-Adresse. Und das fluppt nun, nach dem Aus- u. Widereinschalten verzichtet der PIC auf Neuprogrammierung und liest nur wacker die Bits durch.
Grüße, picass

Re: Temperaturanzeige mit PIC18F14K22

#44

Ungelesener Beitrag picass » 31. Aug 2019, 12:48

Es läuft die vorletzte Etappe, und die ist weit holpriger als befürchtet: das „End“-Prog wurde erstellt, indem aus den drei Teilprogs – in jedem wurde etwas Spezielles erprobt – die jeweilige Essenz entnommen wurde, und nun halt zusammengefügt wird. Is klar…... Anpassungen von Variablen, Doppelbenennungen, das Übliche….
Leider doch nicht nur das Übliche, denn nachdem ich zum Entwanzen den Debugger entdeckt hatte, bereitet dessen Unzuverlässigkeit nun Sorgen, mal will er, meist aber nicht. Es ist schon ärgerlich, dass im Single-Step-Verfahren der Aufbau der Variablen in deren Fenster mehrere Sekunden braucht und danach erst der nächste Schritt eingegeben und ausgeführt werden kann. Aber leider ist das Biest unzuverlässig. Mal lässt er sich auf den Platz des Cursors setzen, um von dort gezielt ein Programmteil testen zu können, meist gibt es aber gleich Fehlermeldungen wie: „invalid command respone: sent 0x61 / received 0x71“. An Arbeit ist so nicht zu denken, es vergehen irre Wartezeiten, Neustarts, und wieder klappt das mit dem Programmsprung im Debugger nicht……
Die Mplab Ide-Version ist die aktuelle – 5.25 - , kann es daran liegen?
Dabei scheint die Umstellung von 4-stelliger auf 3-stellige Anzeige geklappt zu haben. Es wird zwar nicht "das Richtige" angezeigt, aber irgendwie sinnvoll ist das dennoch, und stimmt auch mit dem Inhalt von Variablen überein, viel kann "eigentlich" nicht fehlen.......
Grüße, picass

Re: Temperaturanzeige mit PIC18F14K22

#45

Ungelesener Beitrag picass » 2. Sep 2019, 18:25

Ich dreh' am Rad! Es sieht irgendwie so aus, als ob die Anzeige funktionieren würde??!!
Glauben mag ich das nicht......, nach 4 Jahren immer neuer Anläufe, jetzt der vierte, und immer wieder Versagungserlebnisse. Noch heute Mittag hatte ich überlegt, anstelle des nun hier stehenden Textes einzugeben:"ich schaffe es nicht, geb's auf, immer, wenn ich die einzeln funktionierenden Programmteile zusammenfüge, bricht alles zusammen, kein Überblick möglich".

Und seit 15 min zeigt das Biest mit seiner neuen, dreistelligen Anzeige Zahlen an, die irgendwie sinnvoll sind!
Ich schaue in diese schreckliche Tabelle, suche mir zu einer Temperatur den zugewiesenen Widerstand aus, hänge den an den Messeingang der Platine, und die zeigt dann die ausgewählte Temp an!

Ich glaube es trotzdem nicht! Die Schinderei war zu gross, als dass ich das einfach jetzt als Realität aufnehmen könnte!
Melde mich morgen oder später wieder, ob ich heute da was geträumt hatte.
Mit runden Augen, und nix verstehen, picass

Antworten