Gemeinschaftsentwicklung: T4Forums-PWM-Modul

Bitte bei Problemen mit dem Forum das Endgerät und Version angeben!
  • So, es gibt neues Futter.

    Angenommen man kann die Climatronic mit einem MOSFET mit größerem RDSon und entsprechend größerer Last als Modell für das Gebläsesteuergerät austricksen, hab ich mal ein hoffentlich passendes Schaltbild zum Layout hinzugefügt. Als Transistor habe ich entweder den BS170 oder den BS108 hier liegen. Für den Prototypen (Ich habe mir eine kleine Ätzmanufaktur in einer Garage eingerichtet) versuche ich morgen mal eine Platine zu machen - meine Ausschussrate ist derzeit aber ziemlich hoch.

    Die Software müsste eigentlich fertig sein und alles können, was man braucht. Zumindest sind alle TODO:'s weg. :D So richtig merkt man das dann eh erst, wenn eine bestückte Platine vor einem liegt. Der Anschlussplan für die Climatronic-Version hat sich auch nochmal geändert und damit werden beide Versionen nichtmehr mit unterschiedlichen Haupt-Transistoren bestückt und der Verkabelungsaufwand reduziert sich ebenfalls deutlich - leider jedoch nicht auf Null.

  • Platinen sind was geworden, aber mein Lötkolben ist zu schwach für die großen Kupferflächen. :wacko:

    Edit: Anschlussplan für Nicht-Climatronic

  • Auf Anfrage:
    Hinteres Warmluftgebläse mit laufendem Motor.
    Also rotblau (Steuerltg) gegen braun Masse:
    Aus 0,1V
    1.Stufe 2,37V
    2.Stufe 2,40V
    3. Stufe 2,45V
    4.Stufe 2,51V
    5. Stufe 2,588V
    6. Stufe 2,96V
    7.Stufe 6,2V


    Rotbraun gegen Braun (Masse)
    aus 13,77V
    1.Stufe 10,72V
    2.Stufe 9,6V
    3.Stufe 8,2V
    4.Stufe 6,6V
    5.Stufe 4,9V
    6.Stufe 2,96V
    7.Stufe 0,26V

    Bitte sehr.

  • Hallo,

    das Modul läuft, bis auf das Speichern und Lesen der Lernwerte und der Simulation für die Gebläseüberwachung durch die Climatronic (bei letzterem fehlt noch ein Loch in der Platine, was ich vergessen hatte und bis jetzt hatte ich noch keine Lust zu bohren).

    Ich habe auch mal die Bauteileliste bei einem Elektronik-Versand eingegeben und komme auf folgende Bauteilewerte:

    8o
    Wobei die Farben rot und grün für das kleine Display nur 3,15€ statt 8,70€ (also insgesamt 21,15€) und für das Große 6,65€ statt 17,25€ (insgesamt 32,20€) wären.

    Die Kosten für die Platine hängt dann von deren Anzahl ab.

    Viele Grüße Robert
    477632.png


    Vorsicht!
    Dieser Beitrag kann Spuren von Ironie, Sarkasmus, satirischen Äußerungen und weiteren rhetorischen Figuren enthalten.

    Einmal editiert, zuletzt von RobertP (18. August 2012 um 00:21)

  • Hallo,

    das Modul macht inzwischen das was es soll.

    Bilder:
    1. Versuchsaufbau mit Modul, Schalter für die Stufen, Poti (mit Schalter) zum einstellen/Programmieren, Last (PC-Lüfter), Schalter für KL15 (rot) und Poti für die Climatronic.
    2. Das Modul und seine Ein- und Ausgänge.
    3. In Betrieb (Lüfter dreht sich) :hurra:
    4. Display zeigt Stufe 0 (Gebläse aus - über Schalter eingestellt)
    5. Standheizungsbetrieb (Einschalttemperatur nicht erreicht -> Gebläse aus und Lüfter dreht nicht).

  • Mehr Bilder:
    1. Stufe 0
    2. Stufe 1
    3. Stufe 2
    4. Stufe 3
    5. Programmierung der Einschalttemperatur im SH-Betrieb

    Achso: Der PC-Lüfter läuft erst bei einem Tastverhältnis von etwa 60% an, daher die hohen Werte. Für ein gewöhliches Gebläse, wie sie im T4 verbaut sind reicht deutlich weniger. ;)

  • Noch ein paar Bilder:

    1. Programmieren der Stufe (hier ist gerade Stufe 0 ausgewählt, die lässt sich aber nicht programmieren).
    2. Programmierung der PWM-Frequenz
    Edit:
    3. Dieses Mal ein blau beleuchtetes Display. Wenn die Spannung am Modul unter 11,5V geht, schaltet das Modul das Gebläse ab und zeigt auf dem Display den Fehler. Gleiches gilt für den Fall, dass die Transistoren zu heiß werden.
    Edit2:
    Die aktuelle Software im Anhang. Das Layout hat sich fast überhaupt kein bisschen verändert, also lade ich nix Neues dazu hoch. ;)

  • Mensch... massig Feedback hier....

    zum Prototyp:

    • Kabelbaum wickeln: fertig
    • Display einbauen: fertig
    • Kabelbaum im Bus anpassen: fertig
    • Temperatursensor verbauen: nicht fertig
    • Modul testen: nicht fertig


    In bälde werde ich dann einen Climatronic-Tester brauchen.

    Edit: Die Climatronic ist auch fertig und scheint 100%ig zu funtionieren (mit Poti am Climatronic Eingang). Wie man das programmieren muss, bin ich mir aber noch nicht ganz sicher. Und inzwischen fährt auch der Lüfter langsam an.

    Viele Grüße Robert
    477632.png


    Vorsicht!
    Dieser Beitrag kann Spuren von Ironie, Sarkasmus, satirischen Äußerungen und weiteren rhetorischen Figuren enthalten.

    2 Mal editiert, zuletzt von RobertP (24. August 2012 um 15:12)

  • Der erste 'richtige' Test hat begonnen. Ich habe das Modul eingebaut und den Temperatursensor an den Rücklauf vom zweiten Wärmetauscher angebracht. Funktioniert erstmal soweit ganz gut, es gibt aber noch ein paar Probleme:

    • Das Display ist viel zu hell - da müssen nur die Vorwiderstände der Beleuchtung angepasst werden.
    • Wenn das Gebläse nicht mit 100% läuft (oder ganz aus ist), zappeln die Werte für die Spannung und die Temperaturen 'übelst'.
    • Die Fet's werden ziemlich heiß im geschlossenen Gehäuse -> Löcher zur belüftung helfen
    • Temperaturkurve der Sensoren stimmt noch nicht zu 100% (weicht bei ca 85Grad um 10 grad ab).

    Dennoch ist der Test als Erfolg zu werten. Hier sind mal ein paar Bilder:

    • Das Display und das Poti sind in der Syncro-Konsole unterhalb der Mittelkonsole untergebracht.
    • Der Strang zum Schalter für die Gebläsestufen muss aufgetrennt werden, da der :D die passenden Gegenstücke nicht im Programm hat.
    • Das Modul passt stramm oberhalb der Relais hinter der Mittelkonsole zwischen deren Träger und das Handschuhfach.


    Die roten 'Knöppe' sind für die Programmierung (PWM-Stufe, Frequenz und Einschalttemperatur) und der Schwarze für ein Reset, falls sich das Modul mal aufhängt oder so.

    UdoZ: @B.Rude: Wie kann ich wirkungsvoll das PWM-Signal aus meinen Eingängen rausfiltern?

  • Hi,

    Zitat

    •Das Display ist viel zu hell

    über PWM dimmen, der Atmel hat mehr als einen PWM Ausgang

    Zitat

    Wie kann ich wirkungsvoll das PWM-Signal aus meinen Eingangen rausfiltern?

    Filter berechnen (Spule + Kondensator) als "applikative Lösung oder Tiefpass via "software" programieren. Im Zuheizersteuergerät nehm ich zum "alten" Wert nur einen Teil des neuen Wertes und mittel. Für mich ein ganz guter Kompromiss zwischen "Speicherplatz" und Nutzen.

    Beispiel: spannung1 = (29*spannung1+6*adc(4))>>5; (hier ist noch der externe "Spannungsteiler" mit drin, soll nur das Prinzip verdeutlichen, die Summe die sich ergibt sollte 2^x entsprechen damit Du schieben kannst statt zu teilen).

    wobei ich den ADC nur alle 500 ms auslese. Über die ISR zähle ich einen Zähler hoch so das ich nur zu definierten Zeitpunkten den ADC auslese und dann über die verschiedenen Werte mittel. Liesst Du zu oft aus brauchst Du irre viel Speicher um die Werte zu dämpfen.

    Gruß Frank

    2 Mal editiert, zuletzt von B.Rude (30. August 2012 um 13:55)

  • Tiefpass ist in der Software schon drin. Wenn ich aber mit meiner Messung gerade einen Peak treffe, nützt mir der SW-Tiefpass nichts. Aber weniger oft messen ist einen Versuch wert. Danke.

    Viele Grüße Robert
    477632.png


    Vorsicht!
    Dieser Beitrag kann Spuren von Ironie, Sarkasmus, satirischen Äußerungen und weiteren rhetorischen Figuren enthalten.

  • Hi,

    Du kannst mal mit dem Verhältnis spielen (3 Teile "alt + 1 Teil)/4 neu oder (7 Teile "alt" und 1 Teil "neu")/8 wobei man hier auf "Rundungsfehler" achten muss. Wenn man es übertreibt rundet sich zuviel aus dem neuen Messwert.

    Gruß Frank

  • Derzeit ist es so:

    Code
    for(i=1; i<5;i++){//read all adc channels
    		old_adc_value[i] = adc_value[i];
    		uint16_t temp = (adc_value[i]<<FILTER_VALUE) - adc_value[i];
    		temp += read_adc(i);
    		adc_value[i] = temp>>FILTER_VALUE;
    	}


    wobei

    Code
    #define FILTER_VALUE 1 //must be between 0 and 6

    wird um 7 bits geschoben, läuft der Wert über :D

    Viele Grüße Robert
    477632.png


    Vorsicht!
    Dieser Beitrag kann Spuren von Ironie, Sarkasmus, satirischen Äußerungen und weiteren rhetorischen Figuren enthalten.

    Einmal editiert, zuletzt von RobertP (30. August 2012 um 14:19)

  • Hi,

    wenn Du eine ISR (Interrupt Service routine) hast kannst Du in der ISR einen Zähler hochzählen und so nach einer definierten zeit den ADC auslesen. Die Werte dann filtern und dann auf das Display. Die jetzige Routine holt sich die ADC Werte direkt nacheinander so Du keine wirkliche Bedämpfung des Wertes hast, sondern einen Mittlewert über einen kurzen Zeitraum.

    Gruß Frank

  • über PWM dimmen, der Atmel hat mehr als einen PWM Ausgang


    Die Displaybeleuchtung hängt direkt an KL58b - ist auch genau so gewollt, schließlich soll die Beleuchtung mit über die Fahrzeugeigene PWM gedimmt werden. ALLE Pins des Atmega168 sind belegt. ;)

    Viele Grüße Robert
    477632.png


    Vorsicht!
    Dieser Beitrag kann Spuren von Ironie, Sarkasmus, satirischen Äußerungen und weiteren rhetorischen Figuren enthalten.

  • Hi,

    Zitat

    hängt direkt an KL58b - ist auch genau so gewollt, schließlich soll die Beleuchtung mit über die Fahrzeugeigene PWM gedimmt werden

    bei mir hängt 58b (neben Zündung) an einem "Eingang" und ich mache via PWM eine sanfte Helligkeitsänderung der Displaybeleuchtung wenn Zündung an ist und z.B. das Licht eingeschaltet wird. Das Display was ich nutze kann man ohne eingeschalteter Hintergrundbeleuchtung nicht ablesen. Wenn man keine Pins mehr hat ... dann halt über einen Widerstand.

    Gruß Frank