Anfängerprojekt Schrittmotor steuern
Hallo zusammen!
Nachdem ich einige neue Maschinen mein eigen nennen darf, darunter auch eine konventionelle Fräse von
Optimum (MH 28V) und ich etwas Zeit im Alltag zur Verfügung gestellt bekomme (von meiner Chefin :o), möchte ich gern ein "kleines?"
Projekt starten.
Ich möchte gerne an besagter Fräse eine Achse (X) mit einem Schrittmotor verfahren.
Es geht hier nur um einen Achsvorschub und nicht um eine CNC Steuerung.
(evtl. können auch mehrere Achsen vefahren werden aber ich will es ersteinmal nur mit einer testen)
Sollte es solch ein Thema schon gegeben haben dann bitte ich um entschuldigung und um versetzung an die richtige Stelle. Danke!
Mein größtes Problem ist wie immer die Programmierung... :(
Da ich mit Bascom aber schon ein paar Erfahrungen sammeln konnte (danke Searcher, danke Kampi :)) würde ich dieses Projekt auch gerne damit proggen.
Zur Hardware...
Es stehen zur Verfügung:
1. Schrittmotor: Nema23 Stepper Motor 23HS8430, 3.0A
2. Treiber: Nema23 Schrittmotor-Controller-Treiber 2M542 4.2A
3. Atmega 168 (RN- Mini Control)
4. Bascom (Demo)
5. Fräse natürlich... :)
Eine genauere Auflistung der Verwendeten Teile kommt am Ende des Projektes.
Zur Funktion:
Der Schrittmotor soll die Achse der Fräse antreiben.
Die Geschwindigkeit des Schrittmotors wird über ein Poti gesteuert.
Ein Taster läst beim schließen den Motor laufen, beim öffnen bleibt der Motor stehen (evtl. Bremsen)
Ein Schalter zum umschalten links / rechtslauf
Mehr erst einmal nicht.
Natürlich habe ich keine Ahnung wie ich mit dem Code anfangen soll - werde aber heute Abend etwas probieren
und euch den (schreckens-) Code :rolleyes: zeigen.
Vielen Dank für eure Unterstützung / Hilfe / Tipps / Infos!
Viele Grüße, :)
P@
Liste der Anhänge anzeigen (Anzahl: 3)
Danke für dein Infos,
da ich es aber alles erst einmal auf dem Tisch aufbauen möchte vernachlässige ich die End- und Referenzschalter fürs erste.
Auch damit ich und andere den Code - das Ansteuern des Schrittis mit Bascom verstehen und es nicht schon von Anfang an zu überladen wird.
Bin grade dabei mich wieder mit Bascom an zu freunden... Aber lange ist es her...
Hier das Material...
Anhang 32076Anhang 32077
- - - Aktualisiert - - -
So,
erst mal alles angeschlossen. Sollte klappen.
Anhang 32078
Hier mal ein Code den ich im Netz gefunden habe und ausprobieren wollte da kurz und "Übersichtlich". (Gibt´s aber noch ne Menge Fragezeichen :o)
Läuft leider nicht - war ja klar! :)
Code:
$regfile = "M168def.dat"
$crystal = 16000000
$hwstack = 100
$swstack = 100
$framesize = 100
$baud = 9600
'Programmkonfiguration
' r16 laden
!STS MCUCSR, R16 ' Zweimal wiederholen
!STS MCUCSR, R16
Config Portc = Output
Dim Anzahl_s As Long 'Schritte (zähler)
'Minus an GND oder frei lassen (läuft ohne.. )
Puls Alias Portc.0 'Pul
Richtung Alias Portc.1 'Dir
Freigabe Alias Portc.2
Freigabe = 0
'Ena (es gibt noch die Möglichkeit, die Leistung über PWM zu steuern)
'Programmkonfiguration
Do
'Schleife oder mit Timer
Puls = 1 'Signal erzeugen
Gosub Schritte 'Zählen
Waitus 400 'Impulsbreite
Puls = 0
Waitus 100 'Abstand zwischen Impulsen
Loop
Schritte:
If Anzahl_s > 400 Then
If Richtung = 1 Then
Gosub Links 'Richtung wechseln
Else
Gosub Rechts
End If
Waitms 1
End If
Anzahl_s = Anzahl_s + 1 'Schritte addieren
Return
Rechts: ' Rechts drehen
Richtung = 1 'Richtung auf 1 oder 0
Anzahl_s = 0 ' Schritte Reset
Waitms 100 'Haltepause/Bremszeit Motor braucht mindestens 5-30 ms
Return
Links: 'Links drehen
Richtung = 0 'Richtung auf 1 oder 0
Anzahl_s = 0 'Schritte/Bremszeit Reset
Waitms 100
Return
End
'Ende des Programms