hi
das rn board hat sicher ein takt und richtungs signal , (l298, l297) denke ich , du must nicht jede spule separat ansteuern , schau dir ein beispiel program von dein board.
Guss
hi
ich hab en Problem ich hab einen Bipolare Schrittmotor den ich ansteuern will.
ich hab mir die tabelle in RN-Wissen http://www.rn-wissen.de/index.php/Schrittmotoren angeschaut und hab dafür eine Code geschrieben und auf meinem mega32 geflasht ( ich benutze ein rn-bord mit dem dort verbauten motor treiber) mein problem is das der sich net richtig dreht sondern nur ruckelt vieleicht kann ja mal jemand kurz mal den code anschauen vieleicht hab ich es auch komplet falsch gemacht.
danke Micha
Code:$regfile = "m32Def.dat" $crystal = 16000000 Config Portb.0 = Output Motor1_spule1a Alias Portb.0 Config Portb.1 = Output Motor1_spule1b Alias Portb.1 Config Portc.6 = Output Motor1_spule2a Alias Portc.6 Config Portc.7 = Output Motor1_spule2b Alias Portc.7 Config Pina.0 = Input Taster_links Alias Pina.0 Config Pina.1 = Input Taster_rechts Alias Pina.1 Porta.1 = 1 Porta.0 = 1 Do If Taster_rechts = 0 Then Motor1_spule1a = 1 Motor1_spule1b = 0 Motor1_spule2a = 1 Motor1_spule2b = 0 Waitms 10 Motor1_spule1a = 1 Motor1_spule1b = 0 Motor1_spule2a = 0 Motor1_spule2b = 1 Waitms 10 Motor1_spule1a = 0 Motor1_spule1b = 1 Motor1_spule2a = 0 Motor1_spule2b = 1 Waitms 10 Motor1_spule1a = 0 Motor1_spule1b = 1 Motor1_spule2a = 1 Motor1_spule2b = 0 End If Loop End
hi
das rn board hat sicher ein takt und richtungs signal , (l298, l297) denke ich , du must nicht jede spule separat ansteuern , schau dir ein beispiel program von dein board.
Guss
hi des bord ist mit einem L293D motortreiber ausgestattet. ich versteh nur nicht was du mit" takt und richtungs signal , (l298, l297) denke ich , du must nicht jede spule separat ansteuern" ich dachte man mzss jede spule seperat ansteuern da vom mC vier drähte in den motortreiber gehen und vier wider raus......und nach einem beispiel program für einem Schrittmotor hab ich schon geschaut und keins gefunden
Gruss micha
Es gibt "intelligente" Motortreiber die benötigen nur eine Richtungsvorgabe und dann macht der Schrittmotor mit jedem Takt einen Schritt. Bei einem normalen Motortreiber wie dem L297 musst du es so machen das die Spulen von dem Schrittmotor an dem Output von dem Treiber angeschlossen werden.
hi
@Kampi ich benutz ja des rn-controlerbord wie ich des anschlies is mir klar ich hab nur kein plan wie der Quellcode aussehen soll und ich benutz nicht einen L297 sondern einen L293D.... und wie geb ich im quellcode die richtung an könntet ihr mir ein beispiel geben oder posten also einen code wie ich des an den l293d weitergeb mit der dreh richtug und der bitfolge das sich der motor dreht
danke
Ähhh meinte einen L293....tschuldigung Zahlendreher.
Die Richtung gibst du durch die Bitreihenfolge an. Die Motorspulen werden ja an die H-Brücken des Motortreibers angeschlossen.
D.h. du legst die beiden Enable-Pins auf High. Und dann werden die einzelnen Input-Pins nacheinander auf High gelegt.
hi also ich hab jetzt die enable pins auf high und dan die input pins alle nach einander auf high gelegt und der Schrittmotor dreht sich völlig ohne system vor und zurück und wakclet hin und her
hier ist der code ich weiß net was ich falsch mach
Code:$regfile = "m32Def.dat" $crystal = 16000000 Config Portb.0 = Output Motor1_spule1a Alias Portb.0 Config Portb.1 = Output Motor1_spule1b Alias Portb.1 Config Portc.6 = Output Motor1_spule2a Alias Portc.6 Config Portc.7 = Output Motor1_spule2b Alias Portc.7 Config Pina.0 = Input Taster_links Alias Pina.0 Config Pina.1 = Input Taster_rechts Alias Pina.1 Config Portd.5 = Output Config Portd.4 = Output Porta.1 = 1 Porta.0 = 1 Portd.5 = 1 Portd.4 = 1 Do If Taster_rechts = 0 Then Motor1_spule1a = 1 Motor1_spule1b = 0 Motor1_spule2a = 0 Motor1_spule2b = 0 Waitms 2 Motor1_spule1a = 0 Motor1_spule1b = 1 Motor1_spule2a = 0 Motor1_spule2b = 0 Waitms 2 Motor1_spule1a = 0 Motor1_spule1b = 0 Motor1_spule2a = 1 Motor1_spule2b = 0 Waitms 2 Motor1_spule1a = 0 Motor1_spule1b = 0 Motor1_spule2a = 0 Motor1_spule2b = 1 Waitms 2 End If Loop End
Schau mal hier drunter nach:
-> http://www.mikrocontroller.net/topic/158488
Weil du musst die Spulen auch schon richtig herum ansteuern. So wie du das gemacht hast lässt du den Motor erst nach links drehen und kehrst dann einfach die Polarität um und dadurch macht er einen Step zurück.
ja des is gerade mein problem das der einen step vor mancht und dan einen zurück auf der seite hab ich nix richtg gefunden was mir hilft die machen des doch auch so wie ich das die des einfach rum drehen also der code hier lässt den motor ein mal vor und einmal zurück drehen also einen step wie mach ich des das der nur links und nur rechts dreht????
sorry ich bin da voll der neuling und kapier es nicht
Code:$regfile = "m32Def.dat" $crystal = 16000000 Config Portb.0 = Output Motor1_spule2a Alias Portb.0 Config Portb.1 = Output Motor1_spule2b Alias Portb.1 Config Portc.6 = Output Motor1_spule1a Alias Portc.6 Config Portc.7 = Output Motor1_spule1b Alias Portc.7 Config Pina.0 = Input Taster_links Alias Pina.0 Config Pina.1 = Input Taster_rechts Alias Pina.1 'Config Portd.5 = Output 'Config Portd.4 = Output Porta.1 = 1 Porta.0 = 1 'Portd.5 = 1 'Portd.4 = 1 Do If Taster_rechts = 0 Then Motor1_spule1a = 1 Motor1_spule1b = 0 Motor1_spule2a = 0 Motor1_spule2b = 1 Waitms 500 Motor1_spule1a = 1 Motor1_spule1b = 0 Motor1_spule2a = 1 Motor1_spule2b = 0 Waitms 500 Motor1_spule1a = 0 Motor1_spule1b = 1 Motor1_spule2a = 1 Motor1_spule2b = 0 Waitms 500 Motor1_spule1a = 0 Motor1_spule1b = 1 Motor1_spule2a = 0 Motor1_spule2b = 1 Waitms 500 End If Loop End
hey
gibts da niemand der ne ahnung hat warum des sooo ist ??????
Lesezeichen