Arduino PS2 Controller Board Fundamentals

Last Updated on 4. October 2026 by SuffocationLink status: OK

Verkaufsname: 2018 Arduino Shield Expansion Board 6-12V with 4 Channels Motors Servos Ports PS2 Joystick Remote Control 

Ich habe die Erweiterungsplatine im Set inklusive PS2 Controller/Empfangsmodul, Arduino Uno und USB Kabel, beim schnellen Ali für unter 26€ gekauft.

!!!Vorab, um ein paar Fehler zu vermeiden, ist es sinnvoll, eine externe Spannungsquelle an den Arduino anzuschließen, der Strom über den USB Port reicht leider nicht immer aus!!!

Aktueller Status ist noch Draft, bitte meckern 😉

Overview

Die Platine (hier in Version 2.1) ist beeindruckend vielfältig. Die wichtigsten Daten hier im Überblick:

  • Playstation 2 Anschluss für einen Controller-Empfänger.
  • 4 Motor Anschlüsse mit Motorbrücke
  • 6 Servoanschlüsse – 2 „Normale“ + 4 über den PWM Chip
  • I2C Anschluss nach außen geführt
  • Anschluss für einen HC-SR04 oder kompatiblen Sonarsensor
  • Anschluss für ein HC-06 kompatibles Bluetooth Modul
  • Stromanschluss 6-9V
  • Stromanschluss Klemmen für +5V???
  • JMP Jumper zum Deaktivieren der On-Board Spannung
  • JP1 Zum Deaktivieren der 5V Spannung???

Views

Wiring

Beschriftete Frontansicht

Operation

  • Als Motorplatine mit zusätzlichen Erweiterungen
  • Zur Steuerung von Robotern
  • Fernsteuerung diverser Fahrzeuge

Programming

The integration of libraries in general is described under the following link, and I will not go into further detail here.
https://fambach.net/arduino-ide#BibliothekenLink status: OK

Motorsteuerung

Die Motorbrücke wird über den I2C Bus angesteuert und ist mit der Adafruit Motor V2 Bibliothek kompatibel. Die Adresse ist 0x60.

Die Bibliothek ist über den folgenden Link erhältlich:

https://github.com/adafruit/Adafruit_Motor_Shield_V2_LibraryLink status: OK

Deren Verwendung habe ich schon einmal im Artikel zur Motor Platine V2 beschrieben:

Arduino Motor Shield V2Link status: OK

Das Programm des Artikels habe ich einfach mal auf den UNO dieses Projektes gespielt und siehe da, die Motoren drehen.

Servos

Auf der Zusatzplatine gibt es zwei direkt mit dem Arduino verbundene Servos und vier, die über die Motorbrücke über den I2C Bus verbunden sind.

2 Direkt ansteuerbare Servos

Pin assignment

Servo Arduino Pin
15
26

Test programme

Die Anschlüsse befinden sich direkt neben dem Stromanschluss. Der Masse Pol des Servos befindet sich an der Platinenkante. Die beiden Servos hängen an den Arduino Pins 5 und 6. Sie sind über die in der Arduino-Bibliothek integrierte Servosteuerung regelbar. Hier ein Beispiel:

P.S. Sollten die Servos Unfug machen, mal eine externe Spannungsquelle anschließen, die USB Spannung reicht für dieses Board nicht aus.

4 über I²C ansteuerbare Servos

Für die Servos gibt es ebenfalls von Adafruit eine Servo-Treiber Bibliothek:

https://github.com/adafruit/Adafruit-PWM-Servo-Driver-LibraryLink status: OK

Test programme

Eingebunden werden kann die Bibliothek sowohl über das GitHub Zip als auch über den Library Manager.

Pin assignment

Servo Nummer Servo PWM Pins
(Nicht Arduino Pins)
10
21
314
415

Mit Hilfe des folgenden Programms lassen sich alle Servos drehen.

Ich habe noch eine zweite Version, bei der die Position der Servos in Grad angegeben werden kann:

Die Adafruit Servo PWM Bibliothek ist auch in der Adafruit Motor Bibliothek eingebunden, somit können die Servos auch über diese angesteuert werden. Dies ist im Beispiel des Herstellers der Fall.

PS2 Schnittstelle

Für die PS2 Schnittstelle gibt es eine Bibliothek, die sich PS2X nennt und auf Github verfügbar ist, hier der Link:

https://github.com/madsci1016/Arduino-PS2X/zipball/5d2be701af64d826d268301d83119a6d2ad04f15Link status: OK

Pin assignment

Die Pinbelegung für den Controller ist wie folgt zu definieren:

PinDescription
12DAT
11Command Prompt
10SEL
13CLK

Test programme

Ich habe mit Hilfe der Beispiele in der Bibliothek mein eigenes Testprogramm erstellt. Dieses fragt alle Knöpfe und die Joystick-Positionen ab. Ein paar Eigenheiten, die mir aufgefallen sind, habe ich ebenfalls gleich behoben:

  • Das erste Initialisieren des Controllers geht meist schief, deshalb versuche ich es so lange, bis es geklappt hat.
  • Erstes Auslesen klappt nicht immer, überspringe ich.
  • Mein Beispiel funktioniert aktuell nur für den Dual Shock Controller, alle anderen sind ausgeschlossen.
  • Da die Farbknöpfe identisch mit den Formknöpfen sind, habe ich die Farbknöpfe aus dem Array herausgenommen.

SR04

Pin assignment

PinFunction
7 Echo
8Trigger

Test programme

Den HC-SR04 habe ich schon einmal in folgendem Artikel getestet. Das Programm aus dem Artikel mit angepasster Pinbelegung kann nachfolgend heruntergeladen werden:

https://fambach.net/ardunino-mit-dht10

I2C

Der I2C Bus ist auf der Oberseite der Platine gut beschriftet. Ich war mir unsicher, welchen Mehrwert ich hier erzeugen könnte. Ich habe nur getestet, ob die herausgeführte Schnittstelle auch funktioniert. Zum Test habe ich ein HMC5883L am I2C Bus angeschlossen, um einen Verbraucher zu haben.
Zum Testen benutzte ich dann einen I2C Scanner, den ich im Internet mal gefunden und etwas angepasst habe.

Und siehe da, es funktioniert … nicht wirklich überraschend.

HC-06 Bluetooth

Ich habe aktuell weder ein HC-06 kompatibles Board zur Hand noch einen Anwendungszweck hierfür, also lasse ich diesen Test mal aus. Schickt mir ein HC kompatibles Modul und ich teste es 😉

Conclusion

Ich finde diese Platine toll, sie bietet fast alles, um einen kleinen Roboter aufzubauen. Der hohe Stromverbrauch ist sicherlich ein Nachteil, jedoch kommt der nicht zuletzt auch vom PS2 Empfänger.

Ich habe mir das Board im Set gekauft, weil ich eine Fernsteuerung brauchte. Zudem bietet es noch Anschlussmöglichkeiten für 4 Motoren, 6 Servos, einen Entfernungssensor, 1 Bluetooth Modul und diverse I2C Geräte. Mehr kann man für den Paketpreis von unter 25 € nicht erwarten. Wer nur die Platine braucht, kann sie für rund 16€ erwerben.

Problems

Alles verhält sich doof …

Wenn nichts so richtig funktioniert, die Servos ruckeln oder es sieht nach dauernden Resets aus, kann es an den folgenden Punkten liegen:

  • Die Spannung ist zu gering – Externe Spannungsquelle anschließen
  • Falsche Version des Boards – Die getestete ist V2.1
  • Anderer Servo Hersteller – Ich verwende Billigware aus Fernost 95G, andere Servos brauchen evtl. andere Frequenzen.

Servo 3-6 gehen nicht

  • Achtung, Servos können nicht mit der Standard Arduino Servo Implementierung angesprochen werden, bitte die entsprechende Adafruit Bibliothek verwenden (siehe Beispiel).
  • Anderer Servo Hersteller – Ich verwende Billigware aus Fernost 95G, andere Servos brauchen evtl. andere Frequenzen.

Unkontrollierte Tastendrücke

Beim Aufbau meines eigenen Testbeispiels hatte ich das Problem, dass immer mal wieder eine Meldung kam, dass alle Tasten gedrückt wurden. Nach Tests unterschiedlicher Optionen, einschließlich der Anpassung der Clock in der Lib, habe ich herausgefunden, dass es am fehlenden 50ms Delay am Ende der Loop Funktion lag. Entfernt man dieses, scheint dem PS2 Empfänger das Auslesen zu schnell zu gehen und es kommt zu Fehlern.

Keine Funktion

Da ich die Verkabelung des Empfängers nicht selbst gemacht habe, ist dies kein Fehler, der bei mir auftreten konnte, aber auf der Entwicklerseite der PS2x Bibliothek wird darauf hingewiesen, dass immer mal wieder Probleme bei der Verkabelung auftreten können. Hier der Link:

http://www.billporter.info/2011/03/27/arduino-playstation-2-controller-library-troubleshooting-guide/Link status: Unknown

Related Posts

Sources

https://www.google.com/search?q=servo+daten+sc90&oq=servo+daten+sc90&aqs=chrome..69i57.3435j0j7&sourceid=chrome&ie=UTF-8Link status: Unknown

http://www.7gp.cn/archives/195Link status: Unknown  (Hersteller Link)
http://www.7gp.cn/archives/409Link status: Unknown  (Hersteller Link) Link status: Unknown
http://www.7gp.cn/archives/475Link status: Unknown  (Hersteller Link) Link status: Unknown

https://github.com/madsci1016/Arduino-PS2X/zipball/5d2be701af64d826d268301d83119a6d2ad04f15Link status: OK

Link status: OK

DateChangeAuthor
04.10.2026Rechtschreibung korrigiert: Tippfehler, Kommas, GrammatikSuffocation
03.10.2026Log-Liste eingefügtSuffocation
20.03.2019Post createdSuffocation
Changelog

Leave a Reply

Your email address will not be published. Required fields are marked *