Verfahrgeschwindigkeit mittels Poti einstellen

Hier gehts um die Elektronik des RF1000. Damit sind Kabel, Platinen, Endschalter und das Display gemeint.
Benutzeravatar
RAU
Supporter
Supporter
Beiträge: 683
Registriert: Mo 28. Sep 2015, 19:16
Wohnort: NRW
Has thanked: 20 times
Been thanked: 55 times

Re: Verfahrgeschwindigkeit mittels Poti einstellen

Beitrag von RAU »

cool, ein Zufallsgenerator! :)

ich muss gestehen, dass ich selbst keine praktischen Erfahrungen damit habe. Ich lese nur öfters in der Arduino-Doku. Was mir jetzt noch einfällt ist dies hier:
https://www.arduino.cc/en/Reference/AnalogReference
Hier wird festgelegt, mit welcher Refernz die Analogeingänge arbeiten. Ich kann jetzt nur vermuten, dass die verschiedenen Routinen, die irgendwo Analogwerte abrufen, die Referenz hin und her wechseln. Vielleicht musst du den Befehl zuerst ausführen, um die Referenz festzumachen....?
RFrank
Erfahrener 3D-Drucker
Erfahrener 3D-Drucker
Beiträge: 163
Registriert: Do 13. Nov 2014, 08:55
Wohnort: Wuppertal
Has thanked: 57 times
Been thanked: 9 times

Re: Verfahrgeschwindigkeit mittels Poti einstellen

Beitrag von RFrank »

Leichte Schwankungen im Wert sind möglich, kann durch Mittelwertbildung geglättet werden.
Der Eingang muss sich erst einschwingen auf den zu messenden Wert, würde bei uns aber zu einer ungewollten Verzögerung führen.
Wie RAU schon schrieb muss etwas Grundsätzliches noch nicht stimmen, da die Schwankung zu groß ist.

Gruß
RF1k_1: Erhöh.+Verl. Kabelk. (2G), NOT-AUS (Reset), Opt. Z-Endschalter, Einhausung, Aludruckfräspl.
RF1k_2: Erhöh. Kabelk., 2x Motorkühlung, Lüfterplatine, 2xY, X-,Y-Gegenlager, magn. Alupl. mit Metallauflage, 2x E3D V6 (L 3mm, R 1,75mm)
Benutzeravatar
X4r3
Erfahrener 3D-Drucker
Erfahrener 3D-Drucker
Beiträge: 145
Registriert: Mi 25. Nov 2015, 14:04
Has thanked: 5 times
Been thanked: 48 times

Re: Verfahrgeschwindigkeit mittels Poti einstellen

Beitrag von X4r3 »

Ich habe die Verdrahtung durchgeklingelt und tatsächlich ging die Spannung auf den falschen Pin. Jetzt ists aber richtig und die werte sind schon relativ konstant, es gibt allerdings immer wieder ausreiser.
Ja eine Mittelwertbildung wäre ned Schlecht, da muss ich mich mal nach nem Code Schnipsel umsehen.

Auch ein häufigeres aufrufen von analogread() verringert die ausreiser:

Code: Alles auswählen

	int blaWert = analogRead(3);
	blaWert = analogRead(3);
	int aWert = analogRead(3);
	Com::printFLN( PSTR( "aWert = "), aWert );
	int bWert = analogRead(4);
	Com::printFLN( PSTR( "bWert = "), bWert );
Du hast keine ausreichende Berechtigung, um die Dateianhänge dieses Beitrags anzusehen.
▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬
▐►►► X4r3's RF1000 ◄◄◄▌
▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬
Benutzeravatar
X4r3
Erfahrener 3D-Drucker
Erfahrener 3D-Drucker
Beiträge: 145
Registriert: Mi 25. Nov 2015, 14:04
Has thanked: 5 times
Been thanked: 48 times

Re: Verfahrgeschwindigkeit mittels Poti einstellen

Beitrag von X4r3 »

Ich habe verschiedene Formeln zur Glättung und Mittelwertbildung ausprobiert, aber kein Erfolg. Wenn z.b. momentan der Analogwert ständig mit den Wert 1 gelesen wird und ein Ausreißer kommt (Wert von 900-1000), dann erhöht er den Mittelwert erheblich.

Den Analogwert einzulesen wie die Temperatursensoren komme ich auch nicht weiter.

Die Analoggeschichte werde ich erstmal begraben und nach einem digitalen Poti, Inkrementalpoti umsehen.
▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬
▐►►► X4r3's RF1000 ◄◄◄▌
▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬
RFrank
Erfahrener 3D-Drucker
Erfahrener 3D-Drucker
Beiträge: 163
Registriert: Do 13. Nov 2014, 08:55
Wohnort: Wuppertal
Has thanked: 57 times
Been thanked: 9 times

