Erfahrungen und kleine Verbesserungen sowie Tricks

Zieht man nur kurz und läßt los, fährt der Heber durch
Das ist die Funktionsweise bei einem normalen Standardmodul. Daher sind weiter oben die Überlegungen mittels Arduino, Atmega oder PIC. Da könnte dann ein Parameter für eine bestimmte Strecke hinterlegt werden.
 
Irgendwie scheint der Taster für das Fahrerfenster etwas anders zu sein als für die übrigen Fenster. Er scheint zwei Taststufen zu haben, also auch zwei Kontakte. Dadurch kann differenziert werden, ob das Fenster nur ein Stück oder gleich ganz gehoben/gesenkt wird.
 
Dann versuche mal bitte, damit eine genaue Position zu erreichen, wie sie zum Beispiel bei der Nutzung von Windabweisern vorgegeben wird.

Ist ja nicht so, dass der Duster mein erstes Auto mit Windabweisern ist, und daher weiß ganz gut, was ein Komfort-Modul für Möglichkeiten hat. Die 2cm offen, sind auch mit "halten und loslassen" nicht zu erreichen und aus dem geschlossen Zustand erst recht nicht. Wie du schon geschrieben hast, einmal antippen und ganz offen ;)

Nicht ohne Grund, kann ich persönlich auf ein normales Komfort-Modul gut und gerne verzichten. Ein Modul mit festen Positionen oder Schritten, wäre hingegen recht nützlich!
Jedem Menschen recht getan, ist eine Kunst die keiner kann...
 
  • Themenstarter Themenstarter
  • #79
Habe jetzt die Fenstersteuerung fertig. Habe jetzt noch weniger Haare.

Ich konnte die Fragen vorher erst beantworten, nachdem es funktioniert hat sorry.

Kurzes antippen, fährt kpl. hoch oder runter.

Etwas längerer Druck, fährt etwa immer 2 bis 3cm. Kann ja jeder im Programm selber einstellen. (Die Frage war vor kurzem ob man auf 10cm fahren kann, da kann man mit doppeltem tipp arbeiten, siehe Header Onebutton, dann hätte man 3 Möglichkeiten.) Schaltet in kpl. Fahrt nach 4 Sekunden ab, egal an welcher position man etwas länger Tippt.

Wurde für Duster Gen. 2 linke Seite mit nur zwei Tastern gemacht. Deal Version. Rechte Seite ist mir wurscht.

Einschränkung, hat keinen Einklemmschutz, und wie es mit der Garantie ist, muss jeder selber entscheiden. Es geht hier darum dass man es selber machen kann.

Ich habe ein Bild des Schaltplanes und eines des Programmes, mit Arduino Uno Nachbau oder eben eigener Platine. Folgende Dinge beachten, Bootloader bei extra Platine vorher nicht vergessen, Header siehe Text Programm nicht vergessen abändern.

Layout bekommt ihr nicht, habe zu viele Fehler reingemacht, und es dann pragmatisch abgeändert. Alles in Schrumpfschlauch gepackt. Kabelsatz aus einem alten Autoradiostecker gemacht, wollte nichts abzwicken, oder anklemmen, man muss es nur dazwischen stecken. Dicke Kabel verwenden.

Habe ein Elli Echo Relais genommen (20A), hatte ich zufällig in der Schublade, gibt es glaube ich nicht mehr.

Ist nur für Leute die gerne basteln, finanziell rechnet es sich wohl kaum, es geht um das Erfolgserlebnis, für diejenigen die es brauchen.

Alles ohne Gewähr. Bei mir funktioniert es prima.



Hier der Code:



// Dank an alle aus dem Internet von denen ich die Programmschnipsel her habe

// Ohne Gewähr, Achtung hat keine Einklemmerkennung, wenn nicht vorhanden nicht verwenden.


IMG_20210803_143626.jpgFenster.gif


//-----------------Achtung------------------------- Onebutton.h noch anpassen

// und zwar dies Zeile in: unsigned int _pressTicks = 300; // number of msecs before a long button press is detected--- ursprünglich wars 800

//Programm könnte noch erweitert werden, mit der Doppelclick Funktion, z.B. dann fahre 10cm runter





#include "OneButton.h" // oder mit < > schreiben, je nachdem wo die Datei sich befindet



// Setup a new OneButton on pin A1. //A1 Knopf ist für Runter

OneButton button1(A1, true);

// Setup a new OneButton on pin A2. //A2 Knopf ist für hoch

OneButton button2(A2, true);





