LED blinkt

Überblick

Mit diesem Projekt wird eine LED mit einer vorgegebenen Frequenz (z. B. 1 Sekunde) zum Blinken gebracht.

Das dazu benötigte Programm für den Raspberry Pi ist mit Java erstellt.

Hardware

Bei diesem Projekt wird folgende Hardware verwendet:

  • 1 Raspberry Pi 3 Model B
  • LED
  • Widerstand 330 Ω
  • Diverse Leitungen
Stromlaufplan

Der Stromlaufplan zeigt die LED, den Widerstand und die GPIO-Schnittstelle des Raspberry Pi mit ihren Verbindungen. Die Pin-Nummerierung der GPIO-Schnittstelle bezieht sich auf den Raspberry Pi 3 Model B. Die Schaltung ist ohne zusätzliche Stromversorgung aufgebaut. Da die LED wenig Strom benötigt, ist die Leistung der Stromversorgung des Rasperry Pi ausreichend.

Software Raspberry Pi

Voraussetzungen für den Programmablauf:

  • Auf dem Raspberry Pi ist das Betriebssystem Raspberry OS Stand Mai 2024 installiert.
  • Der Raspberry Pi ist mit dem Internet verbunden.
  • Java Development Kit (JDK), openjdk Version 17.0.11 ist installiert – vom 16.04.2024.
  • Jbang Version 0.117.1 ist installiert – vom 11.09.2024.

Das Java Development Kit installieren Sie mit folgenden Befehlen:

  • sudo apt install default-jdk
  • sudo reboot

Die Version des Java Development Kit zeigen Sie mit folgendem Befehl an:

  • sudo java -version

Jbang installieren Sie mit folgendem Befehl:

  • curl -Ls https://sh.jbang.dev | bash -s – app setup
  • sudo reboot

Die Version von Jbang zeigen Sie mit folgendem Befehl an:

  • jbang –version (2 Minuszeichen vor version)

Die Bibliothek pi4j muss nicht installiert sein. Sie wird von Jbang automatisch heruntergeladen und eingebunden.

Programm erstellen:

  • Erstellen Sie ein neues Verzeichnis pi4j-jbang.
  • Die Programmdatei LED_blinkt.java erstellen Sie z. B. mit dem Editor Geany.
  • Legen Sie die Programmdatei im Verzeichnis pi4j-jbang ab.

Programmcode:

Die Datei LED_blinkt.java enthält folgenden Programmcode:

///usr/bin/env jbang „$0“ „$@“ ; exit $?

//DEPS org.slf4j:slf4j-api:2.0.12
//DEPS org.slf4j:slf4j-simple:2.0.12
//DEPS com.pi4j:pi4j-core:2.6.0
//DEPS com.pi4j:pi4j-plugin-raspberrypi:2.6.0
//DEPS com.pi4j:pi4j-plugin-gpiod:2.6.0

import com.pi4j.Pi4J;
import com.pi4j.io.gpio.digital.DigitalOutput;
import com.pi4j.io.gpio.digital.DigitalState;
import com.pi4j.io.gpio.digital.PullResistance;

/**
* Die an GPIO 17 (Pin 11) angeschlossene LED blinkt.
*/

public class LED_blinkt {

// LED an PIN 11 = BCM 17
private static final int PIN_LED = 17;

public static void main(String[] args) throws Exception {

var pi4j = Pi4J.newAutoContext();

var ledConfig = DigitalOutput.newConfigBuilder(pi4j)

.id(„led“)

.name(„LED Flasher“)
.address(PIN_LED)
.shutdown(DigitalState.LOW)
.initial(DigitalState.LOW);

var led = pi4j.create(ledConfig);

while (true) {

led.high();
Thread.sleep(500);
led.low();
Thread.sleep(500);

}

}

}

Das Programm muss bei einem Aufruf mit Jbang vorher nicht kompiliert werden.

Programm auf dem Raspberry Pi starten:

Der Raspberry Pi muss mit dem Internet verbunden sein, da jbang die benötigten Bibliotheken herunterlädt.

  • cd pi4j-jbang
  • jbang LED_blinkt.java

Programmablauf beenden:

Den Programmablauf beenden Sie mit:

  • Strg+c