Seite 1 von 3

Verfahrgeschwindigkeit mittels Poti einstellen

Verfasst: Mi 20. Jan 2016, 19:40
von X4r3
Ich möchte gerne eine Idee Umsetzen:

Mittels Poti soll die Druckgeschwindigkeit / Verfahrgeschwindigkeit eingestellt werden bzw. analog zum "Speed Mult." Eintrag im Menü.

Die frei verfügbaren Pins des Microcontrollers habe ich Grün markiert. Jetzt muss ich noch schauen ob sich einer dieser Pins als analogen Eingang für den Poti verwenden lässt. --> Dateblatt Atmel MEGA2560
Ebenso die Implementierung in der Firmware.

Wäre doch eine feine Sache?!

Hat schon jemand an den freien Pins gebastelt?

Re: Verfahrgeschwindigkeit mittels Poti einstellen

Verfasst: Mi 20. Jan 2016, 22:36
von X4r3
Nach Recherche im Datenblatt können folgende Pins als Analogeingänge verwendet werden:

- PE3
- PE2
- PF0
- PF1
- PF2
- PF3
- PF4 nur wenn JTAG nicht aktiv ist

- PF5 nur wenn JTAG nicht aktiv ist
- PF6 nur wenn JTAG nicht aktiv ist
- PF7 nur wenn JTAG nicht aktiv ist
- PK0
- PK1
- PK2
- PK3
- PK4
- PK5
- PK6
- PK7

Ist JTAG aktiv?

Oha, da bleiben nurnoch 2 freie Pins (PE2, PF3) als Analogeingänge für Basteleien übrig.

Re: Verfahrgeschwindigkeit mittels Poti einstellen

Verfasst: Mi 20. Jan 2016, 22:43
von RAU
JTAG ist ein Testinterface um den Chip selbst oder die Verdrahtung auf dem Board zu testen. Es geht dabei vornehmlich um Produktionstests, um Fertigungsausschuss schnell herausselektieren zu können. Das sollte im RF1000 eigentlich nicht aktiv sein.

Re: Verfahrgeschwindigkeit mittels Poti einstellen

Verfasst: Mi 20. Jan 2016, 22:53
von Zaldo
Ja und zum programmieren (wie auch SPI). Manche Dinge, wie die Fuse Bits setzen, kann man nicht über den Bootloader. Wenn die in Verwendung wären, wären sie aller Wahrscheinlichkeit nach irgendwo zu nem Steckverbinder geführt. Ansonsten würde man die bestenfalls bei der initialen Programmierung des Chips verwenden.

Re: Verfahrgeschwindigkeit mittels Poti einstellen

Verfasst: Do 21. Jan 2016, 11:23
von X4r3
Jetzt blicke ich in der Firmware mit der Pinbelegung und dem Handling der Analogeingänge nicht mehr durch.
Analoge Pin belegung in der pins.h:
// analog pin mappings
#define TEMP_0_PIN 13 // PINK.5, 84, TH1 X5
#define TEMP_1_PIN 14 // PINK.6, 83, TH2 X6
#define TEMP_2_PIN 15 // PINK.7, 82, TH3
Woher zum Geier kommt die 13, 14, 15?

TEMP_0_PIN führt weiter zu RF1000.h:
#define EXT0_TEMPSENSOR_PIN TEMP_0_PIN
EXT0_TEMPSENSOR_PIN führt weiter zu
#define EXT0_ANALOG_CHANNEL EXT0_TEMPSENSOR_PIN
EXT0_ANALOG_CHANNEL führt weiter zu:

/** \brief Channels are the MUX-part of ADMUX register */
#define ANALOG_INPUT_CHANNELS {EXT0_ANALOG_CHANNEL EXT1_ANALOG_CHANNEL BED_ANALOG_CHANNEL}

ANALOG_INPUT_CHANNELS führt weiter zu Extruder.cpp:

const uint8 osAnalogInputChannels[] PROGMEM = ANALOG_INPUT_CHANNELS;

osAnalogInputChannels führt weiter zu HAL.cpp und Extruder.cpp, aber hier is bei mir Ende.



Beim Arduino Uno war das so einfach, da brauchte man nichtmal den Pin als Analogeingang definieren, einfach mit wert = analogRead(PinNr.); auslesen.

Re: Verfahrgeschwindigkeit mittels Poti einstellen

Verfasst: Do 21. Jan 2016, 22:00
von RAU
Ich habe in die Files nicht reingeschaut, aber vielleicht hilft das:
https://www.arduino.cc/en/Hacking/PinMapping2560
Der Pin 84 hat die Bezeichnung "Analog pin 13". Daher diese Nummer.
Möglicherweise eine in der Arduino-Welt vorgegebene Bezeichnung. Ist ja auch egal, jedenfalls Pin 84.

Re: Verfahrgeschwindigkeit mittels Poti einstellen

Verfasst: Fr 22. Jan 2016, 11:16
von X4r3
Ahja das hilft mir weiter.

ich werds mal mit der funktion wert = analogRead(PinNr.); probieren.

Muss aber erst Material bestellen damit man an der Option I/O X25 Steckerleiste anzapfen kann. Ich dachte der Stecker wäre größer, tatsächlich ist es einer mit 2mm Rastermaß.

-Wannenstiftleiste Conrad-Nr. 735309
- Flachbandkabel: Conrad-Nr. 602474
- Pfostenverbinder: Conrad-Nr. 735789

Und dann muss ich noch schauen wie ich aufs Bastel Platinen Rastermaß von 2,54mm komme. Da bleibt wohl nix anders übrig als Adern an eine Wannenstiftleiste zu löten.

Re: Verfahrgeschwindigkeit mittels Poti einstellen

Verfasst: Di 9. Feb 2016, 18:52
von X4r3
So die Teile sind gekommen und die Schnittstelle ist gebastelt. Adern an die Wannenstiftleiste anzulöten ist suboptimal. Die Pins lassen sich dadurch herausziehen. Bei Conrad habe ich keine 2mm RM Platine gefunden. Vielleicht weis jemand eine andere Lösung.

Ich bin mir absolut nicht sicher was ich bei der analogRead(?) funktion angeben muss wenn man den PF3 / Pin-nr. 94 / ADC3 als Analogeingang lesen will. Vielleicht kann mir da jemand helfen.

Re: Verfahrgeschwindigkeit mittels Poti einstellen

Verfasst: Di 9. Feb 2016, 19:04
von RAU
X4r3 hat geschrieben:Ich bin mir absolut nicht sicher was ich bei der analogRead(?) funktion angeben muss wenn man den PF3 / Pin-nr. 94 / ADC3 als Analogeingang lesen will. Vielleicht kann mir da jemand helfen.
Laut
https://www.arduino.cc/en/Reference/AnalogRead
musst du die Nummer des Analogpins angeben, also analogRead(3).

Re: Verfahrgeschwindigkeit mittels Poti einstellen

Verfasst: Di 9. Feb 2016, 20:08
von X4r3
Mh irgendwie kommt dabei nix gscheites raus. Ein 5k Ohm Poti hängt zwischen 5V und Masse, der Abgriff geht auf PF3 und PF4. Der Poti ist in Mittelstellung, an PF3 und PF4 liegen 2,5V an. Eventuell mess ich mal direkt am Pin vom Chip.

Folgendes in der void loopRF( void ) Funktion in der RF.cpp:

Code: Alles auswählen

...
	int aWert = analogRead(3);
	Com::printFLN( PSTR( "aWert = "), aWert );
	int bWert = analogRead(4);
	Com::printFLN( PSTR( "bWert = "), bWert );

	nEntered --;
	return;

} // loopRF
Werte siehe Anhang.