GPIO Schnittstelle: Mit WiringPi in 15 Minuten auf die GPIO Ports des Raspberry Pi zugreifen – Teil 3

Mit der wiringpi kann man leicht auf die GPIO Ports des Raspberry Pi zugreifen. Mit den Pins kann man dann leicht Hardware steuern. Auf dem Blog gibt es eine gute ausführliche Anleitung. Das will ich nicht wiederholen, sondern hier geht es darum wie man mit C++ auf die GPIO zugreifen kann. Obwohl man auch in 15 Minuten nach Installation der wiringpi Api die GPIO über Bash Scripte oder Python ansprechen kann.

Hier nun die nötigen Vorarbeiten um C++ mit wiringpi machen zu können. Es sind dort auch einige C Beispiele im Repo. Dazu aber später mehr.

Entweder man installiert das Package mit

oder wie hier nun beschrieben über Git die neueste Version und compiliert es selber mit dem Ausführen des build Scriptes. Das ist hier beschrieben da wir das als API für die C++ Programmierung brauchen.

Nun ein erster echter Test, wir lesen alle Daten der GPIO Schnittstelle mit:

und schon haben wir alle Date in einer übersichtlichen Tabelle angezeigt, aus der wir auch die Pin Belegungen usw. entnehmen können:

Jetzt compilieren wir noch die Beispiele, dazu gehen wir in das ~/wiringPi/examples Verzeichnis und starten mit:

Jetzt können wir aus dem Verzeichnis das Testprogramm blink starten, oder mein tw-blink.sh Script ausführen das alle 5 Sekunden an und aus schaltet:

#!/bin/sh -e
#
# blink.sh:
# Standard "blink" program in wiringPi. Blinks an LED connected
# to the first GPIO pin.
#
# Copyright (c) 2012-2013 Gordon Henderson. <projects@drogon.net>
# 2018 Thomas Wenzlaff www.wenzlaff.de
#######################################################################
# This file is part of wiringPi:
# https://projects.drogon.net/raspberry-pi/wiringpi/
#
# wiringPi is free software: you can redistribute it and/or modify
# it under the terms of the GNU Lesser General Public License as published by
# the Free Software Foundation, either version 3 of the License, or
# (at your option) any later version.
#
# wiringPi is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU Lesser General Public License for more details.
#
# You should have received a copy of the GNU Lesser General Public License
# along with wiringPi. If not, see <http://www.gnu.org/licenses/>.
#######################################################################
# LED Pin - wiringPi pin 0 is BCM_GPIO 17.
PIN=0
gpio mode $PIN out
echo "Starte endloses Blinken zwischen Pin 11 und 12. Beenden mit CTRL-C"
while true; do
gpio write $PIN 1
sleep 5
echo "Aus"
gpio write $PIN 0
sleep 5
echo "An"
done
view raw tw-build.sh hosted with ❤ by GitHub

Schon kann man über Pin 11 und 12 das Blinken messen,

An 3,12 Volt

und
Aus 0 Volt

und auf der Konsole

In einem nächsten Teil dann zum C++ eigentlichen Zugriff.

Was bisher geschah im C++ Kurs:

  • In 15 Minuten zum eigenen C++ Programm auf dem Raspberry Pi Zero W – Teil 1
  • In 15 Minuten zum eigenen C++ Programm zum ausgeben der Systemtemperatur des Raspberry Pi Zero W – Teil 2
  • GPIO Schnittstelle: Mit WiringPi in 15 Minuten auf die GPIO Ports des Raspberry Pi zugreifen – Teil 3