Digitale Temperatur regelnde Lüftersteuerung mit einstellbaren Hysteresewerten

Hallo zusammen,

BOAH.... ich platz gleich! :mad:

Habe ich irgendwo etwas von X und Y und Temp_min und Temp_max geschrieben??? :cool:

Keine Panik, wir kommen da noch hin!
Ui ui ui ui ... :eek:
Erstmal muß die Funktion des Encoders grundsätzlich laufen.
Es bringt nichts wenn man vorher in irgendwelche Kleinigkeiten reingeht
ohne das die Basisfunktion steht. Also erstmal zusehen das das Programm
auch wie gewünscht reagiert wenn man am Gnöbbsche dreht ;) Wenn die
Basis läuft dann ergibt sich der Rest relativ schnell beinahe wie von selbst.

Gruß
Dino
 
okay also mein wunder schöner Atmega 8 läuft auf 1 MHz die Led wechselt im ca. 16,5 sek. tackt. Also muss ich ihm jetzt sagen hier alter du bist schneller :vroam: :) sry für die umgangssprache
 
Aber vor den Fuse bits hab ich ein bisschen schiss eine falsche Einstellung und ich kann mein Controller in die ewigen Schaltkreise schicken.oder ??
 
Hallo Knut !

Ist manchmal schon OK.... mit der Umgangssprache. ;)


Da ich jetzt gleich mal weg muss, möchte ich das Thema FUSES lieber später in Ruhe behandeln.

Zwischenzeitlich kannst du bei 1MHz den Timer0 mit Prescale = 8 betreiben.
Wenn du mal nachrechnest, dann kommen da auch 2,048ms bei raus. ;)


Bis später....
Cassio
 
okay das klappt auch alles gut nur springt z immer mit um hoch und runter zählen funtioniert wunder bar.
jetzt muss ich nur noch das mit dem Speeren hin bekommen hoffe das ich nicht wieder vorgreife
 
muss auch mitteilen das ich übers Wochenende wahrscheinlich wenig bis gar nicht arbeiten kann nur bitte nicht wunder wenn ich mich das Wochenende nicht melde hab ab morgen Berufsschule und daheim kann ich leider nicht so arbeiten wie in meinem Ausbildungsbetrieb deswegen war ich auch letzte Wochenende abwesend.
 
also hab jetzutn auch mal ein bilkd von meinen Fuse bits gemacht hoffe das klappt
 
okay das war ein satz mit x noch ein versuch
 

Anhänge

  • Unbenannt.PNG
    Unbenannt.PNG
    78,8 KB · Aufrufe: 21
Hallo Knut,

so lange bei den Fusebits bei KLA987 "Int. RC Osc." steht läuft dein
Atmel noch über den internen Oszillator und es kann nix schiefgehen. Nur erst
einmal von den anderen Fuses die Finger weglassen.

Wenn du von "Int. RC Osc. 1MHz" auf "Int. RC Osc. 8MHz" umstellst dann ist
das eigentlich auch schon alles. Bei der Startup-Time nehme ich eigentlich immer
die, die am größten ist. Dann hat die CPU nach einem Reset mehr Zeit zur
Verfügung um in die Hufe zu kommen ;)

Gruß
Dino
 
Hallo Knut!

Na prima.... das Auslesen der FUSES via BASCOm funktioniert bei dir! :)

Es ist schon so wie Dino es geschrieben hat.....
Du darfst NUR einen Int. RC Osc. auswählen, sonst ist er hinterher nicht mehr erreichbar.

Ich frage mich aber nun, warum sollen wir den AVR denn auf 8MHz umstellen? :hmmmm:
Ich sehe eigentlich keinen Grund dafür.

Letztlich ist er auch mit 1MHz schnell genug..... selbst wenn später noch deine ADC-Wandlung dazu kommt.

Momentan "langweilt" sich der AVR mit 1MHz schon genug. ;)


Ich würde daher sagen....
lass uns ruhig bei 1MHz bleiben.
Im Programm müsstest du dann aber:
Code:
$crystal = [B]1000000[/B]
einstellen!


Du kannst aber auch gern die FUSE KLA987 ändern.
Es bleibt dir überlassen!
Ich hatte HIER schon mal etwas dazu geschrieben.

Teil mir nur deine Entscheidung mit. ;)


Gruß,
Cassio
 
Gut er läuft noch hab jetzt alles auf 8 MHz um geändert


Hallo Knut!

OK... da war ICH wohl zu langsam! ;)

Prüf den Takt noch mal mit der LED... oder hast du das schon wieder entfernt?


Dann machen wir jetzt also bei 8MHz weiter.
Stell den Prescaler von Timer0 aber wieder auf 256!


Gruß,
Cassio
 
da wart ich dann wohl zulangsamm hab ihn jetzt wieder auf 1 MHz gestellt ich warte jetzt auf anweisungen bevor ich wieder was ändere
 
Hallo Knut!

Na, da das Umstellen so problemlos funktioniert....

Dann stell ihn mal wieder auf 8MHz... dann muss ich meinen nicht noch mal ändern. :p

Aber nicht übermütig werden und NUR diese eine FUSE verändern!


