Schrittmotor ansteuern

Überblick

Mit diesem Projekt wird ein kleiner Schrittmotor mithife eines Schrittmotortreibers angesteuert. Der Schrittmotor dreht sich nach dem Start des Proramms mit einer definierten Drehzahl im Uhrzeigersinn.

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

Hardware

Bei diesem Projekt wird folgende Hardware verwendet:

  • Raspberry Pi 3 Model B
  • Schrittmotor 17HE19-2004S, Nennstrom/Phase: 2,0 A

  • Treiber für Schrittmotor DRV8825
    Maximalen Strom auf 1 A einstellen: Spannung am Poti = 0,5 V
    Das IC des Treibermoduls muss mit einem passenden Kühlkörper versehen sein.

  • Kondensator 100 uF, 20 V

  • Stromversorgung 12 V, 2 A, z. B. Akku oder Netzteil

  • diverse Leitungen

Stromlaufplan

Der Stromlaufplan zeigt den Schrittmotortreiber, einen Elko, den Schrittmotor, den Raspberry Pi und die Verbindungen. Die Pin-Nummerierung der GPIO-Schnittstelle bezieht sich auf den Raspberry Pi 3 Model B. Die externe Stromversorgung ist nicht eingzeichnet. Sie ist an den Klemmen + 12 V und GND anzuschließen.

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 Schrittmotor_ansteuern.java erstellen Sie z. B. mit dem Editor Geany.
  • Legen Sie die Programmdatei im Verzeichnis pi4j-jbang ab.

Programmcode:

Die Datei Schrittmotor_ansteuern.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;

/**
* Mit Pin 11/GPIO 17 wird die Drehrichtung festgelegt – DIR = High > im Uhrzeigersinn

* Mit Pin 12/GPIO 18 werden die Schritte ausgeführt – STEP
*/

public class Schrittmotor_ansteuern {

private static final int DIR_GPIO = 17;

private static final int STEP_GPIO = 18;

private static final int VERZ = 1;

 

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

 

var pi4j = Pi4J.newAutoContext();

 

var output_dir = pi4j.dout().create(DIR_GPIO);

var output_step = pi4j.dout().create(STEP_GPIO);

 

// Drehrichtung Uhrzeigersinn einstellen
output_dir.state(DigitalState.HIGH);

while (true) {

output_step.state(DigitalState.HIGH);
Thread.sleep(VERZ);
output_step.state(DigitalState.LOW);
Thread.sleep(VERZ);

}

}

}

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 Schrittmotor_ansteuern.java

Programmablauf beenden:

Den Programmablauf beenden Sie mit:

  • Strg+c