In diesem Beispielprojekt soll mittels des Raspberry Pi eine LED zum Blinken gebracht werden. Dazu wird die LED gemäß folgenden Schaltbild mit der GPIO des Pi verkabelt, wobei ich der einfachheit halber auf dem Vorwiderstand verzichtet habe, wie man im Foto unten sehen kann.
Um die GPIO vom Raspberry ansprechen zu können nutze ich die Library BCM2835.
Der C-Code der Datei ledblink.c sieht wie folgt aus:
#include <stdio.h>
#include <bcm2835.h>
//den Pin festlegen, auf welchem es Blinken soll
//P1_11 entspricht dem GPIO-Pin17
#define PIN RPI_GPIO_P1_11
int main(int argc, char **argv)
{
//GPIO initiieren und wenn dies fehlschlägt Programm verlassen
if(!bcm2835_init())
return 1;
//den PIN als Ausgangs-PIN konfigurieren
bcm2835_gpio_fsel(PIN, BCM2835_GPIO_FSEL_OUTP);
//eine Dauer-Schleife durchlaufen fürs Blinken
while(1)
{
//PIN einschalten
bcm2835_gpio_write(PIN, HIGH);
//Warten
bcm2835_delay(1000);
//PIN ausschalten
bcm2835_gpio_write(PIN, LOW);
//Warten
bcm2835_delay(300);
}
bcm2835_close();
return 0;
}
Zum Kompilieren startet man noch den Compiler im Terminal:
gcc -o ledblink ledblink.c -l bcm2835
Zum Ausführen des Programms gibt man im Termin ein:
./ledblink
Der Code ist so geschrieben, dass die Ausgabe am GPIO-PIN 17 erfolgt. Dort muss also die Anode der LED (das lange Bein) verkabelt werden. Die Kathode wird auf einen Ground-PIN verkabelt.
Leider ist die Zuordung der GPIO-Pins zu den PIN-Konstanten der BCM2835-Bibliothek nicht selbst erklärend und auch von der jeweiligen Pi-Version abhängig. Eine Zuordnung kann man über die Wiki-Tabelle herausbekommen.
[Datum: 20.08.2016]