- MultiPlus Wechselrichter Insel und Nulleinspeisung Conrad         
Ergebnis 1 bis 10 von 32

Thema: Servo-Befehl stört 1wire Kommunikation

Hybrid-Darstellung

Vorheriger Beitrag Vorheriger Beitrag   Nächster Beitrag Nächster Beitrag
  1. #1
    Benutzer Stammmitglied
    Registriert seit
    03.09.2011
    Beiträge
    72
    Hallo,

    3000 wirft was aus und die von dir, for_ro, beschriebene Vorgehensweise habe ich umgesetzt.

    Allerdings stimmt was nicht mit meinen errechneten Werten!

    Ich setze den pulseout-Wert beim Start bspw. auf 2000. Dann erhöhe ich bzw. verringere ich diesen Wert.

    Ich konnte so herausfinden, dass ich von ca. 1300 bis 4700 gehen konnte - ab den jeweiligen Werten blockiert dann der Servo bzw. ist er am Anschlag.

    In meinem oben geposteten Code schaltet sich die Schaltung (Relais) unter 6,3 Volt anliegender Spannung ab (-> Gosub Lipo_saver_off). Nun konnte ich feststelllen, dass wenn ich Pulseout verwende, sich die Schaltung nach Reset abschaltet. Ich hatte erst eine zu hohe Stromaufnahme des Servos vermutet, aber da verändert sich nichts dran.

    Kann Pulseout meine ADC(3) Messung beeinflussen?

    Das ganze funktioniert jetzt nur, wenn ich mein "Gosub Lipo_saver_off" auskommentiere...

    Gruß
    Spelli

  2. #2
    Benutzer Stammmitglied
    Registriert seit
    03.09.2011
    Beiträge
    72
    Hallo,

    vielen Dank für die Antworten. Es funktioniert jetzt alles!

    Komisch nur, dass es diese "tausender" Werte sind?

    Noch eine weitere Frage:
    In der Timer Routine lasse ich jetzt 3 Zaehler hoch laufen, da ich die noch anderweitig verwende. Wann wirds mit vielen "Zählern" problematisch? Weil das werden dann ja irgendwann keine 20ms mehr sein...

  3. #3
    Erfahrener Benutzer Begeisterter Techniker
    Registriert seit
    10.03.2005
    Ort
    Schifferstadt
    Alter
    43
    Beiträge
    318
    Hi,

    ein analoges Servo hat normalerweise ja eine Refreshzeit von 20ms. Aber auch mit ner zeit von 10ms oder 30ms funktionieren die meisten Servos. Allerdings darf die Zeit nicht zu lange werden, da sonst die Stellkraft des Servos verringert wird.

    Gruß BlaueLED
    ...::: AVRFreak :::...

  4. #4
    Benutzer Stammmitglied
    Registriert seit
    03.09.2011
    Beiträge
    72
    Hallo,

    ich muss an dieser Stelle nochmal nachfragen:

    Also 20ms bei ca. 8 MHz war kein Problem mit dem 8Bit Timer.

    Nun Ist es aber so, dass ich die Schaltugn neu aufgebaut habe und diese mit 16 MHz läuft. Da komme ich jetzt aber nur auf 16ms.

    Rechne ich bzgl. Pulseout ein bisschen hin und her meine ich diese Werte verwenden zu müssen:

    PULSE OUT

    4 MHz = 1us
    16 MHZ = 4us

    links (1000us) mittig (1500us) rechts (2000us)

    1000 / 4 = [250] 1500 / 4 = [375] 2000 / 4 = [500]

    Ist aber leider nicht von Erfolg gekrönt... Die ganze Geschichte bei 32ms macht auch keinen Sinn... Da wird der Servo vermutl. auch nicht mehr die nötige Stellkraft haben...


    Dann habe ich den Timer mit 10ms getestet... Also einen Zähler hochgezählt. Bei 2x gezählten Zähler wollte ich dann pulsout verwenden...

    Ich verwende einen 5V Schaltregler (Servo hat eine Betriebsspannung von 7,4 V) der schaltet dann aber ab bzw. stimmt dann da etwas nicht...



    Gruß
    Christoph
    Geändert von spelli2001 (27.08.2012 um 23:48 Uhr)

  5. #5
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    01.10.2009
    Beiträge
    437
    Ein einzelnes Servo lässt sich allein über die Timer1-Hardware steuern, da stört dann auch gar nichts mehr die 1wire.
    Allerdings muss der OC1A oder ..B Pin verwendet werden.

  6. #6
    Benutzer Stammmitglied
    Registriert seit
    03.09.2011
    Beiträge
    72
    Hallo,

    Servo ist an OC1B. 16 MHz, Atmega8, Timer0 wird von 1wire genutzt, Timer1 für PWM an L293D für gehackten Servo als Getriebemotor und dann bleibt nur noch Timer2 über... Das klappte auch gut mit 8 MHz...

    Mit 16MHz habe ich Probleme...

  7. #7
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    01.10.2009
    Beiträge
    437
    Ohne Code kann man schwer was sagen, Dir ist aber klar, dass Du bei doppelter Quarzfrequenz die Werte für Pulseout auch verdoppeln musst ?

Ähnliche Themen

  1. SD21 servo programm befehl speicherung problem
    Von michel999 im Forum Schaltungen und Boards der Projektseite Mikrocontroller-Elektronik.de
    Antworten: 0
    Letzter Beitrag: 17.01.2011, 16:13
  2. Servo stört Microcontroller
    Von Krampfda im Forum Microcontroller allgemeine Fragen/Andere Microcontroller
    Antworten: 19
    Letzter Beitrag: 08.10.2009, 20:22
  3. servo-befehl in interrupt-routine funzt nicht
    Von Che Guevara im Forum Basic-Programmierung (Bascom-Compiler)
    Antworten: 1
    Letzter Beitrag: 28.02.2009, 18:49
  4. cmucam 2 frage zu befehl Servo Mask
    Von Projector im Forum Sensoren / Sensorik
    Antworten: 3
    Letzter Beitrag: 19.01.2007, 17:07
  5. Servo mit Bascom Befehl mach nur "scheiße"
    Von AVRboy im Forum Basic-Programmierung (Bascom-Compiler)
    Antworten: 14
    Letzter Beitrag: 22.10.2006, 22:58

Berechtigungen

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

Solar Speicher und Akkus Tests