-         

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

Thema: Programmfehler in Motoransteuerung?

  1. #1
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    04.09.2006
    Beiträge
    114

    Programmfehler in Motoransteuerung?

    Anzeige

    Hallo,

    ich möchte einen Motor mit dem IC l293 D ansteuern.

    Um den IC zu testen habe ich folgendes Programm geschrieben und auf einen atmega32 übertragen:

    Code:
    $regfile = "m32def.dat"
    $framesize = 32
    $swstack = 32
    $hwstack = 32
    $crystal = 1600000
    
    
    Config Portd.7 = Output
    Config Portd.6 = Output
    Config Portd.5 = Output
    Config Pina.0 = Input
    
    Porta.0 = 1
    
    
    Portd.7 = 1
    Portd.6 = 1
    Portd.5 = 0
    
    
    Do
    If Pina.0 = 0 Then
    Portd.6 = 1
    Portd.5 = 0
    
    Else
    Portd.6 = 0
    Portd.5 = 1
    
    End If
    
    Loop
    
    
    End
    Dabei ist Pina.7 ein angeschlossener Taster, Portd.7 die Enable-Leitung des ICs und Portd.6 und Pord.5 die Anschlüsse, die dafür zuständig sind, in welche Richtung sich der Motor drehen soll.
    Der Sinn von diesem Programm ist es also, dass sich die Drehrichtung auf Knopfdruck ändern soll.
    Aber leider tut der Motor nicht das was er tun soll! Woran kann das liegen? Ist ein Fehler in dem Programm?


    VielenDank für eure Antworten,
    Thomas

  2. #2
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    26.05.2007
    Beiträge
    594
    Also ich würde mal drauf tippen, dass er die Richtung nur kurz ändert, wenn du kurz drückst. Denn er rast ja ständig durch die Schleife und stellts sofort wieder um, wenn der Taster losgelassen wird.

    Ansonsten würde ich nen Fehler in der (Be-)Schaltung des IC vermuten.
    Mach doch einfach mal
    Do
    Toggle Portd.6
    Toggle Portd.5
    Wait 2
    Loop

    Dann müsste er ja automatisch umschalten - reicht ja für den Funktionstest...

  3. #3
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    04.09.2006
    Beiträge
    114
    Hallo,

    Aber selbst wenn ich den Taster gedrückt halte, ändert der Mototr nicht seine Richtung.
    Dann wird es wohl ein Fehler in der Beschaltung sein. mh. Wie finde ich das denn jetzt raus...

    Aber trotzdem danke,

    Thomas

  4. #4
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    16.02.2006
    Beiträge
    1.112
    Mach es do so, wie Stefan_Z es vorgeschlagen hat. Falls der IC oder die Motoren nicht funktionieren, geht es dann immer noch nicht. Ist dagegen dein Taster an PinA.0 nicht richtig angeschlossen ist (was ich vermute), wird es dann funktionieren.

    Gruß Rolf

  5. #5
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    15.01.2007
    Ort
    Göttingen
    Beiträge
    705
    Dabei ist Pina.7 ein angeschlossener Taster
    In Deinem Code fragst Du den Taster aber über Pina.0 ab. Ist das nur ein Schreibfehler?

    Und noch ´ne Idee: Verbindet Dein Taster den Eingangspin auch mit Masse (und nicht mit +5V)?

  6. #6
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    26.05.2007
    Beiträge
    594
    ...und noch eine Frage: Hast du nen Pullup/down dran?

  7. #7
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    29.12.2005
    Ort
    Nähe Mainz
    Alter
    26
    Beiträge
    3.467
    Laut Programm hängt der Taster am Pina.0, der Pull-Up Widerstand ist aktiviert.
    Ich würde mal kontrollieren, ob die den Taster jetzt an Pina.7 oder Pina.0 angeschlossen hast.
    Der Rest vom Programm stimmt.

    jon
    Nice to be back after two years
    www.roboterfreak.de

  8. #8
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    04.09.2006
    Beiträge
    114
    Hallo,

    danke für eure Antworten.
    Also ich habe die Idee von Stefan mit diesem Code umgesetzt.

    Code:
    Do
    Toggle Portd.6
    Toggle Portd.5
    Wait 2
    Loop
    Das hat leider auch nicht funktioniert. Ich habe den Motortreiber einmal ausgetauscht und nocheinmal die Verdrahtung überprüft. Es geht immer noch nicht!!

    Es ist doch richtig, dass die entsprechenden Pins der Motortreibers direkt an dem Motor ohne Zwischenschaltung angeschlossen werden, oder?

    Thomas

  9. #9
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    29.12.2005
    Ort
    Nähe Mainz
    Alter
    26
    Beiträge
    3.467
    Zitat Zitat von ThomasKopsch
    Es ist doch richtig, dass die entsprechenden Pins der Motortreibers direkt an dem Motor ohne Zwischenschaltung angeschlossen werden, oder?
    Japs. Ist richtig.

    Versuche mal den Portd.7 auf Null zu setzen. Also: "Portd.7=0"
    Vielleicht stimmt das ja nicht, weiß ich gerade nicht, und ich bin zu faul das nach zu lesen.

    jon
    Nice to be back after two years
    www.roboterfreak.de

  10. #10
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    04.09.2006
    Beiträge
    114
    Mh, das habe ich auch schon probiert:
    Auch ergebnislos....

    Thomas

Seite 1 von 2 12 LetzteLetzte

Berechtigungen

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