Re: Verfahrgeschwindigkeit mittels Poti einstellen

Beitrag von RFrank »

Dann müßtest du einen Pulse/Pause erzeugenden Poti benutzen, sonst würde der dir noch mehr Eingänge verbrauchen.
RF1k_1: Erhöh.+Verl. Kabelk. (2G), NOT-AUS (Reset), Opt. Z-Endschalter, Einhausung, Aludruckfräspl.
RF1k_2: Erhöh. Kabelk., 2x Motorkühlung, Lüfterplatine, 2xY, X-,Y-Gegenlager, magn. Alupl. mit Metallauflage, 2x E3D V6 (L 3mm, R 1,75mm)
Benutzeravatar
RAU
Supporter
Supporter
Beiträge: 683
Registriert: Mo 28. Sep 2015, 19:16
Wohnort: NRW
Has thanked: 20 times
Been thanked: 55 times

Re: Verfahrgeschwindigkeit mittels Poti einstellen

Beitrag von RAU »

X4r3 hat geschrieben:Ich habe verschiedene Formeln zur Glättung und Mittelwertbildung ausprobiert, aber kein Erfolg. Wenn z.b. momentan der Analogwert ständig mit den Wert 1 gelesen wird und ein Ausreißer kommt (Wert von 900-1000), dann erhöht er den Mittelwert erheblich.

Den Analogwert einzulesen wie die Temperatursensoren komme ich auch nicht weiter.

Die Analoggeschichte werde ich erstmal begraben und nach einem digitalen Poti, Inkrementalpoti umsehen.
Vielleicht kann man die Ausreißer noch wegkriegen.

Ist das Kabel zum Poti geschirmt? Ideal wäre ein geschirmtes zweipoliges Kabel mit Masse auf dem Schirm, +5V auf dem einen Leiter und das regelbare Signal auf dem anderen Leiter.

Kann es sein, dass das Poti beim Bewegen kratzt? Löte einen kleinen Kondensator direkt am Poti zwischen Abgriff und Masse.

Eine Mittelwertbildung hat den Nachteil, dass sie um so träger wird, je besser sie filtert. Wenn es nur darum geht, Ausreißer wegzugriegen, wäre es besser einen nichtlinearen aber sehr pragmatischen Ansatz zu wählen, z.B. den Median Filter. Du sammelst die letzten 3, 5 oder 7 Messwerte, und berücksichtigst nur der Größe nach sortiert (!) den Mittleren. Der Ausreißer wird niemals in der Mitte der sortierten Liste landen.
Um auch leichtes Rauschen noch herauszufiltern, müsste man den Mittelwertfilter noch oben draufsetzen.
Benutzeravatar
X4r3
Erfahrener 3D-Drucker
Erfahrener 3D-Drucker
Beiträge: 145
Registriert: Mi 25. Nov 2015, 14:04
Has thanked: 5 times
Been thanked: 48 times

Re: Verfahrgeschwindigkeit mittels Poti einstellen

Beitrag von X4r3 »

Ich habe jetzt eine andere Lösung mit einem Drehpoti / Encoder hinbekommen.

https://www.conrad.de/de/encoder-10-v-0 ... 94450.html
Datenblatt: http://www.produktinfo.conrad.com/daten ... 2B_S_Z.pdf

Es werden 2 Digital-Eingänge benötigt für die Spur A (CH. A) und Spur B (CH. B). Diese habe ich an PD2 und PD3 angeschlossen.

Zuerst hatte ich die Abfrage der Eingänge und entsprechende Auswertung mit Zähler und Richtungserkennung in der loopRF( ) funktion in der RF.cpp. Das wollte aber nicht einwandfrei klappen, der Zähler zählte nicht genau. Dann habe ich eine simple Wechselschaltung in die Funktion eingebaut, beim Aufruf der Funktion wird ein Augang eingeschalten, beim nächsten Aufruf wieder ausgeschalten.

Code: Alles auswählen

		if ( g_testLEDOutput == LOW )
		{
			g_testLEDOutput = HIGH;	
		}
		else
		{
			g_testLEDOutput = LOW;	
		}
		
		WRITE(35, g_testLEDOutput);
So konnte ich die Frequenz messen und die Zykluszeit der Funktion ermitteln. Frequenz von loopRF() bzw. deren Elternfunktion Commands::checkForPeriodicalActions() = 5 Hz , d.h. alle 100ms wird die Funktion aufgerufen. Damit lässt sich kein Encoder auswerten der eine Frequenz von 30HZ erreicht wenn man ihn so schnell dreht wie es geht.

