-         

Seite 1 von 3 123 LetzteLetzte
Ergebnis 1 bis 10 von 22

Thema: Wie Servo deaktivieren (freilauf) *Gelöst*

  1. #1
    Neuer Benutzer Öfters hier
    Registriert seit
    28.10.2007
    Alter
    49
    Beiträge
    25

    Wie Servo deaktivieren (freilauf) *Gelöst*

    Anzeige

    SMARTPHONES & TABLETS-bis zu 77% RABATT-Kostenlose Lieferung-Aktuell | Cool | Unentbehrlich
    Guten Tag liebe AVR leute, zuerst mal hallo ich bin AVRMagician alias Mario und neu hier. Bin nun seit einenm guten Monat am Lernen und liebe dieses Forum, dass mir bis jezt fast alle meine Fragen duch Suchen beantwortete. Einfach spitze! Ich bin voll angefressen. *SMILE*

    Nun zu meinem Problem, ich habe eine Bauchrednerpuppe die ich mit Servos steuere. Die Puppe soll wenn sie nicht spricht frei an den Servos beweglich sein, ich habe verschiedenes probiert, komme aber auf keine funktionierende Lösung. Das eifachste wäre es natürlich den steuerdraht duch ein Relais zu unterbrechen, das muss aber doch auch per Software möglich sein denke ich, aber verflixt wie?.

    Ich bin für jede Anregung und Hilfe dankbar. Die beiden Servos lauffen an PortB.2 + PortB.3

    Grüsse MARIO


    In Gebrauch:
    MEGA 32 16mhz, Steuerung der Servos mit Bascom Servo befehl.

  2. #2
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    08.07.2004
    Ort
    Südhessen
    Beiträge
    1.312
    Stell doch einfach die PWM aus, damit bekommt er kein Signal mehr und hält keine Position mehr.

  3. #3
    Super-Moderator Robotik Visionär Avatar von PicNick
    Registriert seit
    23.11.2004
    Ort
    Wien
    Beiträge
    6.836
    Wenn du den Timer0 deaktivierst, sollte Ruhe sein in der Hütte.

    STOP TIMER0

    Du mußt ihn dann halt wieder starten, wenn die Puppe wieder was zu reden hat.

    START TIMER0
    mfg robert
    Wer glaubt zu wissen, muß wissen, er glaubt.

  4. #4
    Neuer Benutzer Öfters hier
    Registriert seit
    28.10.2007
    Alter
    49
    Beiträge
    25
    Hallo, Danke Robert und Thewulf00 für eure Inputs.

    Das mit dem Stoppen klappt mit dem Befehl STOP TIMER0 prima, aber einschlten lässt er sich nicht mehr ... Grübel. Sollte eigendlich gehen, aber vielleicht geht das nicht weil ich den Servo(1) = xx Befehl in Bascom nutze.
    Hab diverse Variannten probiert, einmal Timer aus, keine Servoaktivität mehr bis zum Reset. Hmmm .... also doch die Relais version?

    Gruss Mario

  5. #5
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    06.02.2005
    Ort
    Hamburg
    Alter
    31
    Beiträge
    4.255
    Vielleicht nach der Pause nochmal Config Servo... ?

  6. #6
    Neuer Benutzer Öfters hier
    Registriert seit
    28.10.2007
    Alter
    49
    Beiträge
    25
    Schon probiert, Bascom ärgert sich dann über schon verwendete Variable "Variable alredy Dimensioned" ... Grübel ...

  7. #7
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    08.07.2004
    Ort
    Südhessen
    Beiträge
    1.312
    Ich denke, Bascom verliert die Zuordnung, bzw. der Atmel verliert sie dann. Es muss also nochmal eine PWM zugeordnet, sprich aktiviert und eingestellt werden. Probier doch einfach mal, die PWM auf einen niedrigen Wert zu setzen, bspw. 0. Oder mach Servo(0) oder so. Das wird aber nicht gehen, schätze ich.

  8. #8
    Neuer Benutzer Öfters hier
    Registriert seit
    28.10.2007
    Alter
    49
    Beiträge
    25
    Wenn ich servo(0) mache dann dreht der servo über den anschlag aber geht nicht aus. Wenn ich anstatt Start timer "Config Servos = 2 , Servo1 = Portb.2 , Servo2 = Portb.3 , Reload = 10" (Bacom motzt beim Kompilieren aber geht) lade, geht es auch nicht, ignoriert es einfach. Ich nehme an das wie Du sagst die Zuordnung vorloren geht und erst bei einem Neustart neu wieder zugeordnet werden kann.

    Gibt es noch eine Möglichkeit PWM auf null zu setzen? Ausser Stop Timer0

    Dann doch das gute alte Relais?, nein ich habs, ich nehme einen zweiten mega32, der kontrolliert dann das ein und ausschalten des steuerpfades *SCHIEFLACH*

    Mario

  9. #9
    Super-Moderator Robotik Visionär Avatar von PicNick
    Registriert seit
    23.11.2004
    Ort
    Wien
    Beiträge
    6.836
    Nun wart' mal.

    Folgendes macht Bascom, um die Servo-Kontrolle zu Starten:
    Code:
    Bascom definiert eine ISR-Routine und setzt den Timer auf (TIMER0) 
    	IN	r24,TCCR0
    	ORI	r24,0x01	'no prescale (/1)
    	OUT	TCCR0,r24
    
    	IN	r24,TIMSK
    	ORI	r24,0x01	'enable
    	OUT	TIMSK,r24
    
    	LDI	r24,0xB1	'preload = 177
    	OUT	TCNT0,r24
    (Der Rest ist nurmehr in der ISR-ROutinen)

    Die "177" sind, um 10µS Interrupts zu haben
    Jetzt müßt ich mal schauen, was Bascom genau bei "STOP TIMER0" eigentlich macht.

    Sei mal brutal und versuche
    TIMSK = TIMSK AND 254 ---->Für "STOP TIMER0"
    und
    TIMSK = TIMSK OR 1 ---->Für "START TIMER0"


    Weiters:
    Was tut denn der µC sonst noch ? THeoretisch ginge ja auch

    DISABLE INTERRUPTS (stop)

    ENABLE INTERRUPTS (start)
    mfg robert
    Wer glaubt zu wissen, muß wissen, er glaubt.

  10. #10
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    16.04.2005
    Ort
    Aarau
    Alter
    34
    Beiträge
    979
    was mir spontan dazu einfällt aber keine ahnung ob das funktioniert...
    könnte man nicht einfach den port an dem das servo hängt auf eingang schalten? und später wenn das servo wider laufen soll auf ausgang?

    gruss bluesmash

Seite 1 von 3 123 LetzteLetzte

Berechtigungen

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