PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : 90S2313 Prototobed



darwin.nuernberg
08.08.2004, 16:39
Passend zum L297/298 Kompletttreiber gibts natürlich auch einen programmierbaren Controller O:) .
Dieser verfügt auch über eine RS232 mit der angesteuert werden kann. 8-[ .

Darwin

Das File habe ich in den Download-Bereich verschoben
https://www.roboternetz.de/phpBB2/dload.php?action=file&file_id=163

DEMO für Schrittmotoransteuerung:
Das Proggi läuft 10 verschiedene zufällige Positionen an, verharrt dann
an dieser kurz und läuft die komplette Strecke zurück. Dort "zittert der Motor kurz (Positio = 0) und das ganze Spiel geht von vorne Los.

Geschrieben für BASCom und AT90S2313 (8MHz) mit L297-298_4A-Driver.zip
https://www.roboternetz.de/phpBB2/viewtopic.php?t=2777

Das Proggie eignet sich auch gut gür einen Dauertest

BASCOM Source:



'************************************************* ******************************
' "Protobed-AT90S2313" mit
' "2A Stepper Motor Controller / Driver (Platine L297-L298_V1.35) an Port B
'************************************************* ******************************

$regfile = "2313def.dat"
$crystal = 8000000


Config Portb = Output

' Hier Anpassung vornehmen:
' Schritt an den verwendeten Motor anpassen
Const M_schritt = 1.8 ' Winkel für einen Schritt
' =======
Const M_pusdauer = 5000 ' Drehgeschindigkeit


Const M_completeturn = 360 / M_schritt

' Alias für die Ports
M_cw Alias Portb.0 ' Richtung: 1 = CW - 0 = CCW
M_clk Alias Portb.1 ' Schritt (Negativer Puls)
M_halfstep Alias Portb.2 ' Schritt: 0=voll; 1=halb
M_noreset Alias Portb.3 ' 0 für Reset
M_enable Alias Portb.4 ' 1 für Enable, 0 für Disable
M_cyl Alias Portb.5 ' Rückmeldung 1 Zyklus


Dim X As Integer
Dim Y As Integer

Dim Spd As Long
Dim Awayfromhome As Integer
Dim Homehelp As Integer

Dim Rndwert As Long
Dim Rndrichtung As Long


' Ports schalten
Reset M_halfstep
Set M_noreset
Set M_cw
Reset M_cyl
Set M_clk
Set M_enable




' MAIN() ************************************************** *********************

Print "Motor mit " ; M_completeturn ;
Print " Schritten für eine Umdrehung (" ;
Print M_schritt ; "°/Schritt)."
Print

Wait 1
Gosub Startup
Wait 1
Gosub Indicate
Waitms 250
Gosub Indicate
Wait 3

Do
Gosub Zufall
Wait 1
Gosub Heimatposition
Wait 1
Gosub Indicate
Wait 3


Loop

End 'end program



' SUBs ************************************************** ***********************

Zufall:

Awayfromhome = 0

For X = 1 To 10

Rndrichtung = Rnd(1000)
Rndwert = Rnd(m_completeturn)

If Rndrichtung > 500 Then
Print "Pos: " ; Awayfromhome ; " + " ; Rndwert
Awayfromhome = Awayfromhome + Rndwert
Set M_cw
Else
Print "Pos: " ; Awayfromhome ; " - " ; Rndwert
Awayfromhome = Awayfromhome - Rndwert
Reset M_cw
End If

For Y = 1 To Rndwert
Pulseout Portb , 1 , M_pusdauer
Next Y

Print "- Awayfromhome = " ; Awayfromhome
Waitms 250


Next X
Return


End 'end program

Heimatposition:

If Awayfromhome > 0 Then
Reset M_cw
Do
Pulseout Portb , 1 , M_pusdauer
Awayfromhome = Awayfromhome - 1
Loop Until Awayfromhome = 0

Else
Set M_cw
Do
Pulseout Portb , 1 , M_pusdauer
Awayfromhome = Awayfromhome + 1
Loop Until Awayfromhome = 0
End If


Return

Startup:
' Ganze Umdrehung
Set M_cw ' Clockwise
For X = 1 To M_completeturn
Pulseout Portb , 1 , M_pusdauer
Next X
' Ganze Umdrehung
Reset M_cw ' Counter Clockwise
For X = 1 To M_completeturn
Pulseout Portb , 1 , M_pusdauer
Next X


Pulseout Portb , 3 , 100000 'RESET
Awayfromhome = 0

Return

Indicate:

Reset M_cw ' Clockwise
For Y = 1 To 5
Pulseout Portb , 1 , M_pusdauer
Next Y

For X = 1 To 5
Set M_cw
' Clockwise
For Y = 1 To 10
Pulseout Portb , 1 , M_pusdauer
Next Y

Reset M_cw ' Counter Clockwise
For Y = 1 To 10
Pulseout Portb , 1 , M_pusdauer
Next Y

Next X

Set M_cw ' Clockwise
For Y = 1 To 5
Pulseout Portb , 1 , M_pusdauer
Next Y
Return


End 'end program[/color][/size]



Viel Spaß beim Spielen.

darwin.nuernberg
16.08.2004, 12:53
:?: Hat schon jemand das Teil nachgebaut?
Ich würde mich über Resonaz freuen.
Darwin.

Ferdinand
17.01.2005, 20:26
Hi

ist das ein schrittmotoren tester wo man heraus finden kann wie die spulen im motor ligen

ich habe nemlich 2 schrittmotoren wo ich aus einem druker von pihlips habe und weis nicht wie rum ich die 2 bis 4 spulen anschlisen muss man kan auch keine numer oder type erkenen

ist das so ein projekt oder kanst du mir da helfen.

Danke

by Ferdinand

30.01.2005, 21:20
Also dies ist erst mal ein Programm,
welches mit Bascom für einen Atmel geschrieben wurde.
Die benötigten Platinen kannst Du evt. noch im Download Bereich finden.

Es gibt hier in den Foren genügend Hilfe zum Thema Schrittmotoren

https://www.roboternetz.de/phpBB2/viewforum.php?f=2
https://www.roboternetz.de/schrittmotoren.html

Aegis
07.04.2005, 14:24
Hallo darwin.nuernberg,,
ich versuche den controller nachzubauen ,,, bin Anfänger
aber ich glaube mit diesen Controller komme ich klar.

Ich komme aber mit der bestückung nicht klar ,
kannst du veileicht eine Liste veröffenlichen...

Vielen Dank und einen netten Gruß
Aegis

darwin.nuernberg
06.05.2005, 20:17
Eine Liste für die Bestückung?
Bestückungsplan ist doch dabei!

29.08.2005, 03:17
Bin auch gerade mit dem Nachbau beschäftigt, jedoch ist mir nicht klar was für Daten der Quarz haben soll, 8Mhz. Was für einen Wert sollen die Folienkondensatoren C23 & C24 haben?

Danke ;)

Lorenz

29.08.2005, 03:22
B1 ist auch nicht klar
Ansonsten SUPER ARBEIT !