const int HOCH = 0; //vorher 2 je nachdem welche Pins verwendet werden sollen

const int RUNTER = 1; //vorher 3





void setup() {



pinMode(HOCH, OUTPUT);

pinMode(RUNTER, OUTPUT);





// link the button 1 functions.

button1.attachClick(click1);

// button1.attachDoubleClick(doubleclick1);

button1.attachLongPressStart(longPressStart1);





// link the button 2 functions.

button2.attachClick(click2);

// button2.attachDoubleClick(doubleclick2);

button2.attachLongPressStart(longPressStart2);





} // setup





// main code here, to run repeatedly:

void loop() {

// keep watching the push buttons:

button1.tick();

button2.tick();



// You can implement other code in here or just wait a while

delay(5); //Hier war ursprünglich 10

} // loop





// ----- button 1 callback functions



// This function will be called when the button1 was pressed 1 time (and no 2. button press followed).

void click1() {

Serial.println("Button 1 click."); // Ist Taste A1 runter gedrückt



if (digitalRead(A2)== HIGH ){ // und Taste A2 (hoch) nicht gedrückt (Also hier ist nicht gedrückt HIGH),

digitalWrite(RUNTER, HIGH); // dann runter

delay (320);} //ursprünglich 320 wie lange der kurze Druck fährt

digitalWrite(RUNTER, LOW); // runter beenden





} // click1





// This function will be called once, when the button1 is pressed for a long time.





void longPressStart1() {



for (int zaehler=1; zaehler<=100; zaehler = zaehler+1){



Serial.println("Button 1 longPress start"); //Ist Taste A1 Runter gedrückt





if (digitalRead(A2)== HIGH){ // und hoch Taste A2 nicht gedrückt (nicht gedrückt ist high)

digitalWrite(RUNTER, HIGH); // dann fährt er runter hier länger

delay (38); //hier war 40 Fast 4 Sekunden bis abgeschaltet

digitalWrite(RUNTER, LOW); } // wenn Zeit vorüber runter beenden

else zaehler = 100; // Durchläufe ursprünglich 100



//digitalWrite(RUNTER, LOW);

}

delay (200);

}



void click2() {



Serial.println("Button 2 click."); // Ist Taste hoch A2 gedrückt



if (digitalRead(A1)== HIGH){ // und Taste A1 (runter) nicht gedrückt (Also hier ist nicht gedrückt HIGH),

digitalWrite(HOCH, HIGH); // dann hoch

delay (320);} // wie lange der kurze Druck fährt

digitalWrite(HOCH, LOW); // hoch beenden



} // click2





void longPressStart2() {



for (int zaehler=1; zaehler<=100; zaehler = zaehler+1){



Serial.println("Button 2 longPress start"); //Ist Taste A2 (hoch)gedrückt



if (digitalRead(A1)== HIGH){ // und runter Taste A1 nicht gedrückt (nicht gedrückt ist high)

digitalWrite(HOCH, HIGH); // dann fährt er hoch hier länger

delay (38); //hier war 40 Fast 4 Sekunden bis abgeschaltet

digitalWrite(HOCH, LOW); } // wenn Zeit vorüber hoch beenden

else zaehler = 100; // Durchläufe ursprünglich 100

//digitalWrite(HOCH, LOW);

}

delay (200);



} // longPressStart2





// End




//Viel Spass
 
  • Themenstarter Themenstarter
  • #80
Ich hatte hier vor kurzem gefragt, wie man eine Dashcam an das vorher beschriebene Radio anschliessen muss, dass ein Video aufgenommen wird. Dies geht nicht mit den vielen gelben Videokabeln am Gerät, sondern nur über USB, ich habe es mit einer Mobius Kamera zum Laufen gebracht. Aber es startet nicht automatisch wenn man das Auto startet, da hat wohl die Software des Radios einen Bug, aber es geht wenn man die Dashcam App später startet. Das ist mir zu mühseelig, deswegen werde ich es nicht verwenden, wollte nur wissen ob es geht.
 
Zuletzt bearbeitet:
@Tom6666 wenn für Dich ok würde ich den Programmcode etwas umbauen. Aufbau der Schaltung würde ich mit einem Zweier Relais und Arduino Nano machen. Dann kann es jeder der möchte besser nachbauen. Was ich ausprobieren möchte ist die Zeit für eine komplette Fensterfahrt und dann die jeweilige Position ins Eprom zu schreiben. Dadurch kann der Arduino eine Teilöffnung des Fensters besser steuern und wenn die jeweilige Endposition erreicht ist automatisch abschalten. Entprellen des Tasters werde ich über Software realisieren.
Welchen Stecker hattest du verwendet um das als Plug-In Lösung zu bauen?
 
  • Themenstarter Themenstarter
  • #82