Gruß,
Cassio
 
Hallo Knut!

So, wir haben nun für das Menü alle wichtigen Einstellungen zusammen...

Systemtakt stimmt,
alle Ein- und Ausgänge sind definiert,
die ersten Variablen und Konstanten sind gesetzt,
das Programm hat eine Hauptarbeitsschleife,
zusätzlich gibt entsprechende Subroutinen,
es gibt eine Standardanzeige,
eine erste Menüanzeige gibt es auch schon und
einen Timer für den Drehencoder haben wir auch laufen.


Dann kann es ja nun eeeeeendlich mit der Menüwahl weiter gehen. ;)


Gruß,
Cassio
 
supper was ist zu tun ich brenne vor neugier
und sorry das ich manchmal ein bisschen schwere von begriff bin
 
Hallo Knut!

Natürlich führen viele Wege nach Rom.....
und es ist reine Geschmackssache, aber ich habe so ein Menü entworfen:

Wenn man während der Standardanzeige auf den Encoder drückt, gelangt man in das Einstellmenü.
Dies sieht bei mir so aus:
DSCF1169.JPG

Es wird der derzeitge obere und untere Schaltwert angezeigt.....
zusätzlich gibt es den Bereich "Abbrechen", dieser Menüpunkt ist auch standardmäßig angewählt.

Die Auswahl des nächsten Menüpunktes wird mit den Doppelpfeilen ">>" angezeigt.

Rechts drehen lässt die Pfeile von oben nach unten wandern....
ist er unten angekommen (also bei Abbrechen) erscheint er beim nächsten Rechtsdrehen wieder oben.
Beim links Drehen ist es genau umgekehrt.... also von unten nach oben.
DSCF1170.JPG DSCF1172.JPG

Ist das so OK für dich?
Sieht doch ganz nett aus. :)

Gruß,
Cassio
 
das ist sehr schön wie setzte ich das mit den Pfeilen um wenn Z = 1 dann Locate 2,1 : LCd ">>" richtig so ??
 
Also das klappt schon mal bei mir sieht dann so aus
Code:
Tempmax:
   If Y = 1 Then
   Z = 2
   Gosub Tempmin2
    End If                                                  

    Locate 2 , 1 : Lcd ">>"                                 ' wird vor genommen um vorhergehende Werte zu löschen

    Locate 3 , 1 : Lcd "  "                                

    Locate 4 , 1 : Lcd "  "

  If Taster = 0 Then


  Gosub Tempmax2                                            ' Gehe zur subroutine Ändere Maximum

  End If
 
Hallo Knut!

Jepp, der Ansatz ist richtig!

Ich habe auch gerade überlegt, wie ich dir das am Besten beibringe...... :hmmmm:

Da es sich hier aber um ein Forum handelt und wir nicht alles miteinander schriftlich diskutieren können, werde ich dir mal den Programmcode dafür geben. ;)
Ich mache soetwas nur ungern, aber....... es ist ja nur ein kleiner Teil vom Ganzen. :cool:




Schau ihn dir bitte in Ruhe an und versuch ihn zu verstehen.
Er sollte eigentlich ausreichend dokumentiert sein.....
Wenn du Fragen haben solltest, warum ich das Eine so und nicht anders gemacht habe, dann melde dich.







CodeBox bascom

'Sub für Taster-----------------------------------------------------------------
Menue:
Z = 3 'Pfeile auf Abbrechen vorgeben
Do

If Lcd_flag = 0 Then 'wurde das LCD schon mal aktualisiert?
Locate 1 , 1 : Lcd "Einstellmenue..."
Locate 2 , 1 : Lcd " Max-Wert " : Lcd Chr(0)
Locate 3 , 1 : Lcd " Min-Wert " : Lcd Chr(0)
Locate 4 , 1 : Lcd " zurueck... "
Lcd_flag = 1 'LCD wurde einmal aktualisiert
Bitwait Taster , Set 'warten ob der Taster losgelassen wurde
Else
End If


If Z > 3 Then Z = 1 'Z darf nicht größer 3 werden
If Z = 0 Then Z = 3 'Z darf nicht NULL sein


Select Case Z 'Z für Menüwahl auswerten
Case 1
Locate 2 , 1 : Lcd ">>" : Locate 3 , 1 : Lcd " " : Locate 4 , 1 : Lcd " "
If Taster = 0 Then Gosub Max_wert_set 'gehe zu Max_wert
Case 2
Locate 2 , 1 : Lcd " " : Locate 3 , 1 : Lcd ">>" : Locate 4 , 1 : Lcd " "
If Taster = 0 Then Gosub Min_wert_set 'gehe zu Min_wert
Case 3
Locate 2 , 1 : Lcd " " : Locate 3 , 1 : Lcd " " : Locate 4 , 1 : Lcd ">>"
If Taster = 0 Then Exit Do 'zurück zur Standardanzeige
End Select


Locate 2 , 13 : Lcd Max_temp 'aktuelle Max_temp anzeigen
Locate 3 , 13 : Lcd Min_temp 'aktuelle Min_temp anzeigen

Loop

Return




Grüße,
Cassio
 

Ü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)