-         

Ergebnis 1 bis 4 von 4

Thema: Schrittmotoransteuerung über IC und Arduino uno in Bascom (ein bisschen Dringen)

  1. #1
    Neuer Benutzer Öfters hier
    Registriert seit
    29.01.2013
    Beiträge
    22

    Schrittmotoransteuerung über IC und Arduino uno in Bascom (ein bisschen Dringen)

    Anzeige

    Hey leute hoffe ihr könnt mir helfen.
    Ich muss für ein Projekt in der Schule eine Motordrehzahlregelung basteln wir haben dazu diese Teile zur Verfügung gestellt bekommen:
    - Arduino Uno mit Atmega 328P
    - Step Motor 28byj-4
    - das Dazugehörige IC Board mit einem ULN2003 http://www.amazon.de/28BYJ-48-28BYJ4.../dp/B00ATA5MFE

    Angeschlossen habe ich das IC board an die Pinb 0-3 des Atmega
    Jetzt ist mein Porblem das Mein code nicht funzt und das unser lehrer uns ziehmlich alleine lässt mit unseren Problemen. Das Problem dabei ist außerdem, dass ich nur Beispiele in c oder dieser komischen Arduino Sprache finde, da ich aber in der Schule mit Bassic arbeiten muss habe ich mich mit den anderen nie beschäftigt und gelernt

    Das Programm an sich ist ziehmlich simpel. Es werden einfach die vier Phasen hoch und runter gespielt und der Waitms befehl mit der Varriablen x diehnt später zur regelung.
    Code:
    $regfile "m328pdef.dat"
    $crystal = 16000000
    
    'Schrittmotorpins
    Config Pinb.0 = Output                                      'Motorpin1
    Config Pinb.1 = Output                                      'Motorpin2
    Config Pinb.2 = Output                                      'Motorpin3
    Config Pinb.3 = Output                                      'Motorpin4
    
    Dim X As Word                                               'X soll zur Geschwindigkeitsregelung dienen
    
    X = 100
    
    
    Do
    
       'Phase 1
       Pinb.0 = 1
       Pinb.1 = 0
       Pinb.2 = 0
       Pinb.3 = 0
       Waitms X
       'Phase 2
       Pinb.0 = 1
       Pinb.1 = 1
       Pinb.2 = 0
       Pinb.3 = 0
       Waitms X
       'Phase 3
       Pinb.0 = 0
       Pinb.1 = 1
       Pinb.2 = 0
       Pinb.3 = 0
       Waitms X
       'Phase 4
       Pinb.0 = 0
       Pinb.1 = 1
       Pinb.2 = 1
       Pinb.3 = 0
       Waitms X
       'Phase 5
       Pinb.0 = 0
       Pinb.1 = 0
       Pinb.2 = 1
       Pinb.3 = 0
       Waitms X
       'Phase 6
       Pinb.0 = 0
       Pinb.1 = 0
       Pinb.2 = 1
       Pinb.3 = 1
       Waitms X
       'Phase 7
       Pinb.0 = 0
       Pinb.1 = 0
       Pinb.2 = 0
       Pinb.3 = 1
       Waitms X
       'Phase 8
       Pinb.0 = 1
       Pinb.1 = 0
       Pinb.2 = 0
       Pinb.3 = 1
       Waitms X
    '############################################################################
       'Phase 1
       Pinb.3 = 1
       Pinb.2 = 0
       Pinb.1 = 0
       Pinb.0 = 0
       Waitms X
       'Phase 2
       Pinb.3 = 1
       Pinb.2 = 1
       Pinb.1 = 0
       Pinb.0 = 0
       Waitms X
       'Phase 3
       Pinb.3 = 0
       Pinb.2 = 1
       Pinb.1 = 0
       Pinb.0 = 0
       Waitms X
       'Phase 4
       Pinb.3 = 0
       Pinb.2 = 1
       Pinb.1 = 1
       Pinb.0 = 0
       Waitms X
       'Phase 5
       Pinb.3 = 0
       Pinb.2 = 0
       Pinb.1 = 1
       Pinb.0 = 0
       Waitms X
       'Phase 6
       Pinb.3 = 0
       Pinb.2 = 0
       Pinb.1 = 1
       Pinb.0 = 1
       Waitms X
       'Phase 7
       Pinb.3 = 0
       Pinb.2 = 0
       Pinb.1 = 0
       Pinb.0 = 1
       Waitms X
       'Phase 8
       Pinb.3 = 1
       Pinb.2 = 0
       Pinb.1 = 0
       Pinb.0 = 1
       Waitms X
    
    Loop
    
    End                                                         'end program
    Ich bedanke mich schonmal im Vorraus!!!!
    Lg Balu18

  2. #2
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    26.11.2004
    Beiträge
    451
    Hab mal kurz gegoogelt, da ich Bascom schon länger nicht mehr verwendet habe. Aber es scheint so, dass du dein Pinb.x gegen Portb.x austauschen musst.

    Macht auch sin, da beim ATMEGA die Input-Register Pin genannt werden, Output heißt Port.

    Da ich wie gesagt länger nicht mit gearbeitet hab, alle angaben ohne Gewähr

  3. #3
    Neuer Benutzer Öfters hier
    Registriert seit
    29.01.2013
    Beiträge
    22
    Super sonen einf<chen ersten fehler hab ich glatt übersehen
    aber jetzt funzt das immer noch nicht da der letzte ausgang PINB.3 auf dem board nur kurz bzw ein ganz schwaches signal bekommt, der led zu folge :/.
    aber das Grundprinziep der Schrittmotoren ist doch, dass mann eine position nach der anderen durchschaltet ??

  4. #4
    Erfahrener Benutzer Robotik Einstein Avatar von Geistesblitz
    Registriert seit
    16.03.2011
    Ort
    Dresden
    Alter
    30
    Beiträge
    1.937
    Oha, mit Phasen einzeln ansteuern, das ist ja eklig...ein Glück, das nehmen einem die Schrittmotorcontroller normalerweise ab. Wie ist denn eigentlich der Schrittmotor an den AVR angeschlossen? Über Tranistoren oder H-Brücken?
    Am Einfachsten wäre es wohl, am Anfang einfach nur Config Portb=Output anzugeben, da kannst nix falsch machen.
    Hast zwar Spaghetticode vom Feinsten, aber an sich sollte es eigentlich funktionieren (jedenfalls, wenn du immer schön Portb schreibst). Du kannst das auch ein wenig abkürzen, indem du das in einen Befehl packst:
    Code:
    Portb=&B0001100
    würde beispielsweise Portb.2 und Portb.3 auf High schalten, den Rest von Portb auf Low.

    Warum steht die Schrittsequenz eigentlich doppelt da? Wird doch eh wiederholt...
    Ich seh gerade, dass da die Pins vertauscht wurden. Der Motor macht also immer 4 Schritte vor und wieder 4 Schritte zurück...

    Ansonsten les dich mal ein wenig hier ein, da gibts viele gute Tipps zu Bascom (guck ich auch oft nochmal rein):
    http://halvar.at/elektronik/kleiner_bascom_avr_kurs/

Ähnliche Themen

  1. Arduino UNO und CANdiy-Shield
    Von Micro5 im Forum Arduino -Plattform
    Antworten: 0
    Letzter Beitrag: 24.08.2013, 20:04
  2. Arduino UNO, MEGA und Bascom
    Von Ripper121 im Forum Arduino -Plattform
    Antworten: 1
    Letzter Beitrag: 27.03.2013, 17:57
  3. Arduino Uno mit BASCOM
    Von uddo im Forum Arduino -Plattform
    Antworten: 0
    Letzter Beitrag: 14.02.2012, 20:22
  4. Hi bin Anfänger(13) und bräuchte ein bisschen Nachhilfe....?
    Von alex1313 im Forum Konstruktion/CAD/Sketchup und Platinenlayout Eagle & Fritzing u.a.
    Antworten: 8
    Letzter Beitrag: 09.01.2009, 22:49
  5. Antworten: 11
    Letzter Beitrag: 18.05.2006, 12:40

Berechtigungen

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