@Tom6666 wenn für Dich ok würde ich den Programmcode etwas umbauen. Aufbau der Schaltung würde ich mit einem Zweier Relais und Arduino Nano machen. Dann kann es jeder der möchte besser nachbauen. Was ich ausprobieren möchte ist die Zeit für eine komplette Fensterfahrt und dann die jeweilige Position ins Eprom zu schreiben. Dadurch kann der Arduino eine Teilöffnung des Fensters besser steuern und wenn die jeweilige Endposition erreicht ist automatisch abschalten. Entprellen des Tasters werde ich über Software realisieren.
Welchen Stecker hattest du verwendet um das als Plug-In Lösung zu bauen?
Natürlich kannst du es Softwaremässig umbauen, aber das zusätzliche entprellen kannst du dir sparen, ist schon in der onebutton. h realisiert. Ich meine sogar einstellbar, siehe Githubseite, der Programmierer, mit Erklärung. Bei mir funktionierts prima. Die Buchse des Kabelsatzes ist von einem alten Kabelsatz eines Autoradios, DIN, Den Stecker habe ich mir selber gegossen, passende Stifte in die Buchse, dann abgeklebt, dann ausgegossen mit Epoxydspezial (Flüssigmetall, ist nichtleitend, heisst nur so) . Wieder abgezogen und Gegenstück ist fertig. Habe da schon Übung mit. Aber ich denke wer nicht die Möglickeiten hat, einzelne Flachstifte mit Nummerierung und Schrumpfschlauch tun es auch. Ich habe 4 Sekunden für eine komplettfahrt gewählt, also etwa 1 sek. mehr als nötig, für das Komplette Schliessen, da ich vermute, dass es im Winter länger braucht. Das mit den zwei Relais hätte ich auch so gemacht, aber ich hatte nun halt schon das Doppelrelais. Bin gespannt, wie deine Lösung aussieht. Aber an alle,, das Teil hat keinen Einklemmschutz, und wer die Verantwortung nicht tragen will sollte es nicht machen. Ich vermute, die haben von Dacia die Lösung gewählt, wenns weh tut wird er die Taste schon los lassen. Aber ich habe schon so viele Hersteller gefahren ( vor allem Ältere) , da hat nichts gestoppt, aber vielleicht ist es bei den neueren Modellen jetzt umgesetzt. Da sind die Jetzt vermutlich vorsichtiger geworden.
Kannst ja noch die Doppeltipp, wieder einfügen und die 10 cm Fahrt, nach unten machen. Ich hatte den Teil rausgelöscht, gibt aber die onebutton. h her.
Viel Spass.
 
Irgendwie scheint der Taster für das Fahrerfenster etwas anders zu sein als für die übrigen Fenster.
Ich habe mir die Taster Fahrerseite etwas genauer angeschaut, da ich ja die Komfortfunktion auch für die Beifahrerseite bauen möchte. Den Programmcode hab ich jetzt anhand dem Code von @Tom6666 fertig, mit einer Doppelklickfunktion, die nur 2 Sekunden das Fenster hoch oder runter fährt.
Am Testboard hat es schon mal funktioniert.
Am Fahrzeug hat mich dann ebenso der "12V Tod" des Arduino ereilt. Denkfehler - der Eingang darf ja nur 5V haben.
Der Schalter ist wie folgt aufgebaut:
Er hat für die Fahrerseite-Komfortfunktion vier Kontakte. Zwei für Hoch und Zwei für Runter. Erst die Stellung 2 am Taster schliess beide Kontakte und sendet dies an ein Steuergerät. Der Schalter läuft nicht über den 12V Stromkreislauf des Schalters für Beifahrer.
So ist die Pinelegung des Schalters
1629024520334.png
1 = Anschluss Fahrertaster
3 = Led Plus (Tastenbeleuchtung)
4 = Anscluss Fahrertaster
5 = Beifahrertaster hoch
6 = 12V
9 = Masse
10 = Beifahrertaster runter

