INFO: Dieses Forum nutzt Cookies...
Cookies sind für den Betrieb des Forums unverzichtbar. Mit der Nutzung des Forums erklärst Du dich damit einverstanden, dass wir Cookies verwenden.

Es wird in jedem Fall ein Cookie gesetzt um diesen Hinweis nicht mehr zu erhalten. Desweiteren setzen wir Google Adsense und Google Analytics ein.

Antwort schreiben 
 
Themabewertung:
  • 0 Bewertungen - 0 im Durchschnitt
  • 1
  • 2
  • 3
  • 4
  • 5
Motorgeschwindigkeit (Stepper) per Poti
10.01.2019, 19:55
Beitrag #1
Motorgeschwindigkeit (Stepper) per Poti
Hallo Ihr lieben
Sicherlich ist es arg peinlich, was ich gleich fragen werde, aber ich fange gerade erst mit dem Arduino an und da ich absolut kein Theoretiker bin, muss ich an einem konkreten Projekt arbeiten.

Ich möchte einen Stepper-Motor (dieser ultra weit verbreitete mit dem ULN2003) mit einem Potentiometer in der Geschwindigkeit regeln. Und zwar möchte ich eine Mittelposition des Potis haben, in der Motor nicht dreht. Wenn ich das Poti nun drehe, soll der Motor schneller werdend in die Richtung des Poti drehen - also bidirektional.
Ich möchte gerne (da es in dem Projekt ist, welches ich versuche anzupassen) die stepper.h nutzen.

Bisher ist mein Code folgender, wobei ich leider aufgrund meines Fehlers auch nicht weiß, ob das Prinzip generell funktioniert:
Code:
#include "Stepper.h"

#define STEPS  32   // Number of steps per revolution of Internal shaft

int step_speed = 0;
int analogPin = A3;
int videospeed = 0;

Stepper small_stepper(STEPS, 8, 9, 10, 11);

void setup() {
  // put your setup code here, to run once:
  Serial.begin(9600);
}

void loop() {
                     while (digitalRead(5)== HIGH){
  int sensorValue = analogRead(A3);
  Serial.println(sensorValue);
  delay(1);        
                      videospeed = analogRead(A3);
                       if (analogRead(A3) < 500) {
                      videospeed = map(videospeed, 0, 500, 0, 300);   // 300 maxspeed
                      small_stepper.setSpeed(videospeed);
                      small_stepper.step();                       //Bewegung in eine Richtung
                      }
                       if (analogRead(A3) > 522) {
                      videospeed = map(videospeed, 522, 1023 0, 300);   // 300 maxspeed
                      small_stepper.setSpeed(videospeed);
                      small_stepper.step();                       //Bewegeung in die ANDERE Richtung
                      }
                    }
}

derzeit meckert der compiler jedes mal, weil der jeweils letzte Befehl small_stepper.step(); leer ist. Trage ich hier einmal einen festen Wert ein, so funktioniert es scheinbar irgendwie so halbwegs - jedoch eben nur solange, bis die Anzahl der step abgearbeitet ist.
Die serielle ausgabe ist für mich als visualisierung, dass er die Potiwerte auch annimmt.
Jedenfalls denke ich, dass der Code folgendes macht:

Solange mein Schalter (Entschalter bzw manueller Abbruch) an Pin5 nicht gedrückt ist, ließt er den Potiwert ein. ist dieser etwa in der Mittelstellung (analog 500-522), passiert nichts
bewege ich das Poti nun in eine Richtung, so soll der Motor mit Drehen des Potis schneller werden. Drehe ich zurück in die Mitte soll er stehen bleiben, drehe ich in die andere Richtung weiter, so soll der Motor - natürlich umgekehrt als vorher - wieder schneller werden.

Hier meine 3 Fragen:
1- jeht dit überhaupt so?!
2- klappt das mit dem mappen so, wie ich es mir gedacht habe?
3- wie sage ich dem Motor nun, dass er sich einfach so lange drehen soll, bis ich wieder in die Mittelstellung gehe- bzw bis ein Endschalter erreicht ist, ohne ihm eine genaue Anzahl an Schritten vorzugeben?

ICh habe mal im Netz geschaut und Anleitungen gefunden, in denen der Motor manuel mithilfe der 4 Ausgänge geschalten wird und zwischen jedem Schritt einfach eine varialble Pause eingelegt wird. Ich kann mir aber nicht vorstellen, dass dies der ideale Weg ist, da er viel Code braucht. Dazu bräuchte ich ja die stepper-lib nicht


Hintergrund:
Ich habe dieses Projekt nachgebaut (neben einer Schiene, die einfach hin und her lief mein 2. Projekt) https://www.instructables.com/id/Arduino...se-Slider/
Da ich noch ein paar Knöpfe auf der Fernbedienung frei habe, möchte ich gerne noch einen Videomodus hinzufügen, wo sich die Cam eben entsprechend des Potis dauerhaft bewegt. Dazu muss ich ja einfach eine weitere Case-Anweisung hinzufügen, den Entsprechenden Code der Fernbeidneung und dann eben meinen löchrigen Code von oben einfügen.
Mein Poti hat keine Mitteleinrastung, deswegen diese kleine Werte-Lücke, dass ich die Mitte nur etwa treffen muss.


Ich Danke euch
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
10.01.2019, 21:14
Beitrag #2
RE: Motorgeschwindigkeit (Stepper) per Poti
Wenn Du willst, dass er nach der Anzahl der vorgegebenen Steps nochmal Steps macht, musst Du ihm das sagen.

Anderer Weg: Du lässt ihn jeweils immer nur 1 Step in die gewollte Richtung machen und dann den nächsten. So hast Du mehr Eingriffsmöglichkeiten, denn stepper.h blockiert, bis die Steps erreicht sind. In der Zeit kann Dein Arduino nichts Anderes machen. Da ist die Accelstepper flexibler.

Gruß Tommy

"Wer den schnellen Erfolg sucht, sollte nicht programmieren, sondern Holz hacken." (Quelle unbekannt)
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
Antwort schreiben 


Möglicherweise verwandte Themen...
Thema: Verfasser Antworten: Ansichten: Letzter Beitrag
  Kennt jemand einen Stepper Closed Loop Sketch? Holzwurm56 8 223 Heute 21:33
Letzter Beitrag: Holzwurm56
  Stepper und Servo ? Lanzet3 31 1.613 28.12.2018 15:09
Letzter Beitrag: MicroBahner
  Per Tastendruck Stepper-Motor eine bestimmte Drehung machen lassen Chef_2 2 725 09.10.2018 21:59
Letzter Beitrag: Chef_2
  Stepper Bibliothek mit Stepp und Dir Motoransteuerung dl3ad 4 1.128 10.07.2018 13:06
Letzter Beitrag: dl3ad
  Stepper Motor (Ansteuerung) pm96 6 1.211 30.06.2018 20:29
Letzter Beitrag: pm96
  Stepper Treiber A4988 - Nema 17 Motor Crazy 3 1.122 27.04.2018 22:07
Letzter Beitrag: GuaAck
  Starkes Rauschen auf dem Poti & Dimensionierung RC Glied Flap 33 3.724 08.03.2018 02:11
Letzter Beitrag: Flap
  Poti Differenz Berechnung Kitt 9 2.305 09.12.2016 15:55
Letzter Beitrag: Tommy56
  Bipolaren Stepper steuern DL8NAD 4 1.931 03.12.2015 22:38
Letzter Beitrag: Scherheinz
  Stepper 28BYJ-48 an UNO Symphonie 5 4.816 01.11.2015 09:07
Letzter Beitrag: Symphonie

Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste