Digitale Temperatur regelnde Lüftersteuerung mit einstellbaren Hysteresewerten

Mh kay.
also hier die ADC wandlung . isch weis ich kann auch Getadc benutzen als befehl aber so ist das auch für personen die nicht soviel damit zu tun haben ein leuchtender
Code:
Lb1 = Adcl                                                'Abfrage des Lowbits

  Hb1 = Adch

  Waitms 20                                                 'Abfrage des Highbits

  Hb1 = Hb1 And &B00000011                                  'Highbit mit 3 und verknüpfen um eventuele Störsignale ich ein zu Beziehen

  Hb1 = Hb1 * 256                                           'High bit * 256 um  1023 bit zu bekommen

  A = Lb1 + Hb1
                                                            'Variable A = Gesamt bit High- und Lowbit
  D = A * 100                                               'Umwandlung von A für die Berechnung der Temperatur

  Ye = D - C
                                                            'Bitwert der Temperatur - Offset
  Xe = Ye / B

  Udr = Xe

  Incr Curch

  If Curch < 1 Then Curch = 1


  Temp = Admux And &B11110000

  Admux = Temp Or Curch


  Lb2 = Adcl

  Hb2 = Adch                                                'Abfrage des Highbits

  Waitms 20

  Hb2 = Hb2 And &B00000011                                  'Highbit mit 3 und verknüpfen um eventuele Störsignale ich ein zu Beziehen

  Hb2 = Hb2 * 256                                           'High bit * 256 um  1023 bit zu bekommen

  G = Lb2 + Hb2



  H = G * 100

  I = H - C
                                               'Resultierenden Wert Y durch die Steigung B X= Temperatur
  J = I / B

  Udr = J
 
..aber so ist das auch für personen die nicht soviel damit zu tun haben ein leuchtender


Hallo Knut!

Welche Personen denn? :hmmmm:
Die User bei Mikrocontroller.net? ;)


Nun ja... bis Juni ist es ja noch lang.


Was sollte eigentlich dieser Satz bedeuten?
moin also nach reichlicher Überlegung und 2 Gesprächen mit dem Kunden und meinem Ausbilder

Was für ein Kunde überhaupt?
Es handelt sich hier um ein Schulprojekt, dass mit Sicherheit SO wie es zur Zeit ist bei keinem "Kunden" zum Einsatz kommen sollte bzw. darf..... sondern NUR auf dem Schul- oder Praktikumstisch!
Für einen realen Einsatz halte ich weder deine Software noch deinen Hardwareaufbau für verwendungsfähig!

Grüße,
Cassio
 
"Kunde" ist für eine Dauerprüflast für den Internen gebraucht.

verständlicher für die Prüfungskommission und leichter zu erklären.Da sind nämlich auch Personen dabei die gar nichts mit Elektronik Autun haben.
 
Tja und gerade weil die meisten temperaturabhängigen Widerstände nicht wirklich linear arbeiten und du noch mit Messverstärkung und Dergleichen zu tun bekommst, hast du da sowie noch eine Menge Theorie zu bewältigen.
nutze den LM 135. der ist sehr genau und auch lang genug Linienar so das ich ihn ohne Probleme nutzen kann. Hier die Gaphic über die Temperaturfehler.
 
gut ich bekomme auf der Arbeit nix mehr hoch geladen werde einen aktuellen Schaltplan und den teil des Datenblatts nachher daheim online stellen.
 
Hallo Knut!

Kein Thema... habe mir das Datenblatt vom LM135 inzwischen schon mal angesehen. ;)

Für deine Zwecke müsste es ausreichen.
Von +5°C bis +45°C sind es nur ca. 0,4°C..... das ist schon OK.
Allerdings hat mich der Preis ja fast vom Hocker gehauen.
Für das Geld bekommt man ja locker 2 Stück DS18B20. ;)
OK, das ist aber nicht das Thema....


Ich drück jedenfalls die Daumen, dass es klappt.


Grüße,
Cassio
 