Im Ruhezustand haben 5 und 10 12V anliegen. Diese gehen dann an den Schalter der Beifahrertür. Ohne diese 12V funktioniert die Bedienung auf der Beifahrerseite nicht.
Wird nun die Taste gedrückt geht der Zustand auf Masse. Dies ist so auch im Arduino Code programmiert.
Also geht D10 und D11 vom Arduino an diese Kabel. Der Arduino Schaltet über ein Relais nun 12V oder GND.
Die Kabel vom Taster kommend müssen dann an D2 und D3 vom Arduino. Allerdings mit 5V anstelle der 12V. Wird der Taster gedrückt geht über den entsprechenden PIN 5 oder PIN 10 Masse.
Hier muss ich noch eine schöne und mit normalen Bauteilen aufzubauende Lösung finden. Vier Relais machen das Ganze halt wieder schwerer und Größer. Wären aber standard Bauteile. Damit würde das ganze Modul ca. 15 bis 20 EUR kosten.
@Tom6666 du hast das, wenn ich recht gesehen habe über Z-Dioden und 4,7k Widerstand gelöst
 
Zuletzt bearbeitet:
Reagiert die Arduino-Steuerung eigentlich auch so schnell, daß man das Heben oder Senken zwischendurch kurz abstoppen kann?
Und was ist denn am Schalter der Unterschied zwischen Pin 1 und Pin 4?
 
Pin 1 steuert hoch und 4 runter. Die genaue Logik hierfür hab ich noch nicht nachgemessen.

Das Programm läuft in einer Schleife (kein Delay). Dadurch reagiert der Arduino auf weitere Eingaben. So auch auf den Tastendruck für Gegenrichtung, was bei einem kurzen Tastendruck ein Stopp bedeutet. Der Arduino reagiert im ms Bereich. Einen Härtetest mit allen Eventualitäten muss ich noch machen, bei dem ich auch die Kombination mit den Tasten auf der Beifahrerseite prüfe.
Ein Aufbau auf dem Steckbrett hat bisher funktioniert.
 
  • Themenstarter Themenstarter
  • #86
Man könnte das Ganze mit einem kleineren Atmega in SMD Ausführung planen, ist aber nicht nötig, da ist so viel Platz in der Innenverkleidung. Ich habe den Atmega steckbar gemacht, damit man ihn nach Bedarf umprogrammieren kann. Oder halt mit den 4 Leitungen ICSP zur nachträglichen Umprogramnierung. Aber die Einstellungen siehe Programmcode passen prima. Ich wollte kein komplettes Arduino Board in der Tür versenken, je weinger Verbraucher desto besser. Das Gute, Zündung aus und das Modul ist Stromlos. Den C6 direkt ans IC, mit dicken Leiterbahnen, sonst gibts Fehlfunktionen. Man kann hier auch ruhig etwas mehr Kapazität einbauen.
Ich habs ja vergossen, ist aber nicht unbedingt nötig, ist eh trocken, hab aber trotzdem alles in einen großen Schrumpfschlauch gepackt. Damit es nicht klappert das Modul noch mit Schaumstoff umwickeln und ab in den Hohlraum.
 
Hi, hatte an der Hinterachse beim überfahren von Kopfsteinpflaster oder unebenen Straßen quietschende und polternde Geräusche.
Hatte immer das Hitzeblech von der Auspuffanlage verdächtigt.
Allerdings habe ich heute den Übeltäter entdeckt.
Es ist der Kunststoffschutz der Hinterachse.
An den Anlagepunkten der Hinterachse (Kunststoffschellen) reibt dieser und verursacht das quietschen.
Radseitg unter den Federtellern und unter der Achse liegt der Schutz mit etwas Luft fast an und verursacht so das klopfen.
Habe an den Stellen Moosgummi aufgeklebt und nun Ruhe.
Hoffe es hilft dem ein oder anderen :)
 
  • Themenstarter Themenstarter
  • #88
Wenn wir schon bei Geräuschen sind, ich habe ab und zu ein Kling Geräusch beim Anlassen, ich hatte erst den Anlasser und die Schwungscheibe im Verdacht, dass da das Ritzel noch mal kurz dagegen schlägt, mittlerweile vermute ich eher die Auspuffanlage oder Kat, dass der sich schlagartig entspannt, denn das Geräusch ist meist nach einer Autobahnfahrt aber am Nächsten Tag beim Starten. Mittlerweile höre ich es immer seltener, deswegen mache ich mir da keine grossen Sorgen. Hat jemand eine Idee. Ein sehr helles kurzes Kling. Eco G 2020.
 
Dacianer.de - die Dacia-Community

Statistik des Forums

Themen
40.986
Beiträge
1.015.311
Mitglieder
70.526
Neuestes Mitglied
M.R.
Zurück