-         

Ergebnis 1 bis 6 von 6

Thema: MD23 Motorcontroller Optischen Drehsensor anklemmen Wie??

  1. #1
    Neuer Benutzer Öfters hier
    Registriert seit
    09.02.2008
    Beiträge
    16

    MD23 Motorcontroller Optischen Drehsensor anklemmen Wie??

    Anzeige

    Am MD23 Motorcontroller Pin: Vcc, Ground (gemeinsam), Hall A Vin, Hall B Vin

    Am optischen Geber: Ground (gemeinsam), 5V+, 4 Inpulse pro Motorumdrehung (Impulse = 3,8V, ansonsten 0,6V)

    Ich habe MD23 drehzahlprogramm versucht - es zeigt keine Impulse
    Ich habe den Geber auch schon an 12V (Vcc) angeschlossen, Signal ist dann 8V,
    Muss ich beide Hall anschliessen oder habe ich das falsche Signal - - was kann ich versuchen

  2. #2
    Erfahrener Benutzer Robotik Einstein Avatar von 021aet04
    Registriert seit
    17.01.2005
    Ort
    Niklasdorf
    Alter
    29
    Beiträge
    4.544
    Was für ein optischer Geber? Wäre nicht schlecht wenn du schreibst Welchen Motor, welchen Geber und eventuell das Programm posten. Sonst kann man nicht helfen.

  3. #3
    Neuer Benutzer Öfters hier
    Registriert seit
    09.02.2008
    Beiträge
    16

    MD23 Motorcontroller Motor Drehgeber Programm

    Normal wird Md23 mit Motor EMG30 betrieben http://www.shop.robotikhardware.de/s...roducts_id=164

    Ich will Md23 mit diesen 12v Motor mit opt. Drehgeber (normal 5V)
    Bild ist angehängt

    Bascom Programm:

    '################################################# #############
    'md23drehzahl.bas
    '
    'Das Programm demonstriert wie das Motorboard MD23
    'über I2C von RN-Control angesteuert wird
    '
    'Die Tasten haben in dem Demo folgende Funktion:
    'Taste 1: Motor 1 stoppen
    'Taste 2: Motor 1 kleinere Geschwindigkeit
    'Taste 3: Motor 1 volle Geschwindigkeit Mode 0
    'Taste 4: Ausgabe der Impulsanzahl über RS232 (Drehgeber) und Umdrehungen
    'Taste 5: Zähler für Impulse auf 0 setzen
    '
    'Autor: Frank (roboternetz.de)
    'Verwendet wurden: RN-Control & MD23 (robotikhardware.de)
    'Weitere Beispiele sind im Roboternetz gerne willkommen!
    '################################################# #############

    $programmer = 12 'MCS USB (Zeile weglassen wenn anderer Programmer)





    ' -------------- RN-Control übliche _____________________
    Declare Function Tastenabfrage() As Byte

    $regfile = "m32def.dat"
    $framesize = 32
    $swstack = 32
    $hwstack = 64

    $crystal = 16000000 'Quarzfrequenz
    $baud = 9600
    Config Scl = Portc.0 'Ports fuer IIC-Bus
    Config Sda = Portc.1

    Config Adc = Single , Prescaler = Auto 'Für Tastenabfrage und Spannungsmessung
    Config Pina.7 = Input 'Für Tastenabfrage
    Porta.7 = 1 'Pullup Widerstand ein
    Dim Taste As Byte
    Dim Ton As Integer

    I2cinit
    Start Adc
    Sound Portd.7 , 400 , 450 'BEEP
    Sound Portd.7 , 400 , 250 'BEEP
    Sound Portd.7 , 400 , 450 'BEEP
    Print
    Print "**** RN-Control V1.4 *****"
    Print "Demoprogramm zum Motorboard MD23"
    Print "RN-Control als auch MD23 gibts bei robotikhardware.de"
    Print
    ' -------------- Ende RN-Control übliche _____________________



    Declare Sub Md23_writeregister(byval Register As Byte , Byval Wert As Byte)
    Declare Function Md23_impulse(byval Motor As Byte) As Long
    Const Md23_slaveid = &HB0
    Dim Umdrehungen As Long
    Dim Zaehler As Long



    Wait 1
    Md23_writeregister 16 , &H32 'Automatische Timout Abschaltung deaktivieren
    Md23_writeregister 15 , &H0 'Mode 0
    Print "Automatische Timout Abschaltung deaktiviert"



    Do
    Taste = Tastenabfrage()
    If Taste <> 0 Then

    Select Case Taste

    Case 1:
    Md23_writeregister 0 , 128


    Case 2
    Md23_writeregister 0 , 10
    Wait 3
    Md23_writeregister 0 , 255
    Case 3
    Md23_writeregister 0 , 255

    Case 4
    Zaehler = Md23_impulse
    Umdrehungen = Zaehler / 360
    Print "Impulse: " ; Zaehler ; " Umdrehungen: " ; Umdrehungen

    Case 5
    Md23_writeregister 16 , &H20 'Zähler auf 0 setzen




    End Select
    Sound Portd.7 , 400 , 500 'BEEP
    End If

    Waitms 100
    Loop

    End




    ' Diese Unterfunktion fragt die Tastatur am analogen Port ab
    ' Sollte beim betätigen einer Taste kein Quittungston kommen, dann
    ' muss die die Tastenabfrage (Select Case Anweisung in Funktion )
    ' an ihr Board angepaßt werden. Widerstandstoleranzen sorgen in
    ' Einzelfällen manchmal dafür das die Werte etwas anders ausfallen
    ' Am besten dann den WS wert mit Print für jede Taste ausgeben lassen

    Function Tastenabfrage() As Byte
    Local Ws As Word

    Tastenabfrage = 0
    Ton = 600
    Ws = Getadc(7)
    ' Print "ws= " ; Ws
    If Ws < 1010 Then
    Select Case Ws
    Case 400 To 455
    Tastenabfrage = 1
    Ton = 550
    Case 335 To 380
    Tastenabfrage = 2
    Ton = 500
    Case 250 To 305
    Tastenabfrage = 3
    Ton = 450
    Case 180 To 220
    Tastenabfrage = 4
    Ton = 400
    Case 100 To 130
    Tastenabfrage = 5
    Ton = 350
    End Select
    Sound Portd.7 , 400 , Ton 'BEEP
    End If

    End Function








    'Schreibt in Register ein Wert
    Sub Md23_writeregister(byval Register As Byte , Byval Wert As Byte)


    I2cstart
    I2cwbyte Md23_slaveid
    I2cwbyte Register 'Leseregister festlegen
    I2cwbyte Wert 'Leseregister festlegen
    I2cstop
    End Sub




    Function Md23_impulse(byval Motor As Byte) As Long
    Local W1 As Byte
    Local W2 As Byte
    Local W3 As Byte
    Local W4 As Byte
    Local Impulse As Long
    Local I2cread As Byte


    I2cread = Md23_slaveid + 1

    If Motor = 1 Then
    I2cstart
    I2cwbyte Md23_slaveid
    I2cwbyte 2 'Leseregister festlegen
    I2cstop
    Else
    I2cstart
    I2cwbyte Md23_slaveid
    I2cwbyte 6 'Leseregister festlegen
    I2cstop
    End If

    I2cstart
    I2cwbyte I2cread
    I2crbyte W1 , Ack
    I2crbyte W2 , Ack
    I2crbyte W3 , Ack
    I2crbyte W4 , Nack
    I2cstop

    Impulse = 0
    Impulse = Impulse Or W1
    Shift Impulse , Left , 8
    Impulse = Impulse Or W2
    Shift Impulse , Left , 8
    Impulse = Impulse Or W3
    Shift Impulse , Left , 8
    Impulse = Impulse Or W4


    Md23_impulse = Impulse
    End Function
    Miniaturansichten angehängter Grafiken Miniaturansichten angehängter Grafiken drehgeber_227.jpg  

  4. #4
    Erfahrener Benutzer Robotik Einstein Avatar von 021aet04
    Registriert seit
    17.01.2005
    Ort
    Niklasdorf
    Alter
    29
    Beiträge
    4.544
    Da das Programm vermutlich funktioniert (da es ein Demoprogramm ist) würde ich das Programm erneut auf den µC laden und danach messen.
    Wenn du ein Messgerät mit Frequenzmessung hast kannst du messen ob du das Drehzahlsignal eigentlich am µC hast. Wenn du keines hast miss einmal mit der Gleichspannungsfunktion am PL3 die Spannung im Stillstand zwischen Anschluss 5 (GND) und 2 bzw 3. Du solltest 5V haben. Danach miss die Spannung (oder Frequenz) auf den gleichen Messpunkten wenn der Motor dreht. Du solltest eine Frequenz messen können (oder eine Spannung von ca 2,5V messen.

  5. #5
    Neuer Benutzer Öfters hier
    Registriert seit
    09.02.2008
    Beiträge
    16
    das drehzahlsignal ist da - ich messe die Impulse bisher an RN-Control über int0 PortD das funktioniert.
    Ich muss wissen, wie ich den Drehgeber: Masse, +(5v oder 12v), Signal
    am Md23 anschliesse: Masse, 12V, Hall a, Hall b
    Ich Habe schon mit der Hand langsam gedreht, ich bekomme keine Reaktion der Md23 drehimpulse über die Testsoftware

  6. #6
    Erfahrener Benutzer Robotik Einstein Avatar von 021aet04
    Registriert seit
    17.01.2005
    Ort
    Niklasdorf
    Alter
    29
    Beiträge
    4.544
    Wie du den Motor am MD23 anschließt? Einfach anstecken. Da das Board und der Motor laut Robotikhardware zusammen passen musst du nur den Motor anschießen. Stimmt die Adresse? Sonst würde mir nichts einfallen.

Berechtigungen

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