Also habe ich eine Funktion gesucht die eine höhere Frequenz hat und bin fündig geworden: Commands::commandLoop() in der Commands.cpp, die Elternfunktion ist die loop() Funktion der Arduino-Routine. Diese sollte eigentlich die höchste Frequenz im ganzen Programm haben.
Die Frequenz der Commands::commandLoop() im Idle Zustand: etwa 8 kHz
Damit lässt sich was Anfangen.

Auswertung des Encoders in Commands::commandLoop() in der Commands.cpp:

Code: Alles auswählen

		int valA = READ(SPURA);
		int valB = READ(SPURB);
		if (valA != g_extSpeedMult_lastValA)
		{
			if (valA == valB) Printer::feedrateMultiply++;
			else Printer::feedrateMultiply--;
			g_extSpeedMult_lastValA = valA;
		}
Hier fehlen noch Begrenzungen etc., aber es funktioniert, den Speedmultipler im Qicksettingsmenü lässt sich genau in 1er Schritten einstellen und auch sehr schnell auf höhere Werte wie 400% einstellen.

Die Pin-nr. werden in der pins.h definiert. Da diese Eingänge sind sollten sie auch in die SENSITIVE_PINS Tabelle (ganz unten) mit eingefügt werden. Per G-code können Pins als Ausgänge definiert und ein-/ausschalten werden. Pins die in der SENSITIVE_PINS Tabelle sind werden da ausgeschlossen.


Der oben genantte Encoder hat zusätzlich neben dem Drehrad in der Mitte noch einen Taster und Aussen 4 weitere Richtungstaster (Oben, Links, Rechts, Unten). Damit könnte man das bisherige Richtungstastenfeld ersetzen und die Temperaturen, etc. viel schneller auf den gewünschten Sollwert einstellen.
▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬
▐►►► X4r3's RF1000 ◄◄◄▌
▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬
Benutzeravatar
X4r3
Erfahrener 3D-Drucker
Erfahrener 3D-Drucker
Beiträge: 145
Registriert: Mi 25. Nov 2015, 14:04
Has thanked: 5 times
Been thanked: 48 times

Re: Verfahrgeschwindigkeit mittels Poti einstellen

Beitrag von X4r3 »

Jetzt müsste das ganze noch vernünftig verbaut werden.
Auf jeden Fall bräuchte ich eine Platine auf der die Stiftleiste: https://www.conrad.de/de/stiftleiste-ge ... %20Details fest draufgelötet wird.

So wie es aktuell mit einzelnen Adern ist das Mist, die Stifte in der Stifleiste rutschen hin und her und geben keinen guten Kontakt:
IMG_0682.jpg

Besser eine Platine, aber da habe ich keine Möglichkeit sie selbst herzustellen.

Von RM 2 mm der 14 pol. Stiftleiste auf RM 2,54 für 2x 8 pol. Schraubklemmen und 4 Bohrungen zum irgendwo festspaxen, Skizze:
platine.png
Keine Ahnung woher ich so eine Platine bekommen kann.
Du hast keine ausreichende Berechtigung, um die Dateianhänge dieses Beitrags anzusehen.
▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬
▐►►► X4r3's RF1000 ◄◄◄▌
▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬
Benutzeravatar
Zaldo
Globaler Moderator
Globaler Moderator
Beiträge: 630
Registriert: Do 24. Sep 2015, 10:38
Wohnort: Raum Frankfurt
Has thanked: 38 times
Been thanked: 50 times

Re: Verfahrgeschwindigkeit mittels Poti einstellen

Beitrag von Zaldo »

Ich muss in zwei, drei Wochen ohnehin was ätzen, wenns so lange Zeit hat kann ich Dir eine mitätzen.
· Besserer Z-Referenzschalter · Druckbett Feinjustage · Platinenkühlung · Weiße Bauraumbeleuchtung · Not-Aus
· Dauerdruckplatte · Temperaturgeregelte Einhausung · Repetier Server auf Raspberry · MK8 Vorschubritzel
Benutzeravatar
JoBo
Globaler Moderator
Globaler Moderator
Beiträge: 448
Registriert: Fr 31. Okt 2014, 13:30
Has thanked: 15 times
Been thanked: 59 times

Re: Verfahrgeschwindigkeit mittels Poti einstellen

Beitrag von JoBo »

PCB Pool wäre auch eine Möglichkeit. Kostet aber entsprechend.
Antworten

Zurück zu „Elektronik“