Forum: Mikrocontroller und Digitale Elektronik Motorrehrichtung steuern.


von Stefan_im_Stress (Gast)


Angehängte Dateien:

Lesenswert?

Hallo Leute,

Komme einfach nicht weiter, ich hoffe ihr könnt mir hilfreiche Tipps 
geben.

Meine Schaltung ist im Anhang.

Problem ist: Der Motor dreht sich vlt nur ganz kurz, also er zuckt nur 
ganz kurz und ganz schwach weg.

Den Motor habe ich von der Schule bekommen, ich kenne keine Daten, aber 
einmal haben wir schon mal was mit dem gearbeitet
und was ich weiß benötigt er im Leerlauf 200mA.

Die Funktion ist es die Drehrichtung zu steuern indem ich auf einem Port 
einen Taster betätige ( einen für links einen für rechts).

Wenn ein Taster gedrückt wird so soll am anderen Port auf einem Pin ein 
Signal rauskommen das 5V beträgt und soll so in eine
Richtung drehen.

Wieso dreht sich der Motor aber ganz kurz und ganz schwach, de rührt 
sich nur einen halben mm vom Fleck und dann bleibt er stehen.
Also er macht nicht mal einen Schritt ( ist ein Schrittmotor ).

Die 3,3V an den Tastern sind nur dazu da um ein beim drücken ein HIGH am 
PIN0 oder PIN1 beim Port-C zu intepretieren.

Ich habe mir am Anfang gedacht das der Motor mehr Strom benötigt also 
dass an VS ( Die Motorspannung ) mehr Spannung anliegen soll.

Das stimmt meiner Meinung nach nicht weil, wenn ich zum Beispiel einen 
Input zum Beispiel den Input 2 nicht am Portpin angesteckt habe
sondern der in der Luft hängt sozusagen, läuft der Motor und das mit den 
eigentlichen 5V.

Am Enable PIN wo eigentlich eine PWM sein müsste, habe ich auch von 
einem Portpin am PortB eine reine Gleichspannung von 5V anliegen, der 
Motor soll sich einfach permanent drehen.

Könnt ihr mir da helfen, suche den Fehler schon 2,5h und finde in 
einfach nicht, ich verstehe das einfach nicht :S

Danke im Voraus

von Karl H. (kbuchegg)


Lesenswert?

> Wieso dreht sich der Motor aber ganz kurz und ganz schwach,
> de rührt sich nur einen halben mm vom Fleck und dann bleibt
> er stehen. Also er macht nicht mal einen Schritt ( ist ein
> Schrittmotor ).

Das klingt für mich nach genau dem was ein Schrittmotor machen würde, 
wenn man einfach eine Spannung an eine Wicklung anschliessen würde: 
Einen Schritt. Und das was du da bescheibst, das klingt ganz genau nach 
einem Schritt. Oder was hast du dir erwartet, was ein Schritt ist?


Aber ich bezweifle ehrlich gesagt, dass du da einen Schrittmotor hast. 
Ein Schrittmotor hat mehr als 2 Anschlüsse.

von Karl H. (kbuchegg)


Lesenswert?

Kann es sein, dass du da ganz gewaltig den L298, der ein reiner 
Leistungstreiber (also H-Brücke) ist, mit dem Gespann aus L297 + L298 
verwechselst.
Ein L297 hat die ganze Logik eingebaut, die die einzelnen Spulen eines 
Schrittmotors entsprechend durchschalten, so das der Motor dreht. Der 
L298 sorgt dann für den nötigen Strom.

Hast du keinen L297 dann muss dein Programm die Aufgabe dieses Bausteins 
übernehmen und die einzelnen Spulen eines Schrittmotors (über den 
Leistungstreiber) durchschalten. Mit dem Setzen eines Ausgansgpins auf 1 
ist es da nicht getan.


D.h. falls das was du da hast, tatsächlich ein Schrittmotor ist. Wenn 
der nur 2 Anschlüsse hat, dann ist es keiner.

von Stefan_im_Stress (Gast)


Lesenswert?

Es liegt ja Spannung an an dem Motor, also beim drücken von den Tastern 
da kommt dann an einem Input 0V und am anderen +5V. Der zuckt aber nur 
ganz kurz.

Wenn ich den Motor so am Netzgerät hänge ( wo ich die selbe Spannung 
anlege ) dann dreht er sich ganz normal.

:S

von Karl H. (kbuchegg)


Lesenswert?

Hast du von der GND des Motors eine Verbindung zum GND des µC?

von Karl H. (kbuchegg)


Lesenswert?

Stefan_im_Stress schrieb:
> Es liegt ja Spannung an an dem Motor, also beim drücken von den Tastern
> da kommt dann an einem Input 0V und am anderen +5V. Der zuckt aber nur
> ganz kurz.
>
> Wenn ich den Motor so am Netzgerät hänge ( wo ich die selbe Spannung
> anlege ) dann dreht er sich ganz normal.

OK. Dann ist es kein Schrittmotor. Das wäre also geklärt.

von Stefan_im_Stress (Gast)


Lesenswert?

Mein Code:

#define ALLOCATE_EXTERN
#include "ezusb.h"
#include "ezregs.h"

void main (void)
{   int a=0x00000000;

  PORTCCFG=0x00;
  PORTBCFG=0x00;
  OEB=0x07;
  OEC=0x00;
  while(1)
 {

if(PINSC&0x01)
  {

     OUTB=0x05;

  }

else
  {

     OUTB=0x04;
  }
if(PINSC&0x02)
  {
     OUTB=0x06;
  }

else
  {
   OUTB=0x04;
  }


 }
}

von Stefan_im_Stress (Gast)


Lesenswert?

Jep habe ich, hab alle Masen verbunden.

von Karl H. (kbuchegg)


Lesenswert?

Und was sagt dein Voltemeter, wenn du einfach mal an den Pins misst?

WElche Spannung liegt an INPUT1, welche an INPUT2, welche an ENABLE?

von Karl H. (kbuchegg)


Lesenswert?

Und mach dein erstes Programm nicht so 'kompliziert'.

Der Taster ist schon wieder eine Fehlerquelle, die keiner beim Testen 
braucht.

Erstes Testprogramm
1
#define ALLOCATE_EXTERN
2
#include "ezusb.h"
3
#include "ezregs.h"
4
5
void main (void)
6
{
7
  PORTCCFG = 0x00;
8
  PORTBCFG = 0x00;
9
  OEB = 0x07;
10
  OEC = 0x00;
11
12
  OUTB = 0x05;    // ENABLE und drehen
13
14
  while( 1 )
15
  {
16
  }
17
}

dann hat man auch beide Hände zum messen frei und muss nicht ständig 
einen Taster drücken

von Stefan_im_Stress (Gast)


Lesenswert?

Das ist es ja, alles stimmt, beim drücken den ersten Tasters liegt an 
Input1 eine Spannung ( 5V) und an Input2 gar nichts. Umgekehrt genau so.

An enable liegt 5V konstant, auch wenn ich keinen Taster drücke liegen 
da 5V an. So hab ichs im Programm geschrieben.

PS: Danke dir für die schnellen Antworten.

MFG

von Karl H. (kbuchegg)


Lesenswert?

Foto vom Aufbau


Edit: Bitte so, dass man auch die jeweiligen Versorgungen erkennen kann.

von Thomas D. (thomasd)


Lesenswert?

Hallo,



benutzt du da einen L298, ist schlecht zu sehen, wenn ja schein deine 
Pinbeschriftung falsch zu sein. Im Datenblatt ist 2 + 3 Output, nicht 3 
+ 6.
Oder ist es ein L293 ?


Schöne Grüße

Thomas

von Stefan_im_Stress (Gast)


Lesenswert?

Hallo,

Fotos sind in 5min da.

@Thomas :  Ich verwende den l293D. Die Pins habe ich richtig 
angeschlossen. Wirst du am Foto sehen.

MFG

von Stefan_im_Stress (Gast)


Angehängte Dateien:

Lesenswert?

Hier ist das Foto.

von Floh (Gast)


Lesenswert?

Sag aber nicht, dass du die 5V über USB beziehst.

von Stefan_im_Stress (Gast)


Lesenswert?

Nein nur der µC wird mit 5V versorgt.

Die andern 5V in kommen vom Netzgerät, also Vs ( die Motorspannung ) und 
Vss ( Logikspannung ) hängen an den 5V vom Netzgerät.

von Karl H. (kbuchegg)


Lesenswert?

Stefan_im_Stress schrieb:
> Hallo,
>
> Fotos sind in 5min da.
>
> @Thomas :  Ich verwende den l293D. Die Pins habe ich richtig
> angeschlossen. Wirst du am Foto sehen.

Laut welchem Datenblatt?

Den L298 gibts auch im DIP Gehäuse? Wusste ich gar nicht und ich hab 
dazu auch nichts gefunden.

von Stefan_im_Stress (Gast)


Lesenswert?

Laut diesem Datenblatt: 
http://www.datasheetcatalog.org/datasheet/SGSThomsonMicroelectronics/mXyzuxsr.pdf

Ich habe aber eine Idee wieso es sich zuuu schwach oder gar nicht 
bewegt.

Habe an den OUTPUTPINS vom Motortreiber gemessen während ein taster 
betätigt wird.  OUTPUT2 = 0,50V und OUTPUT1= 1,40V.

Ich vermute das sich der Motor mit folgender Spannung dreht: 1,40V - 
0,50V = 0,90V.

Ich vermute das das zu wenig ist, oder liege ich mit meiner vermutung 
komplett falsch?

MFG

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.