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
> 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.
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.
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
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.
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
voidmain(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
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
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
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.
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.
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