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
Schrittmotoren mit Joystick steuern
01.02.2015, 00:01 (Dieser Beitrag wurde zuletzt bearbeitet: 01.02.2015 00:34 von apoapo345.)
Beitrag #1
Bug Schrittmotoren mit Joystick steuern
Hallo liebes forum
Ich habe keinerlei arduino kentnisse und bin deswegen auf ein paar probleme gestoßen... ich möchte mit einem joystick zwei schrittmotoren steuern (joystick hoch runter -> 1. Motor links rechts, joystick links rechts -> 2. Motor links rechts). Zur verfügung habe ich 2 schrittmotoren, 2 schrittmotorplatinen, ein arduino und einen joystick. Folgendes hab ich bisher gemacht: input 1 bis input 4 der schrittmotor platinen an die pins 11 bis 8 und 7 bis 4 angeschlossen, die jeweils 4 drähte der motoren an die outputs a bis d der platinen geschlossen und die 2 potis des joysticks an GND, 5V und A0 und A1 des arduino geschlossen. Die platinen werden mit 12V und das arduino mit usb betrieben. Nun besteht die frage ob es jetzt ans programmieren geht oder erst noch änderungen an der verkabelung vorgenommen werden müssen und wie denn der code ungefähr aussieht. Motoren laufen übrigens (beispielprogramme getestet). Anbei noch ein paar fotos wie das ganze aussieht. Würde mich sehr über hilfe freuen weil ich wie gesagt keiner erfahrung habe.

fotos: http://www.directupload.net/file/d/3884/...5m_jpg.htm
http://www.directupload.net/file/d/3884/...m5_jpg.htm
http://www.directupload.net/file/d/3884/...bn_jpg.htm

Ach hab übrigens noch ein LCD für das projekt gestellt bekommen aber weiß noch nicht wofür ich den brauche
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
01.02.2015, 02:40
Beitrag #2
RE: Schrittmotoren mit Joystick steuern
Das problem ist dass es ein projekt ist und ich dafür nur noch bis donnerstag zeit habe. Am freitag morgen wird das produkt vorgestellt. Ich wage zu behaupten dass die zeit zu knapp ist um mir ohne den stupser in die richtige richtung alles selber anzueignen. Confused
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
01.02.2015, 03:22
Beitrag #3
RE: Schrittmotoren mit Joystick steuern
Für das projekt sind nur 2 wochen vorgesehen... die erste woche ist leider für das teleskop und die holzkonstruktion draufgegangen was am ende von den motoren bewegt werden soll Confused
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
01.02.2015, 07:49
Beitrag #4
RE: Schrittmotoren mit Joystick steuern
Bitte mal deine Shift-Taste überprüfen... die scheint defekt zu sein...

Wissen ist das einzige Gut das sich vermehrt, wenn man es teilt...
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
01.02.2015, 12:45
Beitrag #5
RE: Schrittmotoren mit Joystick steuern
also konkret selber programmiert habe ich noch gar nichts. habe bisher nur die beispielprogramme ausprobiert. ich habe auch im netz mal recherchiert aber verstehe die deklaration der pins nicht (meine schrittmotorplatine belegt vier pins im arduino)

Code:
#include <Stepper.h>
#include <Servo.h>

const int num_step = 50; // motor steps per revolution
const int pwm_cha = 3;
const int pwm_chb = 11;
const int dir_cha = 12;
const int dir_chb = 13;
const int brake_cha = 9;
const int brake_chb = 8;


int Pot1 = 2;
int val;
Servo myservo;  // create servo object to control a servo
Stepper stepper(num_step, dir_cha, dir_chb);

void setup()
{
    Serial.begin(9600);
    pinMode(pwm_cha, OUTPUT);
    pinMode(pwm_chb, OUTPUT);
    pinMode(brake_cha, OUTPUT);
    pinMode(brake_chb, OUTPUT);
    digitalWrite(pwm_cha, HIGH);
    digitalWrite(pwm_chb, HIGH);
    digitalWrite(brake_cha, LOW);
    digitalWrite(brake_chb, LOW);
    
    myservo.attach(2);
}

void loop()
{
  int PVal=analogRead(Pot1);
  if (PVal >= 507 || PVal <= 517)
  { // fill in with the one you need to make it brake
  }
  if (PVal > 517 )
  {
    int K= map (PVal, 518,1023,0,400); /* max is the value that you get from your experiment with the max speed of the stepper before stalling*/
     int S=map (K, 0,400,0,num_step);
     stepper.setSpeed(K); //this set the speed of the stepper motor
     stepper.step(S); //this set the direction and the number of step it would take
     Serial.print("Forward, K=");
     Serial.print(K);
     Serial.print(" PVAL=");
     Serial.println(PVal);    
   }
if (PVal < 507 )
  {
    int K= map (PVal, 0,506,400,0); /* max is the value that you get from your experiment with the max speed of the stepper before stalling*/
     int S=map (K, 0,400,0,num_step);
     stepper.setSpeed(K); //this set the speed of the stepper motor
     stepper.step(-S); //this set the direction and the number of step it would take
     Serial.print("Backward, K=");
     Serial.print(K);
     Serial.print(" PVAL=");
     Serial.println(PVal);    
   }
  
  // This next bit just outputs the pot position to a servo
  val = map(PVal, 0, 1023, 0, 179);     // scale it to use it with the servo (value between 0 and 180)
  myservo.write(val);                  // sets the servo position according to the scaled value
  delay(15);      
}
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
01.02.2015, 13:05
Beitrag #6
RE: Schrittmotoren mit Joystick steuern
Hi,
der obige Sketch ist bestimmt nicht ganz richtig, aber erstmal egal. Das jetzt zu analysieren und richtig zu biegen würde zu lange dauern.
Ich denke, wir sollten hier folgendermaßen vorgehen:

(Für's nächste Mal): Mit der Software früher anfangen. Man kann das nicht "mal schnell" am Ende machen, wenn man auch noch dazu keine Ahnung davon hat.

Bitte in Zukunft Bilder direkt an den Beitrag hängen. Verlinken auf eine Seite mit Werbe-Popups nervt.

Jetzt zum Projekt: Wir sollten das erstmal in zwei Teilprobleme zerlegen: Ansteuerung der Schrittmotoren und Abfrage des Joysticks.
Zum Schrittmotor: Du hattest gesagt, dass es schon einen Beispielsketch für die Schrittmotoren gibt. Kannst Du den mal hier reinhängen und auch beschreiben, was er tut?
Zum Joystick: Gibt es dafür auch einen Beispielsketch? Wenn nicht, dann schreib mal einen Sketch, der ausschließlich (!!!) den Joystick abfragt und über Serial ausgibt. Dazu in loop() beide Analog-Eingänge abfragen, das Ergebnis per Serial.print/ println ausgeben und danach ein delay(200). Dann den Joystick bewegen und die Ausgabe betrachten. Die Werte sollten zwischen 0 und 255 alle Werte annehmen. Es kann sein, dass das ganze nicht linear ist, dann muss man mal genauer hinschauen oder man braucht noch ein bisschen Elektronik.
Den Joystick-Sketch bitte auch hier einstellen und beschreiben, was er tut.
Gruß,
Thorsten

Falls ich mit einer Antwort helfen konnte, wuerde ich mich freuen, ein paar Fotos oder auch ein kleines Filmchen des zugehoerigen Projekts zu sehen.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
01.02.2015, 13:50
Beitrag #7
RE: Schrittmotoren mit Joystick steuern
hallo thorsten,
danke erstmal für dein interesse mir helfen zu wollen.

also die motoren habe ich individuell mit folgendem beispielprogramm getestet:
Code:
/*
Stepper Motor Control - one revolution

This program drives a unipolar or bipolar stepper motor.
The motor is attached to digital pins 8 - 11 of the Arduino.

The motor should revolve one revolution in one direction, then
one revolution in the other direction.  

  
Created 11 Mar. 2007
Modified 30 Nov. 2009
by Tom Igoe

*/

#include <Stepper.h>

const int stepsPerRevolution = 200;  // change this to fit the number of steps per revolution
                                     // for your motor

// initialize the stepper library on pins 8 through 11:
Stepper myStepper(stepsPerRevolution, 8,9,10,11);            

void setup() {
  // set the speed at 60 rpm:
  myStepper.setSpeed(60);
  // initialize the serial port:
  Serial.begin(9600);
}

void loop() {
  // step one revolution  in one direction:
   Serial.println("clockwise");
  myStepper.step(stepsPerRevolution);
  delay(500);
  
   // step one revolution in the other direction:
  Serial.println("counterclockwise");
  myStepper.step(-stepsPerRevolution);
  delay(500);
}

der motor hat eine drehung im uhrzeigersinn zurückgelegt und eine gegen den uhrzeigersinn und dann fängt er wieder von vorne an.

den joystick habe ich auch getestet und zwar mit folgendem programm:
Code:
/* Read Jostick
  * ------------
  *
  * Reads two analog pins that are supposed to be
  * connected to a jostick made of two potentiometers
  *
  * We send three bytes back to the comp: one header and two
  * with data as signed bytes, this will take the form:
  *        Jxy\r\n
  *
  * x and y are integers and sent in ASCII
  *
  * http://www.0j0.org | http://arduino.berlios.de
  * copyleft 2005 DojoDave for DojoCorp
  */

int ledPin = 13;
int joyPin1 = 0;                 // slider variable connecetd to analog pin 0
int joyPin2 = 1;                 // slider variable connecetd to analog pin 1
int value1 = 0;                  // variable to read the value from the analog pin 0
int value2 = 0;                  // variable to read the value from the analog pin 1

void setup() {
  pinMode(ledPin, OUTPUT);              // initializes digital pins 0 to 7 as outputs
  Serial.begin(9600);
}

int treatValue(int data) {
  return (data * 9 / 1024) + 48;
}

void loop() {
  // reads the value of the variable resistor
  value1 = analogRead(joyPin1);  
  // this small pause is needed between reading
  // analog pins, otherwise we get the same value twice
  delay(100);              
  // reads the value of the variable resistor
  value2 = analogRead(joyPin2);  

  digitalWrite(ledPin, HIGH);          
  delay(value1);
  digitalWrite(ledPin, LOW);
  delay(value2);
  Serial.print('J');
  Serial.print(treatValue(value1));
  Serial.println(treatValue(value2));
}

hier blinkt die integrierte LED des arduino in einem bestimmten takt wenn der joystick nicht betätigt wird. hoch und rechts am joystick bewirken dass die LED in einem schnelleren takt aufleuchtet während runter und links am joystick den takt verlangsamen.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
01.02.2015, 14:00
Beitrag #8
RE: Schrittmotoren mit Joystick steuern
Hi,
ok, das ist doch schonmal was. Soll eigentlich die Geschwindigkeit des Motors über den Joystick geregelt werden, oder reicht auch, dass sich der Motor in einer festgelegten Geschwindigkeit bewegt solange der Joystick über einen bestimmten Winkel ausgelenkt wird?

Ansonsten: Lad mal den Sketch hier rein:
Code:
int joyPin1 = 0;                 // slider variable connecetd to analog pin 0
int joyPin2 = 1;                 // slider variable connecetd to analog pin 1
int value1 = 0;                  // variable to read the value from the analog pin 0
int value2 = 0;                  // variable to read the value from the analog pin 1

void setup() {
   pinMode(ledPin, OUTPUT);              // initializes digital pins 0 to 7 as outputs
   Serial.begin(9600);
}

void loop() {
   // reads the value of the variable resistor
   value1 = analogRead(joyPin1);  
   // this small pause is needed between reading
   // analog pins, otherwise we get the same value twice
   delay(1);              
   // reads the value of the variable resistor
   value2 = analogRead(joyPin2);  
   Serial.print(value1);
   Serial.print("\t");
   Serial.println(value2);
   delay(200);
}
Dann starte den Serial Monitor und bewege den Joystick. Schreib mal auf, was für Werte jeweils für Mittelstellung, ganz rechts, ganz links, halb rechts, halb links, ganz oben, ganz unten, halb oben, halb unten angezeigt werden.

Gruß,
Thorsten

Falls ich mit einer Antwort helfen konnte, wuerde ich mich freuen, ein paar Fotos oder auch ein kleines Filmchen des zugehoerigen Projekts zu sehen.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
Antwort schreiben 


Möglicherweise verwandte Themen...
Thema: Verfasser Antworten: Ansichten: Letzter Beitrag
  Android Smartphone über Bluetooth steuern StephanBuerger 0 89 25.11.2016 20:01
Letzter Beitrag: StephanBuerger
  Zwei Schrittmotoren mit Arduino steuern MarcusW 6 2.385 28.09.2015 21:05
Letzter Beitrag: Bitklopfer
  Sensor an Arduino über IP abfragen/steuern kubinek 5 2.624 03.08.2015 21:14
Letzter Beitrag: Haustechno
  Schritttmotor mit Endstufe HY-DIV268N-5A steuern Schrittmotor 5 2.187 28.07.2015 10:37
Letzter Beitrag: Scherheinz
  50+ Schrittmotoren steuern. ayu 18 4.925 25.06.2015 10:55
Letzter Beitrag: ayu
  Hilfe; Servos über schalter steuern??? Soempe 9 8.199 28.04.2015 09:49
Letzter Beitrag: badges
  LED stripes steuern roller64 2 1.156 21.04.2015 20:48
Letzter Beitrag: roller64
  Quadrocopter-Dronen autonom per Wifi steuern? HaWe 11 1.785 10.03.2015 16:11
Letzter Beitrag: HaWe
  12 Schrittmotoren mit Arduino Mega 2560 Fipso 3 2.033 06.03.2015 22:38
Letzter Beitrag: HaWe
  7-Segment Led common anode mit 74HC595 und TIP31C steuern myqubus 0 815 15.01.2015 18:51
Letzter Beitrag: myqubus

Gehe zu:


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