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
  Kommunikation über das WiFi-Shield Flap 3 232 07.11.2016 20:20
Letzter Beitrag: hotsystems
  Menü über Bluetooth Eingabe abwarten anwo 4 503 18.10.2016 08:59
Letzter Beitrag: Lolliball
  Daten über USB verarbeiten Felix91 10 320 12.10.2016 13:00
Letzter Beitrag: Tommy56
  Code mit Verifikation über Keypad & LCD machnetz 5 215 10.10.2016 15:01
Letzter Beitrag: torsten_156
  A4988 Driver mit einem Nema 17 Hangloose 3 140 04.09.2016 21:49
Letzter Beitrag: Hangloose
  Arduino Steuern über eigne Homepage b3ta 8 398 16.08.2016 11:07
Letzter Beitrag: Pit
  I2C LCD mit Motorshield benutzen nomis 6 296 06.06.2016 16:57
Letzter Beitrag: nomis
  DUE-MEGA über I2C Verbinden HTO 0 221 22.05.2016 10:16
Letzter Beitrag: HTO
  Serial Monitor Eingabe über Code Maxi290997 4 519 12.05.2016 18:57
Letzter Beitrag: SkobyMobil
  Kann ich mit einem Arduino ein Gyro für Adroid Simulieren? Demitos 0 407 16.03.2016 18:33
Letzter Beitrag: Demitos

Gehe zu:


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