• Erste Schritte
  • Hardware & GPIO
  • Projekte
  • Software
    • Webserver
  • Arduino & ESP8266
  • Hausautomatisierung
  • Sonstiges
    • News
Facebook Twitter YouTube
Tutorials for Raspberry Pi Tutorials for Raspberry Pi
  • Einstieg
    • Erste Schritte
      • Raspberry Pi 3 Einstieg - Starter KitWas brauche und wie starte ich? – Raspberry Pi Einstieg
    • Einrichtung
      • microsd_karte_menuRaspbian Betriebssystem auf eine SD Karte flashen – Einfach & Schnell
      • wlanbluetooth_menuWLAN und Bluetooth einrichten – Raspberry Pi 4
      • wifi_menuWLAN Stick installieren und einrichten – Alternative
      • bash_menuSSH Zugriff einrichten via Putty – Kommandozeilen Zugriff
      • rdp_menuRemotedesktop Verbindung aufbauen – Fernsteuerung
    • Einsteiger Projekte
      • Sinnvolles Raspberry Pi Zubehör
      • 15 Raspberry Pi Projekte für Anfänger
      • Ampelschaltung mit GPIOs
      • GPIOs mit Port Expander erweitern
      • Elektronischer Würfel
      • 13 tolle Projekte für Kinder und Jugendliche
      • Roboter selber bauen
      • In Visual Studio Code mit C++ programmieren
      • Wünsch dir ein Tutorial
    • Programmieren lernen
      • Teil 1: Einführung
      • Teil 2: GPIOs steuern
      • Teil 3: GUI erstellen
      • Teil 4: PWM
      • C# GUI Apps entwickeln
  • Hardware & GPIO
    • 50 der wichtigsten Raspberry Pi Sensoren und Module – Aufgelistet mit Links zu den TutorialsRaspberry Pi Sensoren
    • Beliebte Tutorials
      • Raspberry Pi Luftfeuchtigkeit/Temperatur SensorLuftfeuchtigkeit und Temperatur messen
      • Raspberry Pi WS2801B RGB LED Streifen anschließen und steuernWS2801 RGB LED Streifen anschließen und steuern
      • Raspberry Pi Funksteckdosen (433Mhz)Raspberry Pi Funksteckdosen (433Mhz)Funksteckdosen (433MHz) steuern
      • Raspberry Pi Relais ModulRaspberry Pi: Relais-Schalter per GPIO steuern
      • Raspberry Pi Servo MotorRaspberry Pi Servo Motor Steuerung
      • Amazon-Alexa-deutsch-auf-dem-Raspberry-Pi-installierenAmazon Alexa (Deutsch) auf dem installieren
      • Entfernung messen mit Ultraschallsensor HC-SR04 – Raspberry PiEntfernung messen mit Ultraschallsensor HC-SR04
      • 71-M-PU7vML.-S3L1500-Raspberry Pi’s über 433 MHz Funk kommunizieren
      • Raspberry Pi PIR Motion SensorBewegungsmelder PIR anschließen und steuern
      • Raspberry Pi USB Boot per Stick oder SSD Festplatte einrichtenUSB Boot per Stick oder SSD Festplatte
      • Analog
        • Raspberry Pi MCP3008 ADCMCP3008: Am Raspberry Pi analoge Signale auslesen
        • Raspberry Pi Gas Sensor MQ-2Raspberry Pi Gas Sensor (MQ-X) konfigurieren und auslesen
        • Raspberry Pi PulsmesserRaspberry Pi Pulsmesser: Herzfrequenz messen
        • Joystick am Raspberry Pi benutzen (mit MCP3008)Joystick am Raspberry Pi benutzen (mit MCP3008)
        • infrarot sharp distance senserInfrarot Abstandsmessung mit dem Raspberry Pi
        • Raspberry Pi Drehregler - Rotary EncoderKY040 Drehregler als Lautstärkeregler für den Raspberry Pi
        • Easpberry Pi Soil SensorBodenfeuchtigkeit mit dem Raspberry Pi messen
        • Raspberry Pi KeypadRaspberry Pi Keypad anschließen – Codeschloss
        • Raspberry Pi door sensorÜberwachung von Fenstern und Türen mit dem Raspberry Pi und Reed-Relais
        • Raspberry Pi Fotowiderstand HelligkeitssensorFotowiderstand (Helligkeitssensor) am Raspberry Pi
        • Raspberry Pi Waage selber bauen (mit Gewichtssensor HX711)Raspberry Pi Waage selber bauen (mit Gewichtssensor HX711)
      • Funk
        • 71-M-PU7vML.-S3L1500-Raspberry Pi’s über 433 MHz Funk kommunizieren lassen
        • Remote Control Raspberry Pi 433Mhz Radio TransmitterRaspberry Pi mit 433Mhz Funksender fernsteuern
        • Raspberry Pi Funksteckdosen (433Mhz)Raspberry Pi Funksteckdosen (433Mhz)Raspberry Pi Funksteckdosen (433MHz) steuern
        • Raspberry Pi MiFlora - Xiaomi Pflanzensensor in OpenHAB einbindenMiFlora – Xiaomi Pflanzensensor ins Smart Home einbinden
        • Raspberry Pi RFID RC522 TüröffnerRaspberry Pi RFID RC522 Tags auslesen (NFC)
        • Funkkommunikation zwischen Raspberry Pi's und Arduinos (2.4 GHz)Funkkommunikation (2.4 GHz): Arduino & Raspberry Pi
        • Raspberry Pi Radio ReceiverRaspberry Pi als Radioempfänger benutzen
        • Raspberry Pi Xbox 360 Wireless ControllerRaspberry Pi mittels Xbox 360 Controller steuern
        • Raspberry Pi GSM Modul - Huawei Internet SticksRaspberry Pi GSM Modul – Mobiles Internet
        • Raspberry Pi Bluetooth DatentransferRaspberry Pi Bluetooth Datentransfer zum Smartphone
      • Infrarot & Laser
        • Raspberry Pi Infrarot FernbedienungRaspberry Pi: Per IR Remote Befehle ausführen
        • infrarot sharp distance senserInfrarot Abstandsmessung mit dem Raspberry Pi
        • Raspberry Pi Laser Lichtschranke für weite DistanzenRaspberry Pi Laser Lichtschranke für weite Distanzen
        • Infrarot Raspberry Pi FernbedienungInfrarot Steuerung einrichten
        • Raspberry Pi Infrarot Lichtschranke bauen und Geschwindigkeit messenRaspberry Pi Infrarot Lichtschranke bauen
        • Raspberry Pi Fotowiderstand HelligkeitssensorFotowiderstand (Helligkeitssensor) am Raspberry Pi
      • Temperatur & Navigation
        • Raspberry Pi Luftfeuchtigkeit/Temperatur SensorRaspberry Pi: Luftfeuchtigkeit und Temperatur messen
        • Measuring Temperature with a Raspberry Pi Temperature Sensor (1-Wire)Raspberry Pi Temperatursensor (1-Wire): Temperatur messen
        • Raspberry Pi BMP180 SensorRaspberry Pi und I2C Luftdrucksensor BMP180
        • Raspberry Pi RTC Real Time ClockReal Time Clock Modul steuern
        • Rotation und Beschleunigung mit dem Raspberry Pi messenRotation und Beschleunigung mit dem Raspberry Pi messen
        • Raspberry Pi GPS ModulRaspberry Pi GPS Ortungs- / Navigationsgerät bauen
        • Raspberry Pi Kompass selber bauenRaspberry Pi Kompass selber bauen (HMC5883L)
        • Kontaktlosen Infrarot-Temperatursensor MLX90614 am Raspberry Pi auslesenMLX90614 – Kontaktlos Temperaturen messen
      • Displays
        • Raspberrry Pi HD44780 I2CHD44780 LCD Display per I2C ansteuern
        • Raspbery Pi LCD DisplayRaspberry Pi LCD Display: 16×2 Zeichen anzeigen
        • DisplayTipps & Tricks zum offiziellen 7″ Raspberry Pi Touchscreen
        • Raspberry Pi TouchscreenTestbericht zum 7″ Raspberry Pi Touchscreen Display
        • LCD Touch Display (3.2″) am Raspberry PiLCD Touch Display (3.2″) am Raspberry Pi
        • tft lcd touch displayRaspberry Pi LCD Touch Display Teil 2 – Anpassungen
        • Raspberry Pi LED MAX7219 Dot Matrix – ProjektübersichtRaspberry Pi LED Matrix – Projektübersicht
        • Raspberry Pi 7 Segment Anzeige Kathode mit MAX7219Raspberry Pi: 7 Segment Anzeigen mit MAX7219 steuern (Kathode)
        • 7 Segment Anzeige (Anode) mit MAX7219 MAX7221 und Raspberry Pi7 Segment Anzeige mit MAX7219 am Raspberry Pi (Anode)
        • Raspberry Pi Tablet Raspad TestberichtRaspberry Pi Tablet „Sunfounder RasPad“ Testbericht
      • Motoren & Sonstige
        • Raspberry Pi Stepper Motor Control with L293D / ULN2003ARaspberry Pi Schrittmotor ansteuern
        • Raspberry Pi Servo MotorRaspberry Pi Servo Motor Steuerung
        • Raspberry Pi PCA9685 mehrere Servos gleichzeitig steuernMehrere Servo Motoren per Raspberry Pi steuern
        • Raspberry Pi PIR Motion SensorBewegungsmelder PIR anschließen und steuern
        • How to use a Raspberry Pi Fingerprint Sensor for AuthenticationRaspberry Pi Fingerprint Sensor zur Authentifizierung nutzen
        • Raspberry Pi Akku AdapterRaspberry Pi mit Akkus/Batterien betreiben
        • Entfernung messen mit Ultraschallsensor HC-SR04 – Raspberry PiEntfernung messen mit Ultraschallsensor HC-SR04
        • Raspberry Pi WS2801B RGB LED Streifen anschließen und steuernWS2801 RGB LED Streifen anschließen und steuern
        • Raspberry Pi WS2812 RGB LED StripWS2812 RGB LED Streifen per Raspberry Pi steuern
        • Raspberry Pi Überwachungskamera LivestreamÜberwachungskamera Livestream einrichten
        • NoIRAufnahmen mit dem offiziellen Kamera Modul
        • Raspberry Pi Zero - establishing an Ethernet connection (ENC28J60)Raspberry Pi Zero – Ethernet Verbindung
  • Software
    • Webserver Installation
      • apache2_menu25Teil 1 – Apache2
      • php_menu25Teil 2 – PHP 5
      • mysql_menu25Teil 3 – MySQL
      • phpmyadmin_menu25Teil 4 – phpMyAdmin
      • ftp_menu25Teil 5 – FTP Server
      • dns_menu25Teil 6 – DNS Server via No-IP
      • home_menu25Homeverzeichnis ändern
      • share_25Samba Server: Dateien im Netzwerk teilen
      • nodejs_menu25Node.js Webserver installieren und GPIOs schalten
      • ssl_menu25SSL Zertifikat kostenlos mit Let’s Encrypt
      • wordpress_25Eigenen WordPress-Server einrichten
      • cloud-25Nextcloud auf dem Raspberry Pi installieren
    • Entertainment
      • led_menu25Raspberry Pi Ambilight für alle Geräte mit OSMC selber bauen
      • amazon_menu25Amazon Alexa (Deutsch) auf dem Raspberry Pi installieren
      • controller_25Raspberry Pi RetroPie – Spielekonsole selber bauen
      • kodi_menu25Mediencenter Raspbmc als SmartTV mit dem Raspberry Pi
      • android_25Android TV Box zum selber bauen
      • apple-2316234_640Raspberry Pi als AirPlay-Empfänger
      • jukebox_menu25Raspberry Pi als Jukebox (Spotify, Soundcloud, TuneIn, uvm.)
      • steam_25Steam Spiele streamen
      • minecraft_menu25Raspberry Pi Minecraft Server
      • youtube_25YouTube Live Streaming einrichten
      • qr-code-tutorials-raspberrypi.de_25Raspberry Pi QR / Barcode Scanner
    • Fernsteuerung
      • rdp_menuRaspberry Pi Remotedesktop Verbindung
      • ssh_menu25SSH Zugriff einrichten via Putty (Windows)
      • vnc_menu25Raspberry Pi mittels VNC fernsteuern
      • welcome_menu25SSH Terminal Begrüßung ändern
      • telegram1_menu25Telegram Messenger auf dem RaspberryPi
      • telegram2_menu25Mit Telegram Messenger Raspberry Pi steuern
      • bluet_menu25Raspberry Pi Bluetooth Datentransfer zum Smartphone
      • alexa_voice_25Eigenen Raspberry Pi Alexa Skill bauen
      • microphone_25Sprachsteuerung selber bauen
      • mqtt_25MQTT Broker/Client Funkkommunikation
      • mail_25Vom Raspberry Pi Emails senden
      • twitter_25Per Twitter Bot Nachrichten posten
    • Weitere
      • loggen_menu25Sensordaten mit ThingSpeak loggen und auswerten
      • mysql_datalogger25Per lokaler MySQL Datenbank zum Raspberry Pi Datenlogger
      • opencv_menu25OpenCV auf dem Raspberry Pi installieren
      • arduino_menu30tWiringPi installieren & Pinbelegung (Raspberry Pi)
      • radio_menu25Raspberry Pi als Radio Sendestation
      • win10_menu25Windows 10 IoT auf dem Raspberry Pi installieren
      • printer_25Drucker einrichten und per Knopfdruck Bilder drucken
      • gsm_menu25Raspberry Pi GSM Modul – Mobiles Internet (LTE, 3G, UMTS)
      • autostart_menu25Autostart: Programm automatisch starten lassen
      • machine-learning-25Raspberry Pi Machine Learning erlernen
  • Projekte
      • roboter_menu30tRoboter
        • Raspberry Pi Roboter ProjektRaspberry Pi Roboter Projektübersicht
        • Raspberry Pi Roboter Bausatz fertigTeil 1: Zusammenbau
        • Raspberry Pi Roboter - Linien folgenTeil 2: Linien folgen lassen
        • Raspberry Pi Roboter per Infrarot Fernbedienung steuernTeil 3: Per Infrarot Fernbedienung steuern
        • Raspberry Pi Roboter: Ultraschall AutopilotTeil 4: Automatisch Hindernissen ausweichen
        • Raspberry Pi Roboter der eigenen Stimme folgen lassenTeil 5: Der eigenen Stimme folgen lassen
        • Raspberry Pi Roboter mit Xbox 360 Controller fernsteuernTeil 6: Mit Xbox 360 Controller Roboter fernsteuern
        • Raspberry Pi Robot Arm 6DOF6-Gelenkigen Roboter Arm am Raspberry Pi betreiben (6 DOF)
      • led_menu30LED Matrix
        • Raspberry Pi LED MAX7219 Dot Matrix – ProjektübersichtMAX7219 LED Matrix – Projektübersicht
        • 8×8 LED Dot Matrix Parts8×8 LED Matrix – Zusammenbau und Installation
        • Raspberry Pi Bibliothek für mehrzeilige m x n MAX7219 LED MatrizenBibliothek für mehrzeilige m x n MAX7219 LED Matrizen
        • Graphiken auf mehrzeiligen Raspberry Pi LED Matrizen zeichnenGraphiken auf mehrzeiligen Raspberry Pi LED Matrizen zeichnen
        • Pong auf MAX7219 Matrizen spielen (mit Joystick) – Raspberry PiPong auf MAX7219 Matrizen spielen (mit Joystick)
        • Snake auf Raspberry Pi MAX7219 Matrizen spielenSnake auf Raspberry Pi MAX7219 Matrizen spielen
        • 7 Segment Anzeige (Anode) mit MAX7219 MAX7221 und Raspberry Pi7 Segment Anzeige (Anode) mit MAX7219/MAX7221
        • Raspberry Pi 7 Segment Anzeige Kathode mit MAX7219Raspberry Pi: 7 Segment Anzeigen mit MAX7219 steuern (Kathode)
      • wetterstation_menu30Wetterstation
        • Raspberry Pi Wetterstation mit OpenHAB 2 bauenEigene Raspberry Pi Wetterstation mit OpenHAB 2 bauen
        • Raspberry Pi Luftfeuchtigkeit/Temperatur SensorLuftfeuchtigkeit und Temperatur messen
        • raspberry_pi_thingspeak_daten_loggenSensordaten mit ThingSpeak loggen und auswerten
        • Raspberry Pi BMP180 SensorRaspberry Pi und I2C Luftdrucksensor BMP180
        • Measuring Temperature with a Raspberry Pi Temperature Sensor (1-Wire)Raspberry Pi Temperatursensor (1-Wire): Temperatur messen
        • ESP8266 NodeMCU Außenposten-Wetterstation für den Raspberry PiESP8266 Wetterstation Außenposten für den Raspberry Pi
        • Raspberry Pi Gas Sensor MQ-2Raspberry Pi Gas Sensor (MQ-X) konfigurieren und auslesen
      • arduino_menu30tArduino & ESP8266
        • ESP8266 Microcontroller BoardEinführung & Programmierung des ESP8266 NodeMCU Boards
        • Raspberry Pi + ESP8266 NodeMCU: Per WLAN Daten sendenRaspberry Pi + ESP8266 NodeMCU: Per WLAN Daten senden
        • ESP8266 NodeMCU Außenposten-Wetterstation für den Raspberry PiESP8266 Wetterstation Außenposten für den Raspberry Pi
        • Mit dem NodeMCU ESP8266 433MHz Funksteckdosen steuernMit dem NodeMCU ESP8266 433MHz Funksteckdosen steuern
        • ESP8266 NodeMCU HD44780 LCD Display per I2C steuernNodeMCU ESP8266: HD44780 LCD Display per I2C steuern
        • ESP8266 Grafikdisplay: Am SSD1306 OLED per I2C Bilder & Text anzeigen
        • ESP8266 Google Maps API RoutenplanerESP8266 Google Maps API Routenplaner auf LCD anzeigen
        • 2000px-Arduino_Logo.svgRaspberry Pi und Arduino – Einführung
        • arduino unoArduino und Raspberry Pi miteinander kommunizieren lassen
        • Funkkommunikation zwischen Raspberry Pi's und Arduinos (2.4 GHz)Funkkommunikation zwischen Raspberry Pi’s und Arduinos (2.4 GHz)
        • NodeMCU: ESP8266 mit Solarpanel und Akku mit Strom versorgenNodeMCU: ESP8266 mit Solarzelle und Akku mit Strom versorgen
        • ESP8266 Access Point: Günstigen Wlan Repeater selber bauenESP8266 Access Point: Günstigen Wlan Repeater selber bauen
      • Mini Projekte
        • Raspberry Pi Gewächshaus automatisch selber bauenAutomatisches Raspberry Pi Gewächshaus selber bauen
        • Eigene Raspberry Pi Gartenbewässerung mit Webseite bauenEigene Gartenbewässerung mit Webseite bauen
        • Raspberry Pi Radio StationRaspberry Pi als Radio Sendestation verwenden
        • Raspberry Pi Radio ReceiverRaspberry Pi als Radioempfänger benutzen (Autoradio, Car PC)
        • spotify-logo-primary-horizontal-dark-background-rgbRaspberry Pi als Jukebox (Spotify, Soundcloud, TuneIn, uvm.) – Online Radio
        • Raspberry Pi RetroPie Guide - SNES Classic Spielekonsole selber bauenRaspberry Pi RetroPie Guide – SNES Spielekonsole bauen
        • Android + Raspberry Pi: Funksteckdosen App BedienungRaspberry Pi + Android/iOS: Funksteckdosen per App schalten
        • Indirekte Deckenbeleuchtung selber bauen mit farbigem LED LichtIndirekte Deckenbeleuchtung selber bauen mit farbigem LED Licht
  • Sonstiges
    • Wünsch dir ein Tutorial
    • News
    • Reviews
      • Pi Cap – Kapazitives Raspberry Pi Erweiterungsboard
      • Raspberry Pi Tablet „Sunfounder RasPad“ – Testbericht & Einrichtung
      • Testbericht zum 7″ Raspberry Pi Touchscreen Display
      • CrowPi 2 Testbericht: Laptop & Lern-Kit für Kinder
      • Daten auf dem Wio Terminal LCD Screen anzeigen
    • Raspberry Pi Zero
      • Offizielles 5$ Raspberry Pi Zero Modul vorgestellt
      • Raspberry Pi Zero – Ethernet Verbindung herstellen (ENC28J60)
      • Raspberry Pi: WS2801 RGB LED Streifen anschließen und steuern
  • Hausautomation
    • OpenHAB
      • steckdose_25Sonoff S20 Wifi Steckdose steuern
      • wireless_25Funksteckdosen (433 MHz) schalten
      • schalter_25Relais steuern (Rollladen, Lichter, etc.)
      • wetterstation_menu30Wetterstation mit OpenHAB 2 bauen
      • ws28_25WS28xx RGB LED Streifen steuern
      • touchscreen_25Touchscreen Panel bei Näherung aktivieren
      • mqtt_25MQTT Datenabfrage: Raspberry Pi an ESP8266
      • spotify_25Remote Spotify Player im Smart Home
      • heizung_25eQ-3 Thermostat im Smart Home
    • Einführung
      • Raspberry Pi Smart Home OpenHAB installierenOpenHAB installieren & konfigurieren
      • Home Assistant auf dem Raspberry Pi – Erste Schritte
    • ESP8266 NodeMCU
      • esp8266_25Einführung & Programmierung
      • arduino_25ESP8266: Arduino IDE installieren
      • lcd_25NodeMCU HD44780 LCD
      • battery_25Batteriebetrieb via Deep-Sleep
      • wifi_menuPer WLAN Daten senden
      • wetterstation_menu30Wetterstation Außenposten
      • maps_25Google Maps Routenplaner
      • wireless_25NodeMCU Funksteckdosen steuern
      • mail_25Vom NodeMCU Emails versenden
      • rgb_25WS2812B LEDs am Smartphone steuern
      • solar_25ESP8266 Stromversorgung mit Solarzelle
    • Überwachung
      • Aufnahmen mit dem offiziellen Kamera Modul des Raspberry Pi
      • Raspberry Pi: Überwachungskamera Livestream einrichten
      • mailbox_25Briefkasten Sensor – Email Benachrichtigung bei neuer Post
      • Raspberry Pi Überwachungskamera mit Webcam betreiben
      • Überwachung von Fenstern und Türen mit dem Raspberry Pi und Reed-Relais
      • ESP32 Cam Livestream Tutorial für Kamera Modul
    • Raspberry Pi + Android: Benachrichtigungen von Bewegungsmelder
    • Raspberry Pi + Android/iOS: Funksteckdosen per App schalten
    • Raspberry Pi + Android: Schwenkbarer Kamera-Livestream
      • Smart Home
        • Amazon Alexa (Deutsch) auf dem Raspberry Pi installieren
        • Raspberry Pi Funksteckdosen (433MHz) steuern – Tutorial
        • Raspberry Pi Sprachsteuerung selber bauen (Hausautomatisierung)
  • Englisch
Tutorials for Raspberry Pi Tutorials for Raspberry Pi
Home»Erste Schritte»Raspberry Pi GPIO Erklärung für Beginner + Programmierung (Teil 2)

Raspberry Pi GPIO Erklärung für Beginner + Programmierung (Teil 2)

Facebook Twitter LinkedIn Tumblr Email Reddit
Raspberry Pi GPIO steuern - Programmieren Lernen
Teilen
Facebook Twitter LinkedIn Email Tumblr Reddit Telegram WhatsApp

Eine der Besonderheiten des Raspberry Pi’s sind die programmierbaren Input-Output Pins. Diese sog. GPIOs können einfach über ein Programm geschaltet werden, was wir in diesem Tutorial durchgehen. Dafür schreiben wir ein Python Programm, womit wir einerseits Eingaben erfassen und andererseits die Raspberry Pi GPIO Pins schalten, um so andere Module und Sensoren schalten zu können. Darüber hinaus erkläre ich in diesem Tutorial die Funktionsweise eines Breadboards / Steckbrett.

Falls du den ersten Teil noch nicht gelesen und evtl. noch Probleme mit den Basics hast, würde ich raten das zunächst durchzugehen. Für alle, die bereits Programmiererfahrung haben, aber noch nicht mit den GPIOs gearbeitet haben, können auch direkt hiermit starten.

Übrigens: Für die weiteren Teile wäre es super, falls ihr Anregungen habt bzw. was euch vor allem interessiert. Ich werde versuchen, das mit einzubauen.

 

Zubehör

In diesem Tutorial werden wir ein paar Hardware Bausteine brauchen. Diese sind unter anderem:

  • Breadboard, dessen Funktionsweise anschließend erklärt wird.
  • Male-Female Jumper Kabel für die Verbindung zwischen Raspberry Pi und Breadboard.
  • LED Set
  • Taster / Schalter
  • Set an Widerständen

Diese Bauteile werden übrigens immer wieder benötigt. Wenn du noch weitere Hardware-Projekte nachbauen willst, wirst du dieses Zubehör definitiv weiter benötigen.

 

Funktionsweise eines Breadboards / Steckbretts

Ein Breadboard (deutsch: Steckbrett) ist eine Hilfe um Schaltungen schnell aufbauen zu können, ohne diese jedes mal Löten zu müssen. Es bietet vor allem beim Testen und Konzipieren große Vorteile. Dabei gibt es Breadboard in verschiedenen Größen, wobei der Aufbau jedoch meist wie folgt ist:

Raspberry Pi GPIO Breadboard SteckbrettIn der schematischen Zeichnung sind unten die Verbindungen markiert. Die Linien zeigen dabei auf, welche der Löcher miteinander verbunden sind. Unten und oben sind zwei horizonale Leisten zu sehen, an die man normalerweise den Plus- und Minuspol eines Geräts hängt.

Bei den mittleren Pins sind die Verbindungen vertikal. Dabei kann z.B. eine LED in zwei Spalten nebeneinander gesteckt werden. Doch dazu gleich mehr.

 

Raspberry Pi GPIO Übersicht

Seit dem Model B+ haben die Raspberry Pi’s eine 40 Köpfige Pinleiste. Davon sind nicht alle auslesbar bzw. beschaltbar, da es auch einige Spannungs- und Masseanschlüsse gibt. In der folgenden Grafik sind die kompletten Pins inkl. Funktionen und Nummerierung aufgelistet. Die linke (grüne) Seite soll dabei die Platine des Raspberry Pi’s symbolisieren.

Raspberry Pi GPIO Pin Belegung
Raspberry Pi GPIO Pin Belegung

Alle Pins, welche „GPIO“ im Namen haben, können programmiert werden. Darüber hinaus gibt es noch „Ground“ (=Masseanschluss) und die Spannungspins (3.3V und 5V).

Wie du siehst, gibt es zwei Pin Belegungen: Einmal die aufsteigende Pin Belegung (oben links bei 1 beginnend) und dann noch die recht zufällig gewählte Nummerierung der GPIOs. Dies ist wichtig, da man über beide Nummern einen GPIO ansprechen kann.

So entspricht bspw. Pin 15 = GPIO 22. Achte immer darauf, ob von Pin oder GPIO gesprochen wird. In den meisten Tutorials wird jedoch nicht die Pin-Nummerierung, sondern die GPIO Nummer genutzt.

 

Vorbereitung

Wie zuvor auch öffnen wir die Python Konsole über das Startmenu > Programming.

In der geöffneten Python Konsole geben wir nun zunächst folgendes ein:

import RPi.GPIO as GPIO

Wir importieren damit eine Bibliothek, womit wir die Raspberry Pi GPIO Pins programmieren können. Diese Bibliothek hat alle benöigten Funktionen bereits enthalten, sodass wir keine zusätzlichen Funktionen dafür schreiben müssen.

Weiterhin importieren wir auch noch ein Bibliothek, mit welcher wir das Skript für kurze Zeit stoppen können. Dies wird im Anschluss noch interessant.

import time

Anschließend geben wir an, ob wir die GPIOs per Boardnummern (1-40) oder über ihre GPIO Nummer ansprechen wollen. Da wir letzteres wollen, lautet der Befehl dazu:

GPIO.setmode(GPIO.BCM)

 

 

Raspberry Pi GPIO Pins schalten – Ausgabe

Zunächst möchten wir ein paar einfache LEDs mittels der GPIOs schalten. Dazu bauen wir die LEDs entsprechend der nachfolgenden Grafik auf. Als Verbindung zwischen Raspberry Pi und dem Breadboard kannst du die Jumper Kabel nehmen und für alle anderen Verbindung einfachen Draht. Die Farben spielen keine Rolle und sind nur zur besseren Unterscheidung gedacht.

Raspberry Pi GPIO Output Steckplatine

Die LED hat zwei unterschiedlich lange Enden. Das längere Ende kommt an die positive 3.3 Volt Spannung des GPIO 23 (Pin 16). Der gewählte Widerstand ist 330Ω (Ohm).

Nun geht es zurück in die Python Konsole, in der wir unseren Code eingeben. Zunächst einmal müssen wir den Pin als Output definieren:

GPIO.setup(23, GPIO.OUT)

Damit stehen nun die Output-Funktionen für diesen Pin zur Verfügung. Mit den folgenden beiden Befehlen können wir die LED erst an- und anschließend wieder ausschalten:

GPIO.output(23, GPIO.HIGH)
GPIO.output(23, GPIO.LOW)

Mit diesem Befehl wird einfach gesagt, ob eine Spannung von 3.3V (HIGH) oder von 0V (LOW) angelegt werden soll.

 

Ist doch ziemlich einfach, oder? Wer eine kleine Blinkschaltung bauen möchte, kann dies z.B. folgendermaßen:

for i in range(5):
    GPIO.output(23, GPIO.HIGH)
    time.sleep(0.5)
    GPIO.output(23, GPIO.LOW)
    time.sleep(0.5)

Damit wird die LED 5 Mal an- und wieder ausgeschaltet, wobei dazwischen jeweils eine halbe Sekunde gewartet wird, bevor der Status geändert wird.

 

 

Raspberry Pi GPIO Pins auslesen – Eingabe

Mit den GPIOs können aber nicht nur Ströme geschaltet werden, sondern auch ausgelesen werden. Daher erweitern wir nun unsere Schaltung um einen Taster. Der Status soll dazu ausgelesen werden und sobald der Taster gedrückt wird, soll die LED leuchten. Wird der Taster nicht mehr gedrückt, so soll die LED auch aufhören zu leuchten.

Zunächst erweitern wir die Schaltung. Neben dem Taster benötigen wir einen 10.000Ω Widerstand, welcher von einem Ende des Tasters an Ground verbunden wird. Dazwischen geht eine Verbindung zum GPIO 24 (Pin 18). Das andere Ende des Schalters wird an die 3.3 Volt Spannung angeschlossen:

Raspberry Pi GPIO Input SteckplatineWarum das ganze? Solange der Schalter nicht gedrückt ist, ist die Verbindung zwischen der 3.3V Spannung und dem GPIO offen. Damit aber ein eindeutiger Zustand erkannt wird (entweder 0V oder 3.3V), ist die Verbindung über einen sehr großen Widerstand zum Masseanschluss verbunden.
Sobald der Taster gedrückt wird, schließt sich die Verbindung und am GPIO liegen 3.3V an.

Hinweis: Schließe niemals mehr als 3.3V an die GPIOs an, da sie sonst kaputt gehen können.

Kommen wir zum Code. Auch hier müssen wir zunächst den Status festlegen, jedoch wird diesmal der Pin als Input definiert:

GPIO.setup(24, GPIO.IN)

Nun können wir auch schon den Status abfragen:

GPIO.input(24)

Dies wird entweder 0 (wenn der Taster nicht gedrückt wurde) oder 1 (Taster gedrückt) ausgeben.

 

Im letzten Schritt erweitern wir das Programm nun noch folgendermaßen, sodass die LED immer dann an ist, wenn der Taster auch gedrückt wird.

# Endlosschleife
while True:
    if GPIO.input(24) == 0:
        # Ausschalten
        GPIO.output(23, GPIO.LOW)
    else:
        # Einschalten
        GPIO.output(23, GPIO.HIGH)

Abbrechen kannst du den Vorgang übrigens mit STRG+C.

 

Zusammenfassung

Zusammenfassend gibt es hier noch den Code des gesamten Skripts, falls jemand diesen in einer Datei speichern und als Ganzes aufrufen möchte.

import RPi.GPIO as GPIO
import time

GPIO.setmode(GPIO.BCM)

GPIO.setup(23, GPIO.OUT)
GPIO.setup(24, GPIO.IN)

for i in range(5):
    GPIO.output(23, GPIO.HIGH)
    time.sleep(0.5)
    GPIO.output(23, GPIO.LOW)
    time.sleep(0.5)

# Endlosschleife
while True:
    if GPIO.input(24) == 0:
        # Ausschalten
        GPIO.output(23, GPIO.LOW)
    else:
        # Einschalten
        GPIO.output(23, GPIO.HIGH)

Falls dir diese Einleitung Spaß gemacht hat, kann ich dir nur das Mini Projekt einer Ampelschaltung empfehlen. Gegliedert in zwei Teile wird darin ein funktionierendes Ampelsystem, bestehend aus Auto- und Fußgängerampel, gebaut.

Weitere Informationen zu diesem Aufbau findest du z.B. hier.

Mit dem hier vermittelten Wissen kannst du bereits erste kleine Projekte starten. Hier ist ein kleiner Vorgeschmack:

  • Raspberry Pi: Relais-Schalter per GPIO steuern
  • Raspberry Pi Temperatursensor (1-Wire): Temperatur messen
  • Raspberry Pi Ampelschaltung mit GPIO Teil 1
  • weiterführend auch: Raspberry Pi GPIOs mittels I2C Port Expander erweitern – Teil 1

Im nächsten Teil schreiben wir unsere erste GUI (Graphisches User Interface), womit wir die GPIOs auch per Oberfläche steuern können.

Einsteiger Programmieren lernen Programmierung python raspberry pi einstieg
Teilen Facebook Twitter Pinterest LinkedIn Tumblr Email
Vorheriger BeitragProgrammieren lernen am Raspberry Pi – Teil 1: Einführung
Nächster Beitrag How to connect and control a Raspberry Pi WS2801 RGB LED Strip

Ähnliche Beiträge

ESP32 TDS Sensor: Wasserqualität im Smart Home messen

ESP32 pH-Sensor – Automatische pH-Messung für Pool und Hydroponik

Home Assistant auf dem Raspberry Pi – Erste Schritte

Mit der Raspberry Pi REST API via Python alle GPIOs steuern