So also das funzt alles soweit ganz gut Hysterese klappt und sonst auch alles. nur geht mir das erneuern der Temp. auf der LCD en bissi zu schnell das Flackert hin und her. hab es schon mit ner Timer Routine probiert und Prescale = 1024 verwendet ist aber immer noch zu schnell kann ich dem Timer irgend wie sagen das er sich erst nach 1 sec. erneuert?
ach sry das ich solange nix gepostet habe hab ein neues Board gebastelt und war die letzte Woche ans Bett gefesselt.
 
okay supper das hab ich jetzt hin bekommen sieht jetzt gleich viel schöner aus
jetzt hab ich nur mal ne andere frage wie bekomme ich es hin das meine LCD auch Negative Temperatur angibt könnte ja auch passieren, da der eine Tempfühler im Freien sitzt.
Wie Programmiere ich den Controller so das er ab dem bit wert 566 das er die zahlen negativ weiter zählt
 
Hallo Knut,

okay supper das hab ich jetzt hin bekommen sieht jetzt gleich viel schöner aus
jetzt hab ich nur mal ne andere frage wie bekomme ich es hin das meine LCD auch Negative Temperatur angibt könnte ja auch passieren, da der eine Tempfühler im Freien sitzt.
Wie Programmiere ich den Controller so das er ab dem bit wert 566 das er die zahlen negativ weiter zählt
zum 1. ... Das Sekundenweise anzeigen ... Der DS18x20 braucht sowieso vom
Start der Messung bis zum Zeitpunkt wenn man die Ergebnisse abholen darf
sowieso ne knappe Sekunde. Warum läßt du die Temperatur also nicht erst
erneuern wenn du ne gültige Messung hast ? Dann kannst du dir den ganzen
restlichen Firlefanz sparen.

zum 2. ... Die negativen Temperaturen ... sieh dir mal das Datenblatt des
DS18x20 an (ob jetzt DS18S20 oder DS18B20 ... egal) . Ich bin mir ziemlich
sicher das da ne Formel drinsteht und ne Methode beschrieben ist wie man
die ausgelesenen Werte in eine Temperatur wandelt. Egal ob positiv oder
negativ.

Nicht so kompliziert denken ... ;)
... und mal vernünftige Variablennamen einführen ... Die Namen aus dem
Beitrag #121 (A,B,C,D,E,F,G,H,I,J ...) werden dir bei längeren Programmen
bei der Fehlersuche ganz gewaltige Probleme bereiten. Die Namen mit dem
einem Buchstaben stammen noch aus der Zeit als man noch sehr wenig
Speicher zur Verfügung hatte (bei Interpretersprachen). Bei Compilern
gab es das Problem noch nie.

Gruß
Dino
 
zum 2. ... Die negativen Temperaturen ... sieh dir mal das Datenblatt des
DS18x20 an


Hallo Dino!

Warum sollte er das denn machen? :hmmmm:


Knut89 verwendet doch den LM135 am ADC! ;)


Nix für ungut. :)
Cassio
 
Danke für die antworten mein Projekt neigt sich dem ende zu habe das Gehäuse fertig und die Schaltung habe ich auch noch mal (komplett )neu gemacht. Jetzt Werde ich nur noch die Kinderkrankheiten ausmerzen eine Formel für die Negativen werte ist mir immer noch nicht eingefallen. ich weiß aber das bei meiner Rechnung die ich zu Bestimmung des Dezimal wertes mache das höchste Bit gesetzt wird und das der Controller das als eine Dezimalzahl sieht und diese ausgibt kann ich nicht mit einer if höchstes bit 1 dann setze ein Minus davor und gebe den wert richtig aus dachte vielleicht an eine und Verknüpfung EF h
 
Hallo Knut,

ich weiß aber das bei meiner Rechnung die ich zu Bestimmung des Dezimal wertes mache das höchste Bit gesetzt wird und das der Controller das als eine Dezimalzahl sieht und diese ausgibt kann ich nicht mit einer if höchstes bit 1 dann setze ein Minus davor und gebe den wert richtig aus dachte vielleicht an eine und Verknüpfung EF h
hast du schonmal an das Zweierkomplement gedacht ? Lies mal bei Wikipedia
nach was das ist.

Das Datenblatt vom LM135 hab ich mir jetzt noch nicht angesehen aber es
hört sich stark danach an.

