Metainformationen zur Seite
Unterschiede
Hier werden die Unterschiede zwischen zwei Versionen angezeigt.
Beide Seiten der vorigen Revision Vorhergehende Überarbeitung Nächste Überarbeitung | Vorhergehende Überarbeitung | ||
computer:raspberrypi:gpio [2013/07/12 02:15] ristigl [GPIO] |
computer:raspberrypi:gpio [2018/03/16 21:11] (aktuell) |
||
---|---|---|---|
Zeile 2: | Zeile 2: | ||
<note warning>Do not use voltage levels greater than 3.3V, Raspberry pi doesn´t support 5V and doesn't have an over-voltage protection.</note> | <note warning>Do not use voltage levels greater than 3.3V, Raspberry pi doesn´t support 5V and doesn't have an over-voltage protection.</note> | ||
+ | Quelle: https://sites.google.com/site/semilleroadt/raspberry-pi-tutorials/gpio | ||
+ | |||
+ | {{:computer:raspberrypi:gpio-revision1.png?300}} | ||
+ | {{:computer:raspberrypi:gpio-revision2.png?300}} | ||
- | {{:computer:raspberrypi:gpio-revision1.png}} | ||
- | {{:computer:raspberrypi:gpio-revision2.png}} | ||
- | Quelle: https://sites.google.com/site/semilleroadt/raspberry-pi-tutorials/gpio | ||
Quelle: http://www.doctormonk.com/2013/02/raspberry-pi-and-breadboard-raspberry.html | Quelle: http://www.doctormonk.com/2013/02/raspberry-pi-and-breadboard-raspberry.html | ||
Zeile 12: | Zeile 13: | ||
Sehr sinnvoll für ein möglichst sicheres basteln ist diese Idee: | Sehr sinnvoll für ein möglichst sicheres basteln ist diese Idee: | ||
- | {{ :computer:raspberrypi:leaf_-_web.jpg?200|}} | + | {{:computer:raspberrypi:leaf_-_web.jpg}} |
- | {{ :computer:raspberrypi:raspberry_leaf_r2.png}} | + | {{:computer:raspberrypi:raspberry_leaf_r2.png}} |
===== Pegelanpassung ===== | ===== Pegelanpassung ===== | ||
Zeile 25: | Zeile 26: | ||
+ | |||
+ | ===== Ansprechen über die Shell ===== | ||
+ | Um eine LED mithilfe eines Raspberry Pis zum Blinken zu bringen, benötigt man zu allererst WiringPi. | ||
+ | |||
+ | wget http://project-downloads.drogon.net/files/wiringPi.tgz | ||
+ | |||
+ | Das Programm muss nun entpackt, kompiliert und installiert werden: | ||
+ | |||
+ | <code> | ||
+ | tar xfz wiringPi.tgz | ||
+ | cd wiringPi/wiringPi | ||
+ | make | ||
+ | make install | ||
+ | cd ../gpio | ||
+ | make clean | ||
+ | </code> | ||
+ | |||
+ | Ist das Programm installiert, so lassen sich Pins wie folgt ansprechen: | ||
+ | |||
+ | /usr/local/bin/gpio -g mode 23 out | ||
+ | /usr/local/bin/gpio -g write 23 1 | ||
===== Ansprechen mit Python ===== | ===== Ansprechen mit Python ===== | ||
Zeile 35: | Zeile 57: | ||
Beipielcode: https://code.google.com/p/raspberry-gpio-python/wiki/BasicUsage | Beipielcode: https://code.google.com/p/raspberry-gpio-python/wiki/BasicUsage | ||
- | <code> | + | <code python> |
import RPi.GPIO as GPIO | import RPi.GPIO as GPIO | ||
GPIO.setmode(GPIO.BCM) | GPIO.setmode(GPIO.BCM) | ||
Zeile 48: | Zeile 70: | ||
</code> | </code> | ||
- | ===== Proplem: Prellen ===== | + | ===== Pull-Up und Pull-Down ===== |
+ | Quelle: https://code.google.com/p/raspberry-gpio-python/wiki/Inputs | ||
+ | |||
+ | "If you do not have the input pin connected to anything, it will 'float'. In other words, the value that is read in is undefined because it is not connected to anything until you press a button or switch. It will probably change value a lot as a result of receiving mains interference. | ||
+ | |||
+ | To get round this, we use a pull up or a pull down resistor. In this way, the default value of the input can be set. It is possible to have pull up/down resistors in hardware and using software. In hardware, a 10K resistor between the input channel and 3.3V (pull-up) or 0V (pull-down) is commonly used. The RPi.GPIO module allows you to configure the Broadcom SOC to do this in software:" | ||
+ | |||
+ | GPIO.setup(channel, GPIO.IN, pull_up_down=GPIO.PUD_UP) | ||
+ | or | ||
+ | GPIO.setup(channel, GPIO.IN, pull_up_down=GPIO.PUD_DOWN) | ||
+ | |||
+ | Problem: SDA und SCL-Pins funktionieren nicht wie erwarten: | ||
+ | |||
+ | Quelle: http://raspberrypi.stackexchange.com/questions/4919/unable-to-read-from-sda-scl-as-gpio | ||
+ | |||
+ | "SDA and SCL pins have external 1k8 pull-up resistors connected. This is indeed because they are intended for I²C usage (which requires them). Unfortunately, since they are external, they can't be disabled in software. | ||
+ | |||
+ | Having pull-up resistors means that default state of the pin in HIGH, unless they are pulled to ground." | ||
+ | |||
+ | |||
+ | ===== Problem: Prellen ===== | ||
{{ :computer:raspberrypi:entprellen.png}} | {{ :computer:raspberrypi:entprellen.png}} | ||
Wenn man einen Taster Anschließt, so kommt es beim Betätigen zum Prellen (Siehe Abbildung). | Wenn man einen Taster Anschließt, so kommt es beim Betätigen zum Prellen (Siehe Abbildung). | ||
Zeile 54: | Zeile 96: | ||
Quelle: http://www.mikrocontroller.net/articles/Entprellung | Quelle: http://www.mikrocontroller.net/articles/Entprellung | ||
+ | ===== Portexpander ===== | ||
+ | Kontroller-Chip, um 16 Ausgänge mit 2 Leitungen anzusteuern: | ||
+ | http://www.pollin.de/shop/dt/MDY4ODk4OTk-/Bauelemente_Bauteile/Aktive_Bauelemente/IC/MCP23S17_E_SP.html | ||
+ | https://ex.ploit.ws/themagpi/The-MagPi-issue-13-en.pdf Seite 11: | ||
+ | Laden der Treiber zulassen: | ||
+ | |||
+ | In **/etc/modprobe.d/raspi-blacklist.conf** den Eintrag für **i2c-bcm2708** einkommentieren. | ||
+ | In **/etc/modules** einen Zeile mit **i2c-dev** anlegen. | ||
+ | |||
+ | Installieren der Tools zur Ansteuerung: | ||
+ | <code> | ||
+ | sudo apt-get update | ||
+ | sudo apt-get install python-smbus | ||
+ | sudo apt-get install i2c-tools | ||
+ | sudo adduser pi i2c | ||
+ | sudo reboot | ||
+ | sudo i2cdetect -y 1 | ||
+ | </code> | ||
+ | |||
+ | ... |