Raspberry Pi: Blinken einer LED mit Programmiersprache C

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.

Schaltbild Verkabelung LED mit GPIO

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.

Foto Raspberry Pi Verkabelung LED

[Datum: 20.08.2016]