99 Kommentare

  1. Hans am 2. April 2017 9:30

    Hallo,
    mir dieser Serie verstehe ich es sogar, Danke!!
    Muss es hier
    „Die LED hat zwei unterschiedlich lange Enden. Das längere Ende kommt an die positive 3.3 Volt Spannung des GPIO 23 (Pin 12). Der gewählte Widerstand ist 330Ω (Ohm).“
    nicht Pin 16 heissen?

    • Felix am 2. April 2017 12:23

      Du hast natürlich Recht. Ich habe es verbessert, danke für den Hinweis.

  2. G.E. am 2. April 2017 13:58

    Super Arbeit! Weiter so!
    L.G. G.

    • fred am 26. Februar 2019 11:08

      ehrenmann

  3. björn am 2. April 2017 15:04

    bestens,
    auch dieses tut abgearbeitet
    nur ist mir dabei aufgefallen wenn er auf tastendrückwartet mit der cpu last auf 100 % ist und die temp ganz schön nach oben schnellt. irgentwo habe ich da was mit interruppt oder event entdeckt was ich mit meinem py kenntnissen noch nicht einarbeiten kann.

    mit dir und deiner hp macht es auch echt spass alles umzusetzen und zu lernen
    glaube dadurch habe ich so einige pis das leben gerettet ..(habe einen auf dem gewissen dank motorshild, meine py und elktro kentnissen :))

    • Felix am 2. April 2017 15:07

      Das ist richtig, aber ich habe es bewusst weggelassen. Die meisten, die das Tutorial lesen, haben kaum / keine Erfahrung mit den GPIOs und Interrupts etc. helfen dabei meiner Meinung nach nicht beim Verständnis. Vielleicht baue ich das in einem der folgenden Teile ein.

      • björn am 2. April 2017 15:35

        ja das wäre klasse wenn du da auch noch bischen drauf eingehst, in deinen späteren tuts wird bestimmt mal ein eckchen frei sein

      • Bachsau am 24. September 2017 12:50

        Es ist aber nie gut, etwas erst falsch zu lernen um es später zu berichtigen. Eine solche schleife sollte man zumindest so bauen, dass sie nur alle 100ms einmal durchlaufen wird, z.B. mit Hilfe eines Schlafbefehls.

  4. Hajo Küster am 2. April 2017 15:43

    Warum verwenden Sie nicht das modernere und weiter entwickelte GPIOzeo
    https://media.readthedocs.org/pdf/gpiozero/latest/gpiozero.pdf

    • Felix am 2. April 2017 15:49

      Ich fand es wichtiger, dass man erst einmal ein „Aha-Erlebnis“ bekommt und sieht, dass das Ansteuerung doch Einfacher als vielleicht gedacht ist. Die Wahl der Bibliothek ist dabei zweitrangig. Wer ein bißchen Erfahrung gesammelt hat, kann die Bibliothek ja immer noch wechseln.

  5. Tomy am 2. April 2017 16:27

    Hi Felix, du bist der Hammer. Einfach weiter und weiter.

  6. Leo am 4. April 2017 11:00

    Hallo,
    erstmal vielen Dank für die tolle Seite !!! Habe jetzt mal 2 Fragen:
    1. (wahrscheinlich ganz dumme Frage) : bei der aller ersten Schaltung versteh ich das rote Jumper-Kabel nicht. Vom Pi aus Pin1 an das Board +, aber dann? Wie schließt sich der Kreislauf?
    2. Frage: Wenn ich neue Sachen am Board umstecke, muss ich davor immer den Pi herunterfahren, oder kann ich gleich neue Schaltungen ausprobieren?

    • Felix am 4. April 2017 11:05

      Hallo Leo,
      richtig, in der ersten Schaltung wird das rote Kabel (noch) nicht gebraucht. Allerdings in der nächsten Schaltung. Außerdem wollte ich schon auf die Verwendung der seitlichen Breadbordleiste hinweisen (für VCC/GND).
      2. Solange du dir deiner Schaltung sicher bist, brauchst du ohn nicht auszuschalten / vom Strom trennen. Du solltest aber auf keinen Fall einen Kurzschluss (VCC direkt an GND) verursachen, da das den Pi grillen könnte.

      • Leo am 5. April 2017 18:00

        Vielen Dank für die rasche Antwort! Etwas habe ich noch nicht ganz verstanden bei dem Beispiel mit dem Schalter. Könntest du das vielleicht noch etwas genauer erklären bzw. kann ich wo anderst nachlesen?

        Habe ich das richtig so verstanden: Die LED hat einen eigenen „Kreislauf“ und der Schalter hat einen eigenen „Kreislauf“. Wenn der Schalter gedrückt wird, dann wird über das Programm mitgeteilt, dass PIN 16 Strom durchlassen soll -> somit leuchtet die LED?

        Frage: wenn der Schalter nicht gedrückt ist, dann fließt doch kein Strom, oder? Warum brauche ich dann den 10k-OHM Widerstand? Warum befindet sich der Widerstand erst nach dem gelbem Jumperkabel?

      • Felix am 5. April 2017 19:44

        Am besten du ignorierst die VCC Verbindung im ersten Schaltbild komplett. Deine Annahme ist soweit richtig. Der Input Pin mit Schalter dran, erkennt wann er gedrückt wurde (da Strom fließt) und wir sagen daraufhin dem anderen Pin, dass dieser Strom für die LED schalten soll.
        Bzgl. der Frage: Es gibt nur zwei Zustände: 0V Spannung oder 3.3V Spannung. Wenn nun keine Spannung anliegt, haben wir keinen eindeutigen Zustand. Daher schließen wir den Pin über einen sehr großen Widerstand (10k) an GND an. Daraus folgt, dass wenn der Schalter nicht gedrückt wird, definitiv 0V anliegen. Wenn der Schalter gedrückt ist, fließt ein winziger Teil der Spannung über den Widerstand (daher grpßer Widerstand), allerdings macht dies nichts aus, denn der größte Teil kommt an unseren Pin an und wir haben wieder einen eindeutigen Zustand (HIGH). Weiterführende Literatur: Pull-Up/Down Widerstand.

  7. Hans am 10. April 2017 15:07

    Hallo,
    jetzt muss ich doch nachfragen.
    In dem Teil:
    „Die LED hat zwei unterschiedlich lange Enden. Das längere Ende kommt an die positive 3.3 Volt Spannung des GPIO 23 (Pin 16). Der gewählte Widerstand ist 330Ω (Ohm).“

    Woher weiss ich denn das GPIO23 positive Spannung hat?

    • Felix am 15. April 2017 23:07

      Die Spannung schalten wir per GPIO (HIGH = 3.3V, LOW = 0V).

  8. Alex am 16. April 2017 12:08

    Hallo,

    die LED leuchtet ja nur, wenn der Taster gedrückt ist! Wie könnte man es programmieren, damit der Taster als Ein- und Ausschalter für die LED funktioniert?

    Alex

    • Alex am 19. April 2017 20:23

      Hallo,

      kleiner Nachtrag: Es funktioniert nur dann nicht so wie gewünscht, wenn man die LED in einer Schleife blinken lassen möchte, aber zudem noch mittels GPIO.add_event_detect() triggern möchte.

      Alex

  9. Joey am 20. April 2017 17:50

    Hab da mal eine kleine Verständnisfrage: Bei dem Bild (Aufgabe)
    „Raspberry Pi GPIO Pins schalten – Ausgabe“
    geht eine Steckverbindung vom Pin 3V3 auf das Board! Aber das war es dann auch schon, oder?
    Die Verbindung ist doch Sinn- und Zwecklos. Ich bin kein Elektriker, will aber dabei was lernen, und dieses Kabel erscheint mir unnötig! In der nächsten Aufgabe benutzt man ja dann die auf Reihe „+“ anliegenden 3,3V. Aber bei dem ersten Bild…… klärt mich auf! Cheers Joey

    • Felix am 20. April 2017 20:24

      Im ersten Schaubild hast du recht, allerdings erweitern wir die Schaltung ja kurz darauf (wo sie dann benötigt wird).

  10. Stefan am 24. Mai 2017 14:37

    Eine Sache habe ich hier dann doch zu kritisieren: die Überschrift! 😉
    Ich habe eine ganze Weile nach Teil 1 der GPIO Erklärung für Beginner gesucht, bis ich anhand des Inhalts darauf gekommen bin, dass sich das „Teil 2“ nur auf die Programmierung bezieht…

    Ich würde vorschlagen, die Überschrift bei Tut-Serien nach einem festen Schema aufzubauen. Dann hieße dieses Kapitel also:
    Programmieren lernen am Raspberry Pi – Teil 2: GPIO Erklärung für Beginner

    Zwar wird hier auch ein wenig HW erklärt, aber das widerspricht ja nicht dem „Programmieren lernen“.

  11. Mario am 7. September 2017 18:15

    Servus, ich verstehe nachfolgendes aus dem Blinklicht-Thema gerade nicht:

    for i in range(5):
        GPIO.output(23, GPIO.HIGH)
        time.sleep(0.5)
        GPIO.output(23, GPIO.LOW)
        time.sleep(0.5)

    Wird hier nicht für einen Wert „i“ eine Reichweite/Wiederholung definiert? Bitte um Erläuterung worum es sich bei dem „i“ handelt.

    • Felix am 13. September 2017 20:44

      „i“ ist eine Variable, die die Werte 0,1,2,3,4 annimmt. Wir könnten sie auch nutzen, aber brauchen es in diesem Beispiel nur für eine kleine Veranschaulichung.

  12. Mario am 7. September 2017 18:30

    Noch was:
    „Warum das ganze? Solange der Schalter nicht gedrückt ist, ist die Verbindung zwischen der 3.3V Spannung und dem GPIO geschlossen. Damit aber ein eindeutiger Zustand erkannt wird (entweder 0V oder 3.3V) ist die Verbindung über einen sehr großen Widerstand zum Masseanschluss.
    Sobald der Taster gedrückt wird, schließt sich die Verbindung und am GPIO liegen 3.3V an.“

    Ist das nicht falsch ausgedrückt? Soll das nicht heißen „Solange der Schalter nicht gedrückt ist, ist die Verbindung zwischen der 3,3V Spannung und dem GPIO NICHT geschlossen“?

    • Thunder am 6. November 2017 15:34

      Ja, sehe ich auch so. Die Formulierung ist falsch.

      Stromkreis geschlossen = Strom fließt und LED leuchtet.
      Stromkreis nicht geschlossen/offen = Kein Strom fließt und LED leuchtet nicht.

  13. Raspi am 26. September 2017 10:34

    Mal ne Frage zum Programmcode:
    wieso wird die Blinksequenz (FOR-Schleife) nicht die WHILE-Schleife eingebetet. Im obigen Code-Beispiel wird der GPIO doppelt angesprochen. Einmal in der For-Schleife und der While-Schleife…!?!?

    Ich denke eine Schleifen-Kaskade wäre hierbei sinnvoller. Hierbei würde die Taster-Abfrage über der While-Schleife als eine Art Watchdog fungieren.

    Mag jemand dies mal kommentiern, ob damit richtig liege ;-)))

    Danke

    • Felix am 26. September 2017 19:05

      Das fungiert nur als Beispiel. In der for Schleife ist keine Interaktion auf einen Input (blinkt einfach nur ein paar Mal). ANders bei der endlosen while Schleife (Taster gedrückt = LED an).

  14. Schmiddi am 9. Oktober 2017 22:14

    Hallo,
    ich habe eine Frage: Wenn ich bei dem Blinken der LED im ersten teil des Tutorials das Programm mit enter bestätige, sagt Python zu „time“: „SyntaxError: invalid Syntax“. Woran kann das liegen?
    LG
    Schmiddi

    • Schmiddi am 9. Oktober 2017 22:23

      Nachtrag:
      Ich nochmal: als ich dein Script per copy-paste in Python eingefügt habe, hats einwandfrei funktioniert. nur ist meine Frage jetzt: warum ist mein „time“ anders als dein „time“?
      Danke im Vorraus
      LG
      Schmiddi
      P.S.: Ich hoffe dich stört´s nicht, dass ich dich dutze 😀

      • Felix am 9. Oktober 2017 22:34

        Ich nehme an, dass du etwas weggelassen hast. Kannst du mal deinen gesamten Code posten? PS: Du ist absolut in Ordnung 😉

  15. Uli Franck am 12. Oktober 2017 9:22

    Hallo Felix,bin totaler Neuling bezüglich programmieren mit Python.Ich habe dein Programm zur Ampelsteuerung abgeschrieben und ausprobiert. Statt LED´s steuere ich eine Relaisplatine an.
    Meine Frage: wie kann ich das Programm so steuern,das die Relais auch am Ende wieder alle
    ausschalten und ich das Raspi 3 nicht immer neu starten muss?

    LG Uli

    • Felix am 13. Oktober 2017 21:46

      Meinst du, sobald du das Skript beendest? Dann einfach mit einem try..catch und im catch Block entsprechend auf den Wert setzen, auf dem du es gerne hättest.

      • uli am 15. Oktober 2017 10:46

        Hallo Felix,dank für deine Antwort.Bitte erkläre einem ü55 Jahren was ein
        try..catch ist.
        Schönes Wochenende. Gruß Uli

      • Felix am 15. Oktober 2017 13:22

        Hallo Uli,
        ein try-catch Block ist dazu da, um Fehler abzufangen. Zunächst schreibst du den Code der evtl. zu Fehlern führt in den try Block und im catch Block definierst du, was passieren soll, falls es wirklich zum Fehler kam: https://docs.python.org/3/tutorial/errors.html
        In deinem Fall würde ein Abbruch per STRG+C einen Fehler erzeugen, daher kannst du darauf im catch Block entsprechend eingehen.
        LG, Felix

    • Aro am 14. Oktober 2018 13:47

      Hallo,
      ich stand vor dem gleichen Problem. Es gibt keine zuverlässige Softwarelösung!
      Eine try -Schleife bietet zwar einen gewissen Schutz aber eben nicht zuverlässig.
      Wenn sich das Programm aufhängt, in einer Endlosschleife hängen bleibt oder abstürzt, dann verbleiben die GPIO in der letzten Position. Bei einer Spielzeuganwendung mag das gehen. Wenn bei einer Verkehrsampel eine Fahrtrichtung über Stunden rot bekommt ist das nicht mehr lustig. Wenn man einen Motor ansteuert und der ungebremst gegen etwas fährt wirds nicht nur teuer sondern eventuell auch gefährlich.

      Abhilfe schafft aber eine Hardwarelösung.

      Ein GPIO gibt über eine Scheife Impulse aus, die auf den Eingang eines retrigerbaren Monoflops (74HCT123 ) gelangen. Die Zeit muß so lange den Ausgang halten, bis der nächste Impuls sicher eintrifft.
      Sollte jetzt warum auch immer das Programm keine Impulse mehr senden schaltet das Monoflop die Betriebsspannung der Relais ab. Das löst Dein Problem und sicher auch viele andere.

  16. Maik am 14. Oktober 2017 15:43

    Hallo Felix…
    Absolut Top deine Tutorials!!!
    Ich versuche grade einen DHT22 mit einer Led zu kombinieren und stehe vor folgendem problem:
    kurzes Zenario:
    temperatur 25 = langsames blinken

    problem:
    mit
    humidity, temperature = Adafruit_DHT.read_retry(sensor, pin)
    setze ich ja Temperatur und Luftfeuchte
    dieser Vorgang dauert so gefühlte 4sekunden

    nun würde ich gerne in einer while True schleife die leds ihren dienst tun lassen und aller 2minuten
    mit
    humidity, temperature = Adafruit_DHT.read_retry(sensor, pin)
    aktualisieren

    nur wie stelle ich das an?
    ich hänge ja in der while schleife fest die die leds blinken lässt und komme nicht mehr dazu die Temperatur zu aktualisieren. die temperatur kann ich ja in der while schleife nicht mit aktualisieren lassen weil: led blinken 0.5s temperatur aktualiseren 2minuten

    Ich habe grade echt null Plan.
    wäre für ein codeschnipppsel sehr dankbar

    • Maik am 14. Oktober 2017 15:47

      kurzes Zenario:
      temperatur kleiner 25 = schnelless blinken
      temperatur 25 = leuchten
      temperatur größer 25 = langsames blinken

      so wollte ich es schreiben… ist wohl beim senden was verloren gegangen

    • Felix am 14. Oktober 2017 22:33

      Du hast eine 5 Sekunden Schleife. Davor erstellst du einen Zähler (anfangs auf 0). Jedes mal in deiner 5 Sekunden Schleife erhöhst du den Wert. Ist der Wert = 24 (24*5=120sek) so fragst du die Temperatur ab und setzt den Zähler wieder auf 0.

  17. Michael am 18. Oktober 2017 22:04

    mh….
    Bin Absoluter Neuling bei Raspi und Python und habe mal den Code eingetippt.
    Bei mir kommt bei der „Endlosschleife“ bei else: immer ein Syntaxfehler und ich habe keine Ahnung
    warum?

    • Felix am 19. Oktober 2017 0:42

      Syntaxfehler… und weiter? Bitte mit genauer Fehlerbeschreibung. Am besten inkl. der Zeile, in der der Syntaxfehler sein soll. Könnte von zu wenig/vielen Lerrzeichen bis zu Tippfehlern alles sein.

  18. Michael am 21. November 2017 0:17

    Hallo ich bin noch relativ neu hier und wollte die LED schaltung mal ausprobieren allerdings habe ich einen Fehler drin wenn ich das programm starten möchte

    invalid syntax

    und er markiert in der ersten zeile (Python 2.7.13 …. ) die Zahl 7

    muss ich da erst ein update machen

    • Felix am 21. November 2017 0:18

      Nein, die Syntax ist nur fehlerhaft. Poste bitte den Code, damit ich dir sagen kann, woran es genau liegt.

  19. David am 5. Dezember 2017 18:47

    Hallo,
    wird im zweiten Schaltplan bei gedrücktem Taster die Verbindung von 3.3V zum GPIO-Input nicht kurzgeschlossen? Das würde den Pi doch beschädigen, oder wie funktioniert der Input-Pin?

    • Felix am 5. Dezember 2017 20:44

      Der Input Pin „misst“ anliegende Spannung – 3.3V=HIGH, 0V/GND=LOW

  20. David am 5. Dezember 2017 21:05

    Ok, vielen Dank für die schnelle Antwort! Das bedeutet, man kann einen Input-Pin bei 3.3V ohne Vorwiderstand betreiben?

    • Felix am 5. Dezember 2017 21:29

      Ja aber nicht mehr als 3.3V. Mit Widerstand kann es sogar sein, dass der Status nicht richtig erkannt wird.

  21. Hermann Wilhelm am 8. Dezember 2017 12:56

    Vielen Dank für die Einrichtung dieser Frageseite.
    Mein Enkel (13) hat über Wahlfach (Schule) einen raspberry pi3 und Zubehör erworben.
    Nun soll gemeinsam mit mir daran gearbeitet werden. Ich bitte um Ihre
    Hilfe. Wie erfolgt die Befehlseingabe manuell, habe alte Tastatur mit Schnittstelle PS 2 und
    Adapter PS 2 – USB?
    Wie werden die Befehle und ihre Auswirkungen sichtbar, habe Flachbildschirm (14″) mit VGA-Schnittstelle und Adapter VGA-USB?
    Für Ihren Rat herzlichen Dank, verbleibe mit freundlichem Gruß
    Hermann Wilhelm

    • Felix am 8. Dezember 2017 14:53

      Ein VGA Display wird hier nicht viel bringen, es müsste schon ein HDMI Display sein (ggf. mit Adapter).
      Ansonsten einfach diesem Artikel folgen: Raspberry Pi Einstieg – Was brauche und wie starte ich?

  22. Martin am 13. Dezember 2017 12:41

    Ich muss jetzt doch kurz mal nachfragen: Der Widerstand muss doch in Stromflussrichtung vor die LED, oder? Wenn der Strom vom PIN16 kommt muss der Widerstand doch anders eingesteckt sein.
    Oder bin ich jetzt ganz falsch.

    Gruß und danke für eine Antwort

    • Felix am 13. Dezember 2017 19:16

      Es ist egal, wohin du den Widerstand setzt.

  23. Eyal Peleg am 1. Februar 2018 11:35

    HI
    Thanks for the great guide.
    I like to ask regarding the resistor between the ground to the output of the switch, why do we need this resistor (10K) ?
    if i am not wrong, the GPIO can receive 3.3V , so theoretically i can connect between pin 1 and pin 18 directly ?
    I am asking, because when i try it, the Pi performed reset 🙁 (i tried it only once)

    Thanks
    Eyal

    • Felix am 3. Februar 2018 16:43

      The problem is, that if there is neither 0V (GND) or 3.3V, the pin does not know know what status it has. With a connection to GND, we force it to have 0V. If there is 3.3V only a small amount of current goes to GND, but e.g. 3.25V go to the GPIO Pin.

  24. Denis am 8. Februar 2018 20:18

    Hallo!
    Tolles Tutorial, allerdings wird mir ein Fehler angezeigt:

    Traceback (most recent call last):
    File „blinkled.py“, line 1, in
    import RPI.GPIO as GPIO
    ImportError: No module named RPI.GPIO

    Hiernochmal mein Programm um evtl. einen Fehler zu finden:

    import RPI.GPIO as GPIO
    import time

    GPIO.setmode(GPIO.Board)

    GPIO.setup(17,GPIO.OUT)
    GPIO.output(17,GPIO.LOW)

    dauer = 0.5

    for x in range(10):
    GPIO.output(17,GPIO.HIGH)
    time.sleep(dauer)
    GPIO.output(17,GPIO.LOW)
    time.sleep(dauer)

    GPIO.cleanup()

    Ich nutzte den Raspi 3 Modell B, was mache ich falsch?
    Dankeschon mal im Vorraus

    • Felix am 9. Februar 2018 13:07

      Das i in RPi.GPIO muss klein geschrieben werden!

      • Denis am 9. Februar 2018 14:42

        Dankeschön, dann ist dieser Fehler schon behoben.
        Aber wieso zeigt er mir nun folgendes an:

        File „blinkled.py“, line 12
        GPIO.output(17,GPIO.HIGH)
        ^
        IndentationError: expected an indented block

        Die LED blinkt natürlich nicht 🙁
        Danke dir für den schnellen Support!

      • Felix am 9. Februar 2018 14:44

        Dir fehlen Einrückungen. Bitte das erste Tutorial der Reihe beachten, da wird das erklärt 🙂

  25. Walter am 5. März 2018 15:18

    Ist es möglich alle GPIO als Eingang zu überwachen und in einer Schleife anzuzeigen welche Eingänge sich verändert haben ( Das ganze in Abständen von unter ro MilliSekunden) ; 20mal hintereinander ??

    • Felix am 5. März 2018 15:23

      Ja, natürlich.

    • Aro am 14. Oktober 2018 13:25

      Ja das geht. Überhaupt kein Problem, aber kaum mit Python. Mit einem compilierten Programm und einem vernünftigen Treiber, erfasst Du den Status aller GPIO´s auf einmal in einer 32 Bit Zahl. Über eine UND -Verknüpfung filterst Du alles raus, was nicht benötigt wird. Dann speichest Du das Ergebnis in Einer Matrix ab. Entweder vergleichst Du sofort mit dem vorherige Ergebnis auf Gleichheit oder Du wartest 20 Schleifen ab und vergleichst dann.

  26. Max am 14. Mai 2018 16:02

    Hallo, ist es möglich einen GPIO aus Ausgang zu definieren und anschließen seinen Zustand als GPIO input abzufragen?
    Vielen Dank

    • Aro am 14. Oktober 2018 13:13

      Ja entweder ständige Abfrage in einer Schleife oder den GPIO als interruptquelle definieren und dann eine Aktion starten

  27. Benny am 17. Mai 2018 1:17

    Hallo Felix

    Super dein Tutorial. Ich bin absoluter Neuling und hab mich zur While Schleife vorgearbeitet. Jetzt möchte ich gerne wissen wie ich meinen Code in einem ausführbaren Script speichern kann, so wie ich das in Unbuntu mit dem Editor mache.
    lg

  28. Johannes Maier am 28. Mai 2018 21:14

    Mega Beitrag, hilft mir echt sehr

  29. Norbert am 1. Juli 2018 13:42

    Hallo Felix,
    Danke erstmal dafür, da? Du den Einstieg in RasPi und Python so einfach machst 🙂
    Ein Problem habe ich aber mit dem Script. In dem Moment wo die Endlosschleife beginnt geht die CPU-Auslastung meines RasPi2 B+ auf ca. 95% hoch:
    PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
    683 pi 20 0 9588 5288 3608 R 95,2 1,2 0:07.52 python

    Gibt eine Ressourcen-schonendere Alternative zu der Schleife?

    • Norbert am 2. Juli 2018 17:49

      Ich hab’s selbst herausgefunden. Ich füge nach jeder GPIO.out-Zeile eine Zeile time.sleep (0.1) ein.
      Damit reduziert sich die CPU-Belastung dramatisch.

  30. Peter am 15. August 2018 13:59

    Hallo Felix,

    ist es möglich eine Temeratur zu messen und einen Port als Eingang zu verwenden? Bei meinen Versuchen konnte ich die Temperetur messen. Wenn ich dann aber einen Port als Eingang verwendet habe, ging die Temperaturmessung nicht mehr.

    Wenn es geht, was muss ich tun, um beides zu messen

    Grüße Peter

  31. Peter am 15. August 2018 15:19

    Hallo Felix,
    Hab inzwischen herausgefunden, dass „dtoverlay=w1-gpio“ hilft, aber wie formulier ich das Systemkommando für die Schlange?
    Grüße Peter

  32. Konrad am 26. August 2018 20:55

    Ich gehöre wahrscheinlich zu den „zukünftigen Anfänger“. D.h. ich möchte mir einen Raspberry Pi zulegen. Nachdem ich ein paar Tutorials angesehen habe, (finde ich sehr sehr gut gemacht) habe ich trotzdem ein paar Anfängerfragen:
    1. Es heißt immer, dass man einen Monitor an den HDMI Port anschließen soll. Da der Monitor aber mindestens doppelt so teuer ist, wie der Raspberry, möchte ich zunächst ohne Monitor starten. Kann ich den Raspi auch an einen Fernseher anschließen und dann SSH aktivieren, so dass ich für den normalen Betrieb ohne Monitor auskomme?
    2. Wenn ich eine Anwendung geschrieben und gespeichert habe, möchte ich die Anwendung ohne Monitor betreiben. Also einfach den Raspi einschalten? Wie weiß der dann welche Anwendung er starten soll ? Und wie startet überhaupt eine Anwendung. (Ohne angeschlossenen Monitor).
    Wäre toll, wenn mir jemand die einfachen Fragen beantworten könnte, bevor ich mir so ein Ding kaufe.

    • Aro am 14. Oktober 2018 13:08

      Hallo,
      Du kannst ein Composite-Video-Kabel (Koaxkabel) verwenden und einen normalen Fernseher verwenden. Im Netz findest Du dazu genügend Beispiele. Die Qualität wie bei HDMI wird zwar nicht erreicht, aber für den ersten Anfang sollte es langen.

  33. Rudolf am 27. August 2018 15:00

    Hallo,
    ich finde die Beispiele hier sehr gut erklärt und gut nachvollziehbar. Um Abwandlungen an den Beispielen zu versuchen, frage ich mich, ob es eine Liste der Bibliotheken mit den ganzen Funktionen darin für RPi und Python gibt? Leider konnte ich darüber nichts finden.

  34. Sebastian am 19. September 2018 16:05

    Hallo ich habe auch eine frage , bin kompletter neuling, habe den Code 1 zu 1 so abgeschrieben, nur irgendwie geht das mit dem Schalter bei mir nicht so ganz, der leuchtet dauerhaft und geschaltet wird da gar nix wo ist der fehler? Rest bis dahin geht ohne probleme.

  35. CemB am 28. Oktober 2018 16:25

    Wie würde man am besten ein Programm schreiben, wenn man eine Aufgabe wie die hier vor sich liegen hat?

    Kurzer / Langer Tasterdruck:

    Schreiben Sie ein Programm, dass bei einem kurzen Druck auf Taster A die LED1 zum
    Leuchten bringt. Bei einem langen Druck hingegen LED2. Die Leuchtdauer soll für beide LEDs
    1 Sekunde betragen. Ein lang

  36. CemB am 28. Oktober 2018 16:26

    Wie würde man am besten ein Programm schreiben, wenn man eine Aufgabe wie die hier vor sich liegen hat?

    Kurzer / Langer Tasterdruck:

    Schreiben Sie ein Programm, dass bei einem kurzen Druck auf Taster A die LED1 zum
    Leuchten bringt. Bei einem langen Druck hingegen LED2. Die Leuchtdauer soll für beide LEDs
    1 Sekunde betragen. Ein langer Tastendruck liegt vor, wenn die Taste für länger als 2
    Sekunden gedrückt bleibt.

    • Felix am 31. Oktober 2018 20:17

      Du misst die Zeit beim Begin („on Button down“) und zum Ende („on Button up“) und je nach Länge reagierst du.

  37. Behnam am 5. Dezember 2018 20:08

    Hi,
    erstmal danke für das tolle Tutorial. Leider will es noch nicht ganz so.
    Vielleicht kannst du mir auf die Sprünge helfen, woran es liegt.

    Python 2.7.3 (default, Nov 24 2017, 21:13:24)
    [GCC 4.6.3] on linux2
    Type „copyright“, „credits“ or „license()“ for more information.
    >>> import RPi.GPIO as GPIO
    >>> import time
    >>> GPIO.setmode (GPIO.BCM)
    >>> GPIO.setup (23, GPIO.OUT)

    Traceback (most recent call last):
    File „“, line 1, in
    GPIO.setup (23, GPIO.OUT)
    RuntimeError: No access to /dev/mem. Try running as root!

  38. dennis am 25. Dezember 2018 11:45

    hey felix, super anleitung.

    hätte allerdings eine frage :

    am ende des scriptes ist die led ja an, sobald ich den taster betätige geht sie aus.
    wie kann ich das so schreiben, das, wenn der taster 2 sekunden nicht betätigt wird das script beendet wird, also die pins wieder auf standart gehen?

  39. Steffi am 3. Januar 2019 15:42

    Hallo Felix,

    ich bin absoluter Neuling bei Python und den Raspberrys. Mein Code sieht folgendermaßen aus:

    import RPi.GPIO as GPIO
    import time
    GPIO.setmode(GPIO.BCM)
    GPIO.setup(23, GPIO.OUT)
    GPIO.output(23, GPIO.HIGH)
    GPIO.output(23, GPIO.LOW)

    for i in range(5):
    GPIO.output(23, GPIO.HIGH)
    time.sleep(0.5)
    GPIO.output(23, GPIO.LOW)
    time.sleep(0.5)

    Ich erhalte folgenden Fehler:
    Traceback (most recent call last):
    File „/usr/lib/python3.5/ast.py“, line 35, in parse
    return compile(source, filename, mode, PyCF_ONLY_AST)
    File „/home/pi/GPIOs.py“, line 1
    import RPi.GPIO as GPIO
    ^
    IndentationError: unexpected indent

    Ich komm nicht ganz dahinter, was jetzt das Problem ist. Also passt was mit dem Import der GPIOs nicht aufgrund der Rückgabe im ast.py?
    Ich bin mir nicht sicher und ich kriege es nicht gelöst.

    Schon mal vielen Dank!

  40. Fred am 26. Februar 2019 11:11

    Super Blog
    weiter so 😉
    seid nh nette truppe #EHRENMANN

  41. Basti am 15. März 2019 13:17

    Moin!

    Frage von einem Anfänger:

    Wie Programmiere ich einen Zähler? Über einen Eingang soll er rauf, über einen anderen Eingang runter Zählen. Und immer dann, wenn der Zähler ungleich null ist, soll eine Ablaufteuerung aktiv sein.

    Vielen Dank im Voraus!

    • FRED am 26. März 2019 11:20

      Moin ibims FRED;
      ALT+F4 und die Sachen sind vom Tisch

  42. Knut am 21. April 2019 22:13

    Vielen Dank, schön erklärt.
    Ich brauchte nach dem zweiten Durchlauf plötzlich den Befehl:
    GPIO.setwarnings(False), um das ganze noch Mal laufen zu lassen.
    Sonst kommt immer bei GPIO.setup(23, GPIO.OUT) die Fehlermeldung, der Channel wäre schon „in use“.
    Wie kann ich dafür sorgen, dass er nicht mehr „in use“ ist?

  43. Knut am 22. April 2019 15:49

    I played a bit around with your example, thank you for giving me an easy start. In the end, I made this code and would like to share it:

    from gpiozero import LED, Button
    from signal import pause
    from time import sleep, time

    ##means comment
    #the class Button becomes with the following command
    #another attribute called toswitch
    #it will be used to give additional parameters to the functions
    #that are called when pressed or released
    Button.toswitch = LED

    #the on-off series is packed in a function/procedure and can be
    #called for different LEDs in future
    def Functiontest_LED(switchable = LED):
    print(‚LED test‘)
    for n in range (0,3):
    switchable.on()
    print(‚LED is on‘)
    sleep(0.5)
    switchable.off()
    print(‚LED is off‘)
    sleep(0.5)
    return

    #this is the function, what shall be done, when the button is pressed
    def But_pressed(button):
    button.toswitch.on()
    print(button,’pressed‘)
    print(button.toswitch,’LED is on‘)
    return

    #and here the function for release
    def But_released(button):
    button.toswitch.off()
    print(button,’released‘)
    print(button.toswitch,’LED is off‘)
    return

    #initialize the LED at GPIO 23
    red = LED(23)
    Functiontest_LED(red)

    #initialize the Button at GPIO24, and define pressed as high (3.3V)
    #default would be pull_up=True
    button = Button(24,pull_up=False)

    #now let the button know, what it has to switch in the functions
    #But_press and But_released
    button.toswitch = red

    #behing But_pressed and But_released should be no brackets with parameters,
    #because you want to pass the funtion itself, not the result of the funtion to
    #button.when_pressed
    button.when_pressed = But_pressed
    button.when_released = But_released

    pause()

  44. Michi am 17. August 2019 20:58

    Hi zusammen,
    ich habe eine kurze Frage zu den Schaltungen oben.
    Vom GPIO-PIN 23 wird hier per Jumber-Wire direkt auf die LED gegangen.
    Dann läuft der Strom durch die LED und erst anschließend kommt der Widerstand.
    Das bedeutet jedoch, dass die LED in keinerlei Weise geschützt ist.
    Bräuchte es nicht aufh noch zwischen dem GPIO-PIN 23 und der LED einen Widerstand?

  45. Az am 11. Oktober 2019 18:18

    Hey kurze Frage:
    Wie kommst du auf 330Ohm?

  46. Martin am 22. Oktober 2019 11:38

    Hi Felix, wie kann ich Eingänge sperren wenn ein Eingang in Benutzung ist?
    Ich möchte einen Stepper mit 6 Tastern steuern, sobald einer aktiv ist sollen die anderen 5 inaktiv sein.

  47. Erhard Unger am 22. Oktober 2019 17:08

    Hallo, ich habe es mit eurem Tutorial geschafft eine ganze Winterlandschaft mit Häusern, Bahnhof, Karussells usw. zu steuern. Auf meinem RasPi 3b+ lief alles einwandfrei. Da dieser nun den Geist aufgegeben hat, habe ich mir einen RasPi4b+ zugelegt. Die gleichen Scripts auf die Karte kopiert und es tut sich nichts. Müssen hier die GPIO´s anders programmiert werden?

  48. pascal stephan am 14. November 2019 19:13

    Hallo,
    ich bin noch Raspberry Anfänger und interessiere mich für Sensoren bzgl. Gartenbewässerung, RTC, Bewegungsmelder, Oled Display ect.
    Ich habe mir auch passende Anleitungen sowie das Einsteigerbuch gelesen. Doch die besten Antworten finde ich immer hier.
    Ich habe nun folgendes Problem. Die meisten Sensoren haben GRND, VCC, SDA1 und SS… irgendwas.
    Mit einem Breadboard verbunden, alles gut. Aber bei den Pins sind die immer an den gleichen.
    Kann ein solcher Pin auch 2 Sensoren abfragen? Laut meiner Theorie nicht. Mein denken sagt, ich müsste einen weiteren Pin einstellen, der mir den 2. Sensor auslesen kann. Hat da vielleicht jemand Hilfe für mich parat? Vielleicht auch mit Foto?

    So, ich bedanke mich erstmal, dass man hier so viel lesen und entdecken kann.

    MfG P.Stephan

    • Felix am 14. November 2019 21:46

      An Pins wie VCC und GND kannst du quasi beliebig viel anschließen, die sind nur für Spannung. Bei reinen Datenpins (GPIOs) sollte nur ein Gerät dran. Aber z.B. SDA, SCL können auch mehrere Geräte gleichzeitig ansprechen, da jedes Gerät eine Adresse bekommt und falls diese nicht stimmt, so wird das Signal vom Gerät ignoriert (ganz einfach ausgedrückt).

  49. Roberto am 24. November 2019 16:21

    Eine gute Informationsquelle

  50. Kevin am 12. Dezember 2019 9:17

    Guten Tag,
    ich habe eine Frage. Ich verstehe nicht ganz, warum bei dem Tasterbeispiel der 10k Widerstand benötigt wird. Man könnte ihn doch komplett weglassen, oder? (Wahrscheinlich nicht, sonst hätte man ihn ja weggelassen, aber wofür ist der da?)

    Viele Grüße

    • Bjorn am 13. Dezember 2019 12:43

      Ohne diesen Widerstand wäre der GPIO-Pin bei offenem Schalter (nicht betätigt) in einem undefinierten Zustand. Der 10k-Widerstand legt diesen undefinierten Zustand nun quasi als „AUS“ fest.

  51. Eckard am 15. Januar 2020 9:59

    Taster/ Druckschaltern : Beim PI 3 erzeugt alleine das Anschließen von zwei Kabeln an beliebigen 2 PINs (eines Ground, anderes ein GPIO) ein Feuerwerk an EIN-AUS-Zuständen (=geschlossen / geöffnet), Habe es an mehrern PIN-Paaren testest. Habe verschiedene Kabel genommen, habe sogar die PINs angelötet um dem Verdacht entgegen zu treten, die Steck-Kontakte seien Wackler.
    Nochmals, an dem Kabel von 20cm ist NICHTS dran, habe den 10k-Widerstand rausgelötet. Es ist also auch der Taster kein „Wackler“. Wie ist das zu erklären?

    • Eckard am 15. Januar 2020 10:41

      Frage ich PIN-Paare ohne gestecktes Kabel ab, dann ist es ok: immer Antwort: nicht gesteckt=Aus=offen. Mein PI 3 hier ist offenbar so empfindlich, dass schon eine Kabel-Verlängerung zu einem Zufallsgenerator für EIN/AUS führt. Ich frage in einer Schleife alle Sekunde ab, dann ist meistens 4 x hintereinander offen/AUS dann einmal geschlossen/EIN, dann wiederholt sich das. Aber alle 20 Sekunden mal wird z.B. 3x hintereinander geschlossen/EIN erkannt. Nochmals: Widerstand herausgelötet, das Kabel mit Taster ist offenes Kabel! An PIN 8, 14 und 24 getestet.
      Danach nur einen Stecker mit ca. 5mm abgezwicktem Restkabel daran angesteckt. Damit wird noch dauerhaft „AUS/offen“ ausgelesen.
      Dann an den Kabelstumpen von der 24 eine Spule mit 22uH angelötet,. hat noch 4cm lange Anschlussdrähte weil neu. Nur das angelötet, das andere Ende der Spule, ebenfalls 4cm Anschlussdraht, ragt in die Luft. Und schon habe ich wieder die „EIN/geschlossen“-Zustände!! Aber nur einmal 2 Sekunden nach dem Einstecken, 2 Sekunden hintereinander „EIN“. Danach dauerhaft „AUS“, was richtig ist. Also: schon 4 cm Anschlussdraht und es gibt „EIN“-Zuständen.
      Heute abend kürze ich den Anschlussdraht, dann teste ich weiter,

  52. Eckard am 16. Januar 2020 0:01

    S o, Anschlussdraht gekürzt und trotzdem immer noch wildes Ein/Aus-Feuerwerk beim Auslesen des GPIO. Also muss ich mich auf die Suche nach einer anderen Technik machen, einen Tastendruck (über 10kOhm) auszulesen. Wer hat da eine Idee?

    • Eckard am 18. Januar 2020 16:11

      Gelöst! Ich hatte den Zustand des nicht geschalteten GPIO als definiert angenommen, sie sind es aber NICHT! Mit pullup-Widerstand 56kOhm und sicherheitshalber einem Querwiderstand von 2,7KOhm habe ich jetzt nach dieser https://www.elektronik-kompendium.de/sites/raspberry-pi/2006051.htm wundervollen Anleitung was ich brauche 🙂 Dank an dieses Tutorial und an das von elektronik-kompendium.

  53. kingisch am 27. August 2020 13:28

    Hi,
    ich habe dein Setup ausprobiert und mehrfach überprüft, allerdings leuchtet die LED immer dauerhaft – unabhängig davon ob dich den Knopf drücke oder nicht.

    Es scheint so, als würde der GPIO dauerhaft Input geben.
    Habe es auch mit verschiedenen GPIOs ausprobiert ohne Veränderung.

    Daher die Frage: Ist der Widerstand zu niedrig oder vielleicht sogar kaputt?

    Danke für die Hilfe!

  54. Aegidius am 30. Oktober 2020 12:37

    wie kann ich das Skript ausführen? bei sudo Python test.py kommt Syntax error…

  55. Peer am 29. August 2021 14:38

    Hallo,

    speichert der Pi die Pin-Belegung irgendwo im Hintergrund?
    Ich frage, da ich folgende Fehlermeldung bekomme:

    >>> GPIO.setmode(GPIO.BCM)
    >>> GPIO.setup(23, GPIO.OUT)
    __main__:1: RuntimeWarning: This channel is already in use, continuing anyway. Use GPIO.setwarnings(False) to disable warnings.
    >>>

    Ich hatte das vorher schon mal eingegeben, habe dann aber ein paar Eigenarten festgestellt/Fehler gemacht und letzten Endes das Programm Thonny Python IDE wieder geschlossen (ohne etwas zu speichern).

    Dann das Programm wieder geöffnet.
    Wie oder wo kann man den Pin jetzt „resetten“, damit ich weiter testen bzw. diesen Pin wieder benutzen kann?

    Grüße
    Peer

Raspberry Pi Überwachungskamera mit Webcam betreiben

Nextcloud Anleitung: Eigene Raspberry Pi Cloud einrichten und konfigurieren

Raspberry Pi Roboter: Automatisch Hindernissen ausweichen (Teil 4)

Raspberry Pi mit Akkus/Batterien betreiben

Funkkommunikation zwischen Raspberry Pi’s mittels MQTT Broker/Client

50 der wichtigsten Raspberry Pi Sensoren und Module

Blog abonnieren

Abboniere Raspberry Pi Tutorials, um kein Tutorial mehr zu verpassen!

Tutorials for Raspberry Pi
Facebook Twitter YouTube
  • Kontakt & Impressum
  • Unterstützen
  • Datenschutz

Tippe den Suchbegriff oben ein und drücke Enter, um danach zu suchen. Drücke Esc, um abzubrechen.