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:
  • 2 Bewertungen - 5 im Durchschnitt
  • 1
  • 2
  • 3
  • 4
  • 5
wie gleichstrommotor beidseitig laufen lassen?
21.05.2013, 18:01
Beitrag #9
RE: wie gleichstrommotor beidseitig laufen lassen?
währe dass was?

#define MOTOR 9

void setup()
{
pinMode(MOTOR, OUTPUT);
analogWrite(MOTOR,64); //langsam
delay(2000);
analogWrite(MOTOR,128); //mittel
delay(2000);
analogWrite(MOTOR,255); //schnell
delay(2000);
digitalWrite(MOTOR,LOW);
}
void loop()
{}

natürlich weitere Zwischenschritte einbauen und den ensprechenden befehl
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
21.05.2013, 18:52
Beitrag #10
RE: wie gleichstrommotor beidseitig laufen lassen?
(20.05.2013 22:20)Martin Steger schrieb:  .....Der Motor fähr immer ruckartig los. Hätte da jemand BITTE eine Idee. Danke an alle!!!!

Hallöchen,
ähm das hört sich für mich so an als wenn dein PWM Signal recht Niederfrequent ist weil wenn man einen DC Motor per PWM ansteuert kann man da wenn man entsprechend fein auflöst die Umdrehungen untenraus per Auge mitzählen....

Wie sieht denn deine Hardware aus bzw. wie die zugehörige Routine wo den PWM Ausgang ansteuert ?

1+1 = 10 Angel ...und ich bin hier nicht der Suchmaschinen-Ersatz Dodgy...nur mal so als genereller Tipp..
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
22.05.2013, 07:58
Beitrag #11
RE: wie gleichstrommotor beidseitig laufen lassen?
Also die Hardware ist ein Arduino UNO mit einem Motorshiel darauf und die Routine lautet:

int inputhorizontal = 0;
int inputvertikal= 0;
int motorspeedA = 0;
int motorspeedB = 0;


void setup()
{
pinMode(3, OUTPUT); //Motor Channel A
pinMode(9, OUTPUT); //Brake Channel A
pinMode(12, OUTPUT); // für die Drehrichtung

pinMode(11, OUTPUT); //Motor Channel B
pinMode(8, OUTPUT); //Brake Channel B
pinMode(13, OUTPUT); // für die Drehrichtung

Serial.begin(9600); // Erzeugt eine Verbindung mit dem PC
digitalWrite(9, LOW);// Bremse Motor A
digitalWrite(8, LOW); // Bremse Motor B
}

void loop()
{
inputhorizontal = analogRead(A4);
//Serial.println(inputhorizontal); // überträgt die Daten an den PC

// Bereich für den Motor A
if(inputhorizontal >= 540)
{
motorspeedA = map(inputhorizontal, 539, 1023, 0, 255);
digitalWrite(12, HIGH);
}
else if(inputhorizontal <= 490)
{
motorspeedA = map(inputhorizontal, 0, 489, 0, 255);
motorspeedA = 255 - motorspeedA;
digitalWrite(12, LOW);
}
else
{
motorspeedA = 0;
}

// Bereich für den Motor B
inputhorizontal = analogRead(A3);
if(inputvertikal >= 540)
{
motorspeedB = map(inputvertikal, 539, 1023, 0, 255);
digitalWrite(12, HIGH);
}
else if(inputvertikal <= 490)
{
motorspeedB = map(inputvertikal, 0, 489, 0, 255);
motorspeedB = 255 - motorspeedB;
digitalWrite(12, LOW);
}
else
{
motorspeedB = 0;
}
Serial.println(inputvertikal);
analogWrite(3, motorspeedA);
analogWrite(11, motorspeedB);
}
Nur noch zur INfo, der Joystick ist von Conrad um 5 Euro. Habe eine Liste wo alle Werte des Joysticks zum Arduino kommen erstellt und dort waren die Signale beim Betätigen des Joystick total Sprunghaft: 1,9,13,24,36 usw. Vielleicht hilft das weiter. Soll ich einen besseren Joystick kaufen???
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
22.05.2013, 19:40 (Dieser Beitrag wurde zuletzt bearbeitet: 22.05.2013 19:52 von Bitklopfer.)
Beitrag #12
RE: wie gleichstrommotor beidseitig laufen lassen?
(22.05.2013 07:58)Martin Steger schrieb:  ...void loop()
{
...
// Bereich für den Motor A
....
motorspeedA = map(inputhorizontal, 489, 0, 0, 255); <== geht auch so
// motorspeedA = 255 - motorspeedA; // Zeile entfällt dann....
.......


// Bereich für den Motor B
inputhorizontal = analogRead(A3); <=== ähm Zweimal inputHORIZONTAL ???
.......

..... des Joystick total Sprunghaft: 1,9,13,24,36 usw. ....

Hallo,
habe das mal hier simuliert, die Umsetzung der Werte vom ADC zum PWM scheint zu passen. Aber die Sprünge vom Joystick kannst du nur durch ein bischen integrieren abmildern indem du den ADC Wert nicht direkt an die Ausgabe weitergibst sondern nur nachführen tust und immer nur 1 Digit als Increment zuläßt.

das könnte so aussehen:

inputBUFFER = analogRead(A4);

if(inputBUFFER > inputhorizontal)inputhorizontal ++;
if(inputBUFFER < inputhorizontal)inputhorizontal --;

if(inputhorizontal >= 540)
{
motorspeedA = map(inputhorizontal, 539, 1023, 0, 255);
digitalWrite(12, HIGH);
}
else if(inputhorizontal <= 490)
{
motorspeedA = map(inputhorizontal, 489, 0, 0, 255);
digitalWrite(12, LOW);
}
else
{
motorspeedA = 0;
}
.......
analogWrite(3, motorspeedA);
delay(200); // Delaywert einfach mal Testhalber verändern


Somit ist sichergestellt das der PWM Ausgang jeden Zwischenwert durchfährt und keine Sprünge macht.

Alternativ kannst das delay() auch mit dem Zeitwert millis() durchführen, nur ist es dann aufwendiger zum programmieren.

Kannst uns ja berichten wie der Motor nun anläuft....habe hier keinen Motor oder Shield um das selber zu testen.

1+1 = 10 Angel ...und ich bin hier nicht der Suchmaschinen-Ersatz Dodgy...nur mal so als genereller Tipp..
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
22.05.2013, 20:51
Beitrag #13
RE: wie gleichstrommotor beidseitig laufen lassen?
Danke für die schnelle Antwort! Zweimal input, weil ich zwei Motoren ansteuern möchte. Was muss ich nun bei meinem Code weglöschen und was kann bleiben bzw. was kann ich einfach übernehmen??????? aaaahhhhh ich check programmieren einfach nicht!!!!!!!
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
26.05.2013, 22:39 (Dieser Beitrag wurde zuletzt bearbeitet: 26.05.2013 22:42 von Bitklopfer.)
Beitrag #14
RE: wie gleichstrommotor beidseitig laufen lassen?
(22.05.2013 20:51)Martin Steger schrieb:  Danke für die schnelle Antwort! Zweimal input, weil ich zwei Motoren ansteuern möchte. Was muss ich nun bei meinem Code weglöschen und was kann bleiben bzw. was kann ich einfach übernehmen??????? aaaahhhhh ich check programmieren einfach nicht!!!!!!!

...wenn ich mal Zeit habe nehme ich nen Oszi und schau mir mal so einen PWM Ausgang an. Derzeit habe ich leider nichts am laufen wo einen PWM Ausgang hat oder benötigt...
Kanns mir eigentlich nicht vorstellen das man das so nicht hinkriegt mit dem Sanftanlauf...Confused

Apropos mit dem Poti ansteuern, hast du zwischen dem Poti eine Leistungselektronik zwischen dem Poti und dem Motor drin und wenn ja welche ?

1+1 = 10 Angel ...und ich bin hier nicht der Suchmaschinen-Ersatz Dodgy...nur mal so als genereller Tipp..
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
26.05.2013, 22:55
Beitrag #15
RE: wie gleichstrommotor beidseitig laufen lassen?
Ich hab eigentlich nur einen drehzahlregler bei conrad gekauft und dann direkt den motor angeschlossen und das funktioniert wundertoll. nur übers arduino geht es nicht gut. es ist übrigents ein dc motor von modellcraft mit 26 rpm.
ich habe heute den motor anlaufen lassen und dann auf eine minigeschw. gedrosselt, dann festgehalten und dann wieder laufen lassen. dabei war kein kuckler im anlauf. ich habe keinen tau warum mit poti und nicht mit arduino??!!
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
26.05.2013, 23:02
Beitrag #16
RE: wie gleichstrommotor beidseitig laufen lassen?
(26.05.2013 22:55)Martin Steger schrieb:  Ich hab eigentlich nur einen drehzahlregler bei conrad gekauft und dann direkt den motor angeschlossen und das funktioniert wundertoll. nur übers arduino geht es nicht gut. es ist übrigents ein dc motor von modellcraft mit 26 rpm.
ich habe heute den motor anlaufen lassen und dann auf eine minigeschw. gedrosselt, dann festgehalten und dann wieder laufen lassen. dabei war kein kuckler im anlauf. ich habe keinen tau warum mit poti und nicht mit arduino??!!

verrate mir doch mal die Conrad Bestellnummer das ich mir den Drehzahlregler mal anschauen kann.
Und mit dem PWM Ausgang vom Arduino gehst du bei dem Regler auf welchen Eingang genau ?

1+1 = 10 Angel ...und ich bin hier nicht der Suchmaschinen-Ersatz Dodgy...nur mal so als genereller Tipp..
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
Antwort schreiben 


Möglicherweise verwandte Themen...
Thema: Verfasser Antworten: Ansichten: Letzter Beitrag
  Mehrere RGB LEDs einzeln Blinken lassen mavericklp 2 518 04.02.2016 19:07
Letzter Beitrag: mavericklp

Gehe zu:


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