Hallo Zusammen,
Ich habe mein erstes Arduino Projekt zusammen gestellt.
Ich würde darum bitten das jemand der mehr Erfahrung hat als ich kurz drüber schaut ob das Projekt so funktionieren würde ohne das die Platine durchbrennt.
Was soll es machen.
Wen ein Schalter gedrückt wird steuert dieser eine Relais an, an diesem Relais liegen am Wechsler 5V vom Arduino an. Wen das Relais 1 angesteuert wird soll das Programm starten und den Schrittmotor ansteuern und dieser soll dann 20 Grad drehen.
Verbaut hab ich einen 24V Schrittmotor und einen Schrittmotortreiber DM320T der auch mit 24 V läuft.
Das bisherige System läuft mit 24V diese Projekt soll eine Ergänzung zu dem System sein.
Den Code hab ich mir von ChatGPT erstellen lassen.
Danke im voraus
const int stepPin = 8; // Puls-Pin an DM320T
const int dirPin = 9; // Richtungspin an DM320T
const int buttonPin = 7; // Pin für den Taster
const int stepsPerRevolution = 28; // Anzahl der Schritte pro Umdrehung des Motors
const float degreesPerStep = 360.0 / stepsPerRevolution; // Grad pro Schritt
const int stepsFor20Degrees = 20 / degreesPerStep; // Schritte für 20 Grad
void setup() {
pinMode(stepPin, OUTPUT);
pinMode(dirPin, OUTPUT);
pinMode(buttonPin, INPUT_PULLUP); // Taster-Pin als Eingang mit internem Pullup-Widerstand
Serial.begin(9600); // Initialisiere die serielle Kommunikation
}
void loop() {
// Überprüfen, ob der Taster gedrückt wurde
if (digitalRead(buttonPin) == LOW) {
// Drehe den Motor um 20 Grad
rotateStepper(stepsFor20Degrees);
// Warten, bis der Taster losgelassen wird
while (digitalRead(buttonPin) == LOW) {
delay(10); // Kurze Pause, um Taster-Prellen zu verhindern
}
// Kurze Pause, um wiederholte Aktivierungen zu verhindern
delay(500);
}
}
void rotateStepper(int steps) {
digitalWrite(dirPin, HIGH); // Richtung festlegen (HIGH oder LOW)
for (int i = 0; i < steps; i++) {
digitalWrite(stepPin, HIGH);
delayMicroseconds(1000); // Pulsbreite (kann angepasst werden)
digitalWrite(stepPin, LOW);
delayMicroseconds(1000); // Pause zwischen den Pulsen (kann angepasst werden)
}
}