EDIT ... Ach ja .. das Ding ist ja analog und am ADC ... ;) Vergiss also mein Geschreibsel ...

Gruß
Dino
 
.......kann ich nicht mit einer if höchstes bit 1 dann setze ein Minus davor und gebe den wert richtig aus ....

Hallo Knut!

Natürlich kannst du das machen!

Wenn deine Variable zum Beispiel "Temp_wert" ist und das höchste Bit (Bit 7) ist dann eine "1".....
dann kannst dies auch einzeln mit IF abfragen:

Code:
If Temp_wert.7 = 1 Then
.....
Else
End If

Letztlich kann das so aber zur Temperaturberechnung doch nicht wirklich richtig sein? :hmmmm:

Für genaueres müsste ich mir den kompletten Code noch mal ansehen.....
und dann auch erst wieder verinnernlichen. :rolleyes:


Grüße,
Cassio
 
EDIT ... Ach ja .. das Ding ist ja analog und am ADC ... ;) Vergiss also mein Geschreibsel ...
Welches denn?
Das mit dem Zweierkomplement hat mir mein Bruder gerade versucht mir zu erklären werd das am Mittwoch ausprobieren hab morgen eine Einstellungstest bei ABB des wegen hatte ich das Projekt auch ein bisschen schleifen lassen hoffe das das morgen gut geht will da unbedingt anfangen zu Studieren.
Ich melde mich bald als Möglich wieder und dann gibts auch ein Paar Fotos von meinem Gehäuse

Ich danke euch allen Noch mal viel mals für eure Unterstützung ohne euch wäre das voll in die Hose gegangen so bald ich fertig bin Stell ich alles Online dann können andere Bastler sich vielleicht ein Paar Anregungen holen.

gruß knut
 
....ich weiß aber das bei meiner Rechnung die ich zu Bestimmung des Dezimal wertes mache das höchste Bit gesetzt wird und das der Controller das als eine Dezimalzahl sieht.....


Hallo Knut !

Was ich vorhin noch vergessen habe....

Wie du dein Minuszeichen "erzeugen" kannst habe ich ja eben schon geschrieben.....
Nun musst du nur noch die anderen Bits (0-6) für deinen Dezimalwert nutzen.

Entweder machst du das rechenintensiv mit :
Temp_wert = Temp_wert - 128

oder du betrachtest einfach nach dem Ermitteln des Minuszeichens nur die ersten sechs Bits.
Code:
Temp_wert = Temp_wert AND &B0111_1111

Auf diese Weise hast du hinterher den Wert, ohne Bit.7 !


Grüße,
Cassio
 
okay kann ich nicht mit einem Nand die Zahlen ausm Binär system komplementieren oder gibts da einen eigenene Befehl? wenn ja im Help hab ich den nicht gefunden.
 
könnte aber auch den Offset nach unten Verschieben also anstatt auf null auf -40 grad und die Formel dahin gehen ändern das ich ab null grad - ° bekomme
 

Über uns

  • Makerconnect ist ein Forum, welches wir ausschließlich für einen Gedankenaustausch und als Diskussionsplattform für Interessierte bereitstellen, welche sich privat, durch das Studium oder beruflich mit Mikrocontroller- und Kleinstrechnersystemen beschäftigen wollen oder müssen ;-)
  • Dirk
  • Du bist noch kein Mitglied in unserer freundlichen Community? Werde Teil von uns und registriere dich in unserem Forum.
  •  Registriere dich

User Menu

 Kaffeezeit

  • Wir arbeiten hart daran sicherzustellen, dass unser Forum permanent online und schnell erreichbar ist, unsere Forensoftware auf dem aktuellsten Stand ist und der Server regelmäßig gewartet wird. Auch die Themen Datensicherheit und Datenschutz sind uns wichtig und hier sind wir auch ständig aktiv. Alles in allem, sorgen wir uns darum, dass alles Drumherum stimmt :-)

    Dir gefällt das Forum und unsere Arbeit und du möchtest uns unterstützen? Unterstütze uns durch deine Premium-Mitgliedschaft!
    Wir freuen uns auch über eine Spende für unsere Kaffeekasse :-)
    Vielen Dank! :ciao:


     Spende uns! (Paypal)