(→Ansteuern der GPIO's) |
|||
Zeile 134: | Zeile 134: | ||
$val = trim(@shell_exec("/usr/local/bin/gpio -g write 23 1")); | $val = trim(@shell_exec("/usr/local/bin/gpio -g write 23 1")); | ||
</pre> | </pre> | ||
+ | |||
+ | =Anpassen der Pegel für 5V UART= | ||
+ | Eine einfache Schaltung, wie die Pegel angepasst werden können: | ||
+ | [[Bild:PiPegelwandler.png]] |
Version vom 25. August 2012, 17:04 Uhr
Inhaltsverzeichnis
Schnittstellen
Zusätzlich zu USB, Ethernet, analogen Audio/Video und HDMI bietet das Raspberry Pi verschiedene GPIO's (General Purpose Input/Output), die über die 2,54mm Stiftleiste 'P1' zugänglich sind.
Die GPIO Pins sind als 3,3V Signale ausgeführt und nicht 5V tolerant. Ein direkter Anschluss an TTL Level kann zur Zerstörung führen!<br\>
Bestimmte Pins können auch für SPI, I²C und UART Schnittstellen genutzt werden.
P1 Pinout
Function | Pin | Pin | Function | |
3,3V | 1 | 2 | 5V | |
GPIO 0 (SDA) | 3 | 4 | ||
GPIO 1 (SCL) | 5 | 6 | GND | |
GPIO 4 (GPCLK0) | 7 | 8 | GPIO 14 (TxD) | |
9 | 10 | GPIO 15 (RxD) | ||
GPIO 17 | 11 | 12 | GPIO 18 (PCM_CLK) | |
GPIO 21 (PCM_DOUT) | 13 | 14 | ||
GPIO 22 | 15 | 16 | GPIO 23 | |
17 | 18 | GPIO 24 | ||
GPIO 10 (MOSI) | 19 | 20 | ||
GPIO 9 (MISO) | 21 | 22 | GPIO 25 | |
GPIO 11 (SCLK) | 23 | 24 | GPIO 8 (CE0) | |
25 | 26 | GPIO 7 (CE1) |
Ansteuern der GPIO's
Einige kleine Programmbeispiele findet man hier: elinux.com (C,Python,Java,Shell,C#,Perl,Ruby)
Via Shell
Die GPIO können direkt über die Files im Ordner '/sys/class/gpio/' angesteuert werden. Dies muss jedoch mit root-Rechten gemacht werden. Zuerst müssen die Files via 'export' zugänglich gemacht werden. Da die GPIO's nach dem Systemstart als Eingänge geschaltet sind, müssen diese jetzt als Ausgänge definiert werden und können danach manipuliert werden.
Ein Beispiel anhand von GPIO 23:
$ cd /sys/class/gpio $ su root Passwort eingeben $ echo "23" > export $ echo "out" > gpio23/direction $ echo "1" > gpio23/value
Via WiringPi
Alternativ zur direkten Ansteuerung kann das Programm 'WiringPi' installiert werden. Der Vorteil daran ist zum einen die einfachere Anwendung und dass dazu keine root Rechte benötigt werden.
Informationen zur installation findet man auf der Projektseite..
https://projects.drogon.net/raspberry-pi/wiringpi/download-and-install/
Eingang auslesen
gpio -g read 23
GPIO Pin als Ausgang definieren
gpio -g mode 23 out
Ausgang setzen
gpio -g write 23 1
Vollständige Informationen zu WiringPI findet man in der manpage
man gpio
Via PHP
Sollen die GPIO Pins über ein HTTP Webinterface bedient werden, so kann dies mit PHP realisiert werden. In diesem Beispiel wird dazu via @shell_exec() WiringPi angesprochen.
$val = trim(@shell_exec("/usr/local/bin/gpio -g read 23")); $val = trim(@shell_exec("/usr/local/bin/gpio -g write 23 1"));
Anpassen der Pegel für 5V UART
Eine einfache Schaltung, wie die Pegel angepasst werden können: