- Akku Tests und Balkonkraftwerk Speicher         
Seite 2 von 2 ErsteErste 12
Ergebnis 11 bis 13 von 13

Thema: RN-Motor und Timer

  1. #11
    Administrator Robotik Visionär Avatar von Frank
    Registriert seit
    30.10.2003
    Beiträge
    5.116
    Blog-Einträge
    1
    Anzeige

    LiFePo4 Akku selber bauen - Video
    Du solltest als erstes den Motorstrom einmal programmieren.
    Danach einschalten und dann den Schrittbefehl.

    @PicNick:
    Nein nein, das sind schon 5 Byte. Es wird ja der I2CSEND Befehl genutzt und 5 Byte als Parameter angegeben. Es müssen nicht immer alle 5 Byte definiert werden.

  2. #12
    Neuer Benutzer Öfters hier
    Registriert seit
    25.02.2005
    Beiträge
    9
    Hallo,

    leider immer noch das selbe Bild. Der Motor dreht sich nicht. Kann es an irgendwelchen Jumpereinstellungen liegen?



    $regfile = "m32def.dat"
    $crystal = 16000000
    $baud = 9600

    Wait 3

    Config Scl = Portc.0
    Config Sda = Portc.1
    Dim I2cdaten(6) As Byte

    I2cinit

    I2cdaten(1) = 10
    I2cdaten(2) = 1
    I2cdaten(3) = 0
    I2cdaten(4) = 20
    I2csend &H56 , I2cdaten(1) , 5

    I2cdaten(1) = 10
    I2cdaten(2) = 10
    I2cdaten(3) = 0
    I2csend &H56 , I2cdaten(1) , 5

    I2cdaten(1) = 10
    I2cdaten(2) = 5
    I2cdaten(3) = 0
    I2cdaten(4) = 100
    I2csend &H56 , I2cdaten(1) , 5


    Do
    Loop
    End

  3. #13
    Administrator Robotik Visionär Avatar von Frank
    Registriert seit
    30.10.2003
    Beiträge
    5.116
    Blog-Einträge
    1
    Damit ich nicht weiter im Nebel stochere habe ich mir RN-Motor mal vorgeholt und schnell ein kleines Demo für dich geschrieben.

    Das Demo zeigt genau das was du willst. Alle 4 Sekunden werden hier 100 Schritte ausgeführt. Der Übersichtlichkeit wegen wird hier KEIN Timer benutzt. Du kannst das natürlich auch mit dem Timer machen. Wie du siehst ist der i2cstop Befehl noch notwendig.

    Gruß Frank


    Code:
    '###################################################
    'Kleines Demoprogramm mit
    'RN-Control und Ansteuerungsboard RN-MOTOR über I2C
    'Alle 4 Sekunden wird Motor 100 Schritte weiterbewegt
    '
    'Autor: Frank
    'Weitere Beispiele und Beschreibung der Hardware
    'in der Anleitung zu RN-Motor
    'Anleitung findet man unter http://www.Roboternetz.de im Download Bereich
    'oder www.robotikhardware.de
    'Weitere Beispiele sind im Roboternetz gerne willkommen!
    '##############################################################
    
    
    
    $regfile = "m32def.dat"
    $framesize = 32
    $swstack = 32
    $hwstack = 64
    
    'Befehle im Schrittmotorbetrieb
    'K ist eine Kennungsnummer die bei RN-Motor immer 10 ist, danach folgt Befehlscode und notwendige Parameter
    'Es müssen immer 5 Bytes übertragen werden, auch wenn weniger Parameter ausreichen
    
    'k 1 x y     Motor maximaler Strom x=0 Linker Motor  x=1 Rechte Motor x2= Beide Motoren Y = (Milliampere / 10)
    '            Beispiel : Y = 150 Bedeutet 1,5A Oder Y = 20 Bedeutet 200ma
    'k 2 y       Referenzspannung des Controllers (normal 2.5 und muss nicht geändert werden)
    '            Beispiel:  y=241 bedeutet 2,41 V
    'k 3 x       Motor stopp (Haltespannung bleibt ein) x=0 Linker Motor  x=1 Rechte Motor  x2= Beide Motoren Stopp
    'k 4 x y     Motor Drehrichtung x=0 Linker Motor  x=1 Rechte Motor x2= Beide Motoren y=0=Links rum  y=1 rechts rum
    'k 5 x yl yh Motor genau y Schritte bewegen x=0 Linker Motor  x=1 Rechte Motor  x2= Beide Motoren
                    'y wird in High und Low Byte übertragen
    'k 6 x       Motor endlose Schritte bewegen bis Stop Befehl kommt x=0 Linker Motor  x=1 Rechte Motor  x2= Beide Motoren
    
    'k 7 x       Motor einen einzigen Schritt bewegen x=0 Linker Motor  x=1 Rechte Motor  x2= Beide Motoren
    'k 8 x y     Motor Schrittgeschwindigkeit x=0 Linker Motor  x=1 Rechte Motor x2= Beide Motoren Y = 1 bis 255
    'k 9 x       Motor ganz ausschalten  x=0 Linker Motor  x=1 Rechte Motor  x2= Alle Motoren Stopp
    
    'k 10 x      Motor ein und init  x=0 Linker Motor  x=1 Rechte Motor
    
    'k 11        Konfiguration und Testwerte werden über RS232 ausgegeben
    
    'k 12        Sleep Mode
    
    'k 13 x      Motor selektieren
    
    'k 14 x      x=0 Vollschrittmodus  x=1 Halbschrittmodus
    'k 15 99 99 x  Slave ID zwischen Hex 50 und Hex 70 ändern (erst ab RN-Motor Firmware 1.1 möglich)
    
    
    Const Befehl_maxstrom = 1
    Const Befehl_referenzspannung = 2
    Const Befehl_stop = 3
    Const Befehl_drehrichtung = 4
    Const Befehl_schrittanzahl_drehen = 5
    Const Befehl_endlos_drehen = 6
    Const Befehl_einzigen_schritt = 7
    Const Befehl_geschwindigkeit = 8
    Const Befehl_ausschalten = 9
    Const Befehl_einschalten = 10
    Const Befehl_konfiguration_zeigen = 11
    Const Befehl_sleep_modus = 12
    Const Befehl_motor_selektieren = 13
    Const Befehl_schrittmotormodus = 14
    
    Const Motor_links = 0
     Const Motor_rechts = 1
    
    Const I2crnmotorslaveadr = &H56                             'I2C SlaveAdresse von RN-Motor Erweiterung
    Const I2crnmotorsreadlaveadr = &H57                         'I2C SlaveAdresse von RN-Motor Erweiterung
    'Achtung, wenn das Motor-Board überhaupt nicht reagiert, dann könnte dieses eine andere Slave
    'Adresse besitzen. Im Zweifel schließen Sie das Motorboard an die RS232 vom PC an und
    'drücken Sie die RESET-Taste am Motorboard.Dann kann die Slave ID über ein
    'Terminalprogramm angezeigt werden
    
    Dim I2cdaten(6) As Byte                                     'Array um Befehlsfolge auszunehmen
    
    
    $crystal = 16000000                                         'Quarzfrequenz
    $baud = 9600
    
    Config Scl = Portc.0                                        'Ports fuer IIC-Bus
    Config Sda = Portc.1
    
    
    Wait 3                                                      'Kurz warten damit RN-Motor sich initialisieren kann
    
      I2cinit
    
      'Motorstrom auf 200mA begrenzen
       I2cdaten(1) = 10                                         'Kennung muss bei RN-Motor immer 10 sein
       I2cdaten(2) = Befehl_maxstrom                            'Befehlscode
       I2cdaten(3) = Motor_links                                '1 Parameter
       I2cdaten(4) = 200 / 10                                   '2 Parameter (hier Milliampere /10 in diesem Fall wird 200mA eingestellt)
       I2csend I2crnmotorslaveadr , I2cdaten(1) , 5             'Befehl wird gesendet (es müssen immer 5 Bytes gesendet werden, auch wenn weniger Parameter notwendig sind)
       I2cstop
    
    
      'Motor einschalten
      I2cdaten(1) = 10                                          'Kennung muss bei RN-Motor immer 10 sein
      I2cdaten(2) = Befehl_einschalten                          'Befehlscode
      I2cdaten(3) = Motor_links                                 '1 Parameter
      I2csend I2crnmotorslaveadr , I2cdaten(1) , 5              'Befehl wird gesendet (es müssen immer 5 Bytes gesendet werden, auch wenn weniger Parameter notwendig sind)
      I2cstop
    
    
                'Alle 4 Sekunden 100 Schritte
    Do
      I2cdaten(1) = 10                                          'Kennung muss bei RN-Motor immer 10 sein
      I2cdaten(2) = Befehl_schrittanzahl_drehen                 'Befehlscode
      I2cdaten(3) = Motor_links                                 '1 Parameter
      I2cdaten(4) = 100
      I2csend I2crnmotorslaveadr , I2cdaten(1) , 5              'Befehl wird gesendet (es müssen immer 5 Bytes gesendet werden, auch wenn weniger Parameter notwendig sind)
    
      Wait 4
    Loop
    
    End

Seite 2 von 2 ErsteErste 12

Berechtigungen

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

Labornetzteil AliExpress