Hi, ich versuche gerade mit einem Joystick einen Servo und einen DC-Motor zu steuern. Leider läuft es aber nicht so wie ich will:
Die analogPins überschneiden sich irgendwie. Also lese ich über analogRead die einzelnen Pins aus, wird bei allen drei Pins der selbe Wert angezeigt. Selbst wenn nur an einem Pin ein Kabel angeschlossen ist. Habe auch schon unterschiedliche Joysticks und mehrere Beispielcodes verwendet, ändert jedoch nichts.
Hier mein Test-Code
void setup() {
// put your setup code here, to run once:
Serial.begin(9600);
pinMode(A0, INPUT);
pinMode(A1, INPUT);
pinMode(A2, INPUT);
}
void loop() {
// put your main code here, to run repeatedly:
Serial.println(analogRead(A0));
Serial.println(analogRead(A1));
Serial.println(analogRead(A2));
}
Hat jemand eine Idee wo das Problem sein könnte? Danke schonmal
Das kommt höchstwahrscheinlich von dem Sample&Hold nach dem Multiplexer. Wenn extern nichts angeschlossen ist, kann der Hold-Kondensator nicht umgeladen werden.
Eine Quelle sollte nicht mehr als 50k Innenwiderstand haben, wenn der Kondensator ausreichend genau auf die Eingangsspannung aufgeladen werden soll. Bei höheren Impedanzen kann man die Werte durch mehrmaliges Lesen des selben Kanals etwas verbessern, da dann jedesmal der Kondensator ein wenig näher an die Eingangsspannung aufgeladen wird. Und da offene Eingänge eine fast unendliche Impedanz haben...
Ich würde zunächst einmal die Spannungen am Joystick mit einem Voltmeter messen. Wenn sich da nichts ändern läßt, dann ist der Joystick kaputt oder furchtbar falsch verkabelt.
der Dritte ist für die "Drück"Funktion also dass man den Joystick reindrücken kann. Manche lesen den über einen digitalen und manche über einen analogen Pin aus, das ändert bei mir bei den x-y-Werten jedoch nichts. Der X-Ausgang liegt etwa bei 510, der Y-Ausgang etwa bei 480 und "folgt" dem X-Ausgang wenn dieser höher oder niedriger wird. Also wenn ich den Joystick in X-Richtung bewege wird der X-Wert sofort 1022 und der Y-Wert nähert sich dann nach und nach der 960
Während an zwei der fünf Anschlüssen des Joystick GND und 5V angeschlossen war?
Was hast du da wie gemessen? ( Kommt mir seltsam vor, so Widerstände messen zu können )
Der Schalter kann ohne Pullup nicht arbeiten.
(soviel zur Praxis)
Wenn an deinem Arduino Ax Pin 5V anliegen und nicht 1023 angezeigt werden, ist dein Arduino kaputt.
Wenn das Poti 5V ausgibt, und diese nicht am Ax Pin ankommen, ist das Kabel kaputt.
Oder du hast irgend einen Bock eingebaut, den man auf dem Schaltplan nicht sehen kann.
Hallo,
Lass mal den Joystick erst mal weg. Du nimmst eine Drahtbrücke von GND auf den Eingang A0 Messung muss 0 sein , dann auf 5V muss 1023 sein, dann auf 3,3V muss 675 sein. Die jeweils andern Eingänge legst Du dabei mit Brücke auf 0V. Die sollten dann auch immer 0 anzeigen.
Dann wiederholst Du das mit dem Eingang A1.
Damit bekommst Du dann erst mal raus ob Dein Arduino noch ganz ist.
Heinz