-         

Seite 1 von 2 12 LetzteLetzte
Ergebnis 1 bis 10 von 14

Thema: schrittmotor mit atmega ansteuern

  1. #1
    Benutzer Stammmitglied
    Registriert seit
    31.03.2010
    Beiträge
    33

    schrittmotor mit atmega ansteuern

    Anzeige

    hallo,
    ich habe 2 Platinen gebastelt, eine mit atmega88 und die andere mit L297/L298 und möchte einen Schrittmotor zu laufen bringen, aber ich weiss nicht wo ic anfangen soll:
    ich habe CW/CCW mit 5 V angeschloßen und für enable habe ich 1 gegeben, und ich habe den Takt mit Ppin1(OC1A) angeschloßen, und das habe ich mit pwm timer progrmmiert.
    aber das hat nicht funktionniert...

  2. #2
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    13.05.2007
    Alter
    26
    Beiträge
    183
    Hmm, vllt. ein paar mehr Informationen? Dann könnte man mehr sagen.

    Unter Umständen ist der Takt zu schnell?! Also mal manuell einen Takt geben.
    Was passiert denn überhaupt? Wenn du den Motor nicht bewegst (also keinen Takt anlegst), dann sollte er dennoch "fest" sein, sprich: Du musst merken, dass da Saft auf den Spulen ist und es schwerer ist, den Motor von Hand zu drehen. Wenn das nicht geht, dass liegt dein Fehler schon irgendwo im Aufbau deiner Schaltung.

    Wie gesagt, ein paar Infos wären hilfreich, sonst kann man nur raten. Bilder?! Quellcode?! Welcher uC/Motor?

    Bääääär

  3. #3
    Benutzer Stammmitglied
    Registriert seit
    31.03.2010
    Beiträge
    33
    Wie gesagt, ein paar Infos wären hilfreich, sonst kann man nur raten. Bilder?! Quellcode?! Welcher uC/Motor?

    guten Morgen,
    ich habe einen Schrittmotor von Nanotec:
    Type 4H4018L0502, 2,9V und 1,7A, und habe ihn mit L297/L298 angeschloßen, und wöllt ihn mit atmega88 ansteueren, jetzt bekomme ich einen Kurzschluß wenn ich den Motor mit L298 anschließe.

    MFG sahra

  4. #4
    Benutzer Stammmitglied
    Registriert seit
    22.03.2010
    Ort
    Berlin
    Beiträge
    38
    Hallo,

    hast du ein Ohmmeter zur Hand, dann versuche mal die Wicklungen durch zu messen. Leider finde ich bei Nanotec kein Datenblatt zu deinen Motor, wie viele Drähte kommen den aus dem Motor?
    Woran erkennst du das du einen Kurzschluss hast, wird etwas warm oder geht eine Sicherung kaputt?
    Ich habe hier ein Testprogramm für den ATMega8, ist zwar recht unschön Programmiert, läuft aber für einen Test.

    Schöne Grüße
    Thomas

  5. #5
    Benutzer Stammmitglied
    Registriert seit
    31.03.2010
    Beiträge
    33
    [quote="ThomasD"]Hallo,

    hast du ein Ohmmeter zur Hand, dann versuche mal die Wicklungen durch zu messen.
    wie viele Drähte kommen den aus dem Motor?
    4, also Bipolar
    Woran erkennst du das du einen Kurzschluss hast, wird etwas warm oder geht eine Sicherung kaputt?
    mein Netz Gerät verliert die Spg, der geht von 36V auf 0V und bipt es.

  6. #6
    Benutzer Stammmitglied
    Registriert seit
    22.03.2010
    Ort
    Berlin
    Beiträge
    38
    Hallo,

    durch falsches anschließen des Motors kann man eigentlich keinen Kurzschluss verursachen, der Fehler muss also wo anders liegen, mit wenige Spannung hast du es sicher schon mal probiert.
    Ich habe bei meiner Steuerung an die Pins wo der Motor angeschlossen wird noch 4 LED's angebaut damit ich kontrollieren kann ob die Schritte richtig ausgegeben werden.

    Schöne Grüße
    Thomas

  7. #7
    Benutzer Stammmitglied
    Registriert seit
    31.03.2010
    Beiträge
    33
    ich habe jetzt keinen Kurzschluß, sondern nur schrikliches Bip, der Motor bipt sehr laut.
    Ich habe hier ein Testprogramm für den ATMega8, ist zwar recht unschön Programmiert, läuft aber für einen Test.
    kannst du mir das Testprogramm schicken.
    danke
    MFG
    Sahra

  8. #8
    Benutzer Stammmitglied
    Registriert seit
    31.03.2010
    Beiträge
    33
    Zitat Zitat von sahra
    ich habe jetzt keinen Kurzschluß, sondern nur schrikliches Bip, der Motor bipt sehr laut.
    Ich habe hier ein Testprogramm für den ATMega8, ist zwar recht unschön Programmiert, läuft aber für einen Test.
    kannst du mir das Testprogramm schicken.
    danke
    MFG
    Sahra
    sorry nicht das Motor,der bipt sondern mein Netz Gerät

  9. #9
    Benutzer Stammmitglied
    Registriert seit
    22.03.2010
    Ort
    Berlin
    Beiträge
    38
    Hallo
    hier mal der Code.

    Code:
    .include "m8def.inc"
    ; Motor dreht abwechselnt vorwärts und rückwärts
    ; Anschlüße Port B
    ; PB0	Takt
    ; PB1	Drehrichtung
    ; PB2	Enable
    ; PB3	H/F
    ; Alle Anderen nicht belegt.
     
    .def temp0  = r16
    .def temp1  = r17
    .def temp2  = r18
    .def temp3  = r19
    .def temp4  = r20
    .def temp5  = r21
    
    .org 0x0000
    
    rjmp    start                  ; Reset Handler
    
    start:
    		ldi		temp0, 0xFF	
    		ldi		temp1, 0x00	
    		ldi		temp2, 0x00
    		ldi		temp3, 0x00
    		ldi		temp4, 0x00	
    		ldi		temp5, 0x00	
    		out     DDRB, temp0
    		ldi		temp0, 0xFE
    		out     PORTB, temp0
    		; cbi   	PortB, 3   ; Halb oder Voll Schritt
    
    
    output: 
    		sbic  PortB, 0    ; Überspringe den nächsten Befehl, wenn das Bit 0 im Port gelöscht ist
            rjmp  ClrBitNow   ; Springe zu ClrBitNow   
            sbi   PortB, 0    ; Setze Bit 0 in PortB
            rjmp  Delay    ; Springe BitReady
    ClrBitNow:
    		cbi    PortB, 0
    Delay:
    		inc     temp1
    		cpi     temp1, 250	; Drehgeschwindigkeit; größerer wert gleich langsamer
    		brne    Delay
    		clr     temp1
    		inc     temp2
    		cpi     temp2, 6	; Drehgeschwindigkeit; größerer wert gleich langsamer
    		brne    Delay
    		clr     temp2
    		inc     temp5
    		cpi     temp5, 1	; Drehgeschwindigkeit; größerer wert gleich langsamer
    		brne    Delay
    		clr     temp5
    		inc     temp3
    		cpi     temp3, 200	; Fahrweg wie lang der motor Drehen soll.
    		brne    output
    		clr     temp3
    		inc     temp4
    		cpi     temp4, 1	; Fahrweg wie lang der motor Drehen soll.
    		brne    output
    		clr     temp4
    		sbic	PORTB, 1
    		rjmp  ClrBitNow2   ; Springe zu ClrBitNow   
            sbi   PortB, 1    ; Setze Bit 0 in PortB
            rjmp  output    ; Springe BitReady
    ClrBitNow2:
    		cbi    PortB, 1	
    		rjmp    output
    Schöne Grüße
    Thomas

  10. #10
    Benutzer Stammmitglied
    Registriert seit
    31.03.2010
    Beiträge
    33
    [quote="ThomasD"]Hallo
    hier mal der Code.

    Code:
    .include "m8def.inc"
    ; Motor dreht abwechselnt vorwärts und rückwärts
    ; Anschlüße Port B
    ; PB0	Takt
    ; PB1	Drehrichtung
    ; PB2	Enable
    ; PB3	H/F
    ; Alle Anderen nicht belegt.
     
    .def temp0  = r16
    .def temp1  = r17
    .def temp2  = r18
    .def temp3  = r19
    .def temp4  = r20
    .def temp5  = r21
    
    .org 0x0000
    
    rjmp    start                  ; Reset Handler
    
    start:
    		ldi		temp0, 0xFF	
    		ldi		temp1, 0x00	
    		ldi		temp2, 0x00
    		ldi		temp3, 0x00
    		ldi		temp4, 0x00	
    		ldi		temp5, 0x00	
    		out     DDRB, temp0
    		ldi		temp0, 0xFE
    		out     PORTB, temp0
    		; cbi   	PortB, 3   ; Halb oder Voll Schritt
    
    
    output: 
    		sbic  PortB, 0    ; Überspringe den nächsten Befehl, wenn das Bit 0 im Port gelöscht ist
            rjmp  ClrBitNow   ; Springe zu ClrBitNow   
            sbi   PortB, 0    ; Setze Bit 0 in PortB
            rjmp  Delay    ; Springe BitReady
    ClrBitNow:
    		cbi    PortB, 0
    Delay:
    		inc     temp1
    		cpi     temp1, 250	; Drehgeschwindigkeit; größerer wert gleich langsamer
    		brne    Delay
    		clr     temp1
    		inc     temp2
    		cpi     temp2, 6	; Drehgeschwindigkeit; größerer wert gleich langsamer
    		brne    Delay
    		clr     temp2
    		inc     temp5
    		cpi     temp5, 1	; Drehgeschwindigkeit; größerer wert gleich langsamer
    		brne    Delay
    		clr     temp5
    		inc     temp3
    		cpi     temp3, 200	; Fahrweg wie lang der motor Drehen soll.
    		brne    output
    		clr     temp3
    		inc     temp4
    		cpi     temp4, 1	; Fahrweg wie lang der motor Drehen soll.
    		brne    output
    		clr     temp4
    		sbic	PORTB, 1
    		rjmp  ClrBitNow2   ; Springe zu ClrBitNow   
            sbi   PortB, 1    ; Setze Bit 0 in PortB
            rjmp  output    ; Springe BitReady
    ClrBitNow2:
    		cbi    PortB, 1	
    		rjmp    output

    danke, ich werde das testen

Seite 1 von 2 12 LetzteLetzte

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •