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:
  • 1 Bewertungen - 5 im Durchschnitt
  • 1
  • 2
  • 3
  • 4
  • 5
Wie steuere ich 2 DC Motoren über ein Motorshield mit einem Joystick?
07.04.2014, 13:58
Beitrag #9
RE: Wie steuere ich 2 DC Motoren über ein Motorshield mit einem Joystick?
Hi,
es wäre richtig super wenn die Joystick Werte mit map aufbereitet werden würden und der Poti dann nur zum begrenzen ist!

die PWM Frequenz hab ich geändert und die Motoren laufen auch gleich viel schneller danke Wink

bei dem minimal Code drehen die motoren etwas komisch..

ich habe versucht eine weiche anfahrt einzustellen aber das funktioniert noch nicht ganz jedoch laufen die Motoren jetzt beide in jede Richtung Big Grin nur wenn beide gleichzeitig laufen sollen "zittern" sie....

als Stromversorgung hab ich gerade ein Labornetzeil mit 12 V die Strombegrenzung ist bei 600mA die werden aber nicht erreicht.

mfg Vittelboy
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
07.04.2014, 18:13
Beitrag #10
RE: Wie steuere ich 2 DC Motoren über ein Motorshield mit einem Joystick?
Hallo!
Hast für jede Achse eigenen Speed ?
zum testen... in die Richtung könnte es gehn

Code:
#include <AFMotor.h>
AF_DCMotor motor(1);

#define Joy_x_links          500     // M1 links
#define Joy_x_rechts         530    // M1 rechts
#define Joy_y_links          500     // M2 links
#define Joy_y_rechts         530     // M2 rechts
  
void setup() {
  Serial.begin(9600);        
// motor.run(RELEASE);
}

void loop() {

  
  int Poti= analogRead(A3);
  int Joyx = analogRead(A1);
  int Joyy = analogRead(A2);
  int Lim = map (Poti, 0, 1020,   0, 250);
  int S1 = map(Joyx, 520, 1020,   0, Lim);
  int S2 = map(Joyx, 500,    0,   0, Lim);
  int S3 = map(Joyy, 520, 1020,   0, Lim);
  int S4 = map(Joyy, 520,    0,   0, Lim);

if( Joyx <= Joy_x_links) { motor.run(BACKWARD);  motor.setSpeed(S1);}
    else if(Joyx>= Joy_x_rechts) { motor.run(FORWARD);  motor.setSpeed(S2);}
     else if( Joyy <= Joy_y_links  ) {motor.run(BACKWARD) ; motor.setSpeed(S3);}
   else if(Joyy>=  Joy_y_rechts ) { motor.run(FORWARD) ; motor.setSpeed(S4);}

}

mfg Martin
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
08.04.2014, 08:51
Beitrag #11
RE: Wie steuere ich 2 DC Motoren über ein Motorshield mit einem Joystick?
Moin Smile

mit deinem Code haben die Motoren leider nicht mehr richtig gestoppt deswegen hab ich den in meinen eingefügt und ich bin schon sehr begeistert die Motoren fahren weich an und bremsen weich allein durch die geschwindigkeits Regelung des Joysticks. Big Grin

leider laufen beide motoren nur FORWARD und anderes herrum passiert nicht..

ich besorg mir noch nen anderen joystick meiner hat zuwenigwert und er verstellt sich andauern...

mfg
Vittelboy

Zitat:#include <AFMotor.h>

AF_DCMotor motor1(1, MOTOR12_64KHZ); // create motor #2, 64KHz pwm;
AF_DCMotor motor2(2, MOTOR12_64KHZ); // create motor #2, 64KHz pwm

#define Joy_x_links          515     // M1 links
#define Joy_x_rechts         575   // M1 rechts
#define Joy_y_links          457     // M2 links
#define Joy_y_rechts         517     // M2 rechts
  

void setup() {
  Serial.begin(9600); // set up Serial library at 9600 bps
}
void loop()
/* analog Joystick control */
{

  
  int Poti= analogRead(A2);
  int Joyx = analogRead(A0);
  int Joyy = analogRead(A1);
  int Lim = map (Poti, 0, 1020, 0, 250);
  int S1 = map(Joyx, 575, 1020, 0, Lim);
  int S2 = map(Joyx, 515, 0, 0, Lim);
  int S3 = map(Joyy, 517, 1020, 0, Lim);
  int S4 = map(Joyy, 457, 0, 0, Lim);
{

if(Joyx >= Joy_x_links) // Motor 1 Links
   {motor1.run(FORWARD);
    motor1.setSpeed(S1);}

if(Joyx <= Joy_x_links ) // Motor 1 Stop
    {motor1.run(RELEASE);}


if(Joyx <=Joy_x_rechts) //Motor 1 Rechts
   {motor1.run(BACKWARD);
    motor1.setSpeed(S2);}
    
if(Joyx >= Joy_x_rechts ) //Motor 1 Stop
    {motor1.run(RELEASE);}


if(Joyy >= Joy_y_links) //Motor 2 Links
   {motor2.run(FORWARD);
    motor2.setSpeed(S3);}
    
if(Joyy <= Joy_y_links ) //Motor 2 Stop
   {motor2.run(RELEASE);}


if(Joyy <= Joy_y_rechts) //Motor 2 Rechts
     {motor2.run(BACKWARD);
      motor2.setSpeed(S4);}
    
if(Joyy >= Joy_y_rechts) //Motor 2 Stop
     {motor2.run(RELEASE);}
  
  
  
}
}
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
08.04.2014, 12:52
Beitrag #12
RE: Wie steuere ich 2 DC Motoren über ein Motorshield mit einem Joystick?
Hallo!
Die X sollte so laufen:

Code:
#include <AFMotor.h>
AF_DCMotor motor1(1, MOTOR12_64KHZ); // create motor #2, 64KHz pwm;
AF_DCMotor motor2(2, MOTOR12_64KHZ); // create motor #2, 64KHz pwm
#define Joy_x_links          500     // M1 links
#define Joy_x_rechts         550   // M1 rechts
#define Joy_y_links          500     // M2 links
#define Joy_y_rechts         550     // M2 rechts
  void setup() {
  Serial.begin(9600); // set up Serial library at 9600 bps
}
void loop()

{

  
  //int Poti=  255;//analogRead(A2);
  int Joyx = analogRead(A0);
  //int Joyy = analogRead(A1);
// int Lim = map (Poti, 0, 1020, 0, 255);

if(Joyx >= Joy_x_rechts)
           { Joyx = map(Joyx, 520, 1020, 0, 250);
           int S1 =  constrain (Joyx, 0, 250);
           motor1.run(FORWARD); motor1.setSpeed(S1);
           Serial.print ("X-Ax_Rechts= ");Serial.print (S1);}
else if(Joyx <=Joy_x_links)
           {Joyx = map(Joyx, 510, 0, 0, 250);
           int S2 =  constrain (Joyx, 0, 250);
           {motor1.run(BACKWARD);motor1.setSpeed(S2);
           Serial.print ("X-Ax_links= "); Serial.print (S2);}
   }}

PS: Zum einfügen von Code in die Posts nimm die Raute, einfügen vom Code
und nochmals die Raute..

mfg Martin
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
29.12.2015, 09:51
Beitrag #13
RE: Wie steuere ich 2 DC Motoren über ein Motorshield mit einem Joystick?
Hallo Vittelboy, ich habe gerade meinen eigenen Remotekopf gebaut. Ich wollte wissen, ob Du den fertigen Code hier zur Verfügung stellen kannst?
Ich möchte auch per Joystick 2 DC Motoren über Arduino uno und Motorshield L298N die X,Y Achse steuern und gleichzeitig die Geschwindigkeit über Poti begrenzen.
Gleichzeitig möchte ich über ein Poti einen Softanlauf und Softbremse einstellen.(sog. Rampe)
Für Hilfe bin ich echt dankbar
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
Antwort schreiben 


Möglicherweise verwandte Themen...
Thema: Verfasser Antworten: Ansichten: Letzter Beitrag
  WEMOS Motorshield funzt nicht Rumpl-X 8 217 07.06.2017 21:10
Letzter Beitrag: Tommy56
  Lauflicht mit Nano Pixel und Joystick strobo 3 177 20.05.2017 20:16
Letzter Beitrag: Tommy56
  Probleme mit einem Sketch für einen LED Cube 5x5x5 Frank1234 5 333 13.03.2017 12:12
Letzter Beitrag: Tommy56
  RGB Animation über Serial Steuern Medolino 5 294 20.02.2017 16:14
Letzter Beitrag: Medolino
  Arduino-UNO LED über Taster digital zum leuchten zu bringen IvKriz 9 483 18.02.2017 08:33
Letzter Beitrag: renid55
  Servo-Ansteuerung über einen Push-Button Aubergine83 1 264 16.02.2017 19:49
Letzter Beitrag: georg01
  LED langsam über 15 Minuten dimmen Kriskind 14 699 09.02.2017 13:26
Letzter Beitrag: Kriskind
  Mehrere HX711 mit einem Arduino Uno be14b029 5 403 08.02.2017 18:09
Letzter Beitrag: Binatone
  8 Taster an einem Pin Kitt 9 663 04.02.2017 18:51
Letzter Beitrag: ardu_arne
  Display über I2-Bus betreiben mfri 22 1.029 23.01.2017 11:06
Letzter Beitrag: renid55

Gehe zu:


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