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
  Zwei identische I2C sensoren an einem Bus Karli 19 868 02.04.2018 22:13
Letzter Beitrag: Harry
  UDP Paket über UART senden (nicht SPI) Wampo 9 653 04.03.2018 18:49
Letzter Beitrag: Tommy56
  Variablenname über Schleife deklarieren golden_eagle 9 513 12.02.2018 22:36
Letzter Beitrag: golden_eagle
  Led über ethernet schalten dahans 2 358 06.02.2018 20:01
Letzter Beitrag: hotsystems
  byte´s zu einem String zusammenfassen ? Franz54 18 1.188 31.01.2018 10:10
Letzter Beitrag: MicroBahner
  Servo über Transistor Harry 21 1.738 29.01.2018 19:30
Letzter Beitrag: hotsystems
  Float über I2C zwischen 2 Arduinos UNO Marduino_UNO 12 3.836 13.01.2018 11:54
Letzter Beitrag: hotsystems
  Mehrere Ausgänge mit einem Befehl auf High oder Low setzen dahans 1 600 10.01.2018 12:48
Letzter Beitrag: Tommy56
  RC Anwendung mit 3 Empfängereingangen und einem MPU6050 Thorsten_S 19 1.368 10.12.2017 19:59
Letzter Beitrag: Tommy56
  2 Befehle über Serielle Schnittstelle interpretieren phischmi 14 1.008 04.12.2017 08:52
Letzter Beitrag: phischmi

Gehe zu:


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