- Akku Tests und Balkonkraftwerk Speicher         
Ergebnis 1 bis 10 von 15

Thema: Mehrere Servos parallel steuern ATMega8

Hybrid-Darstellung

Vorheriger Beitrag Vorheriger Beitrag   Nächster Beitrag Nächster Beitrag
  1. #1
    HI.

    Jeden neuen Controller setupe ich extra mit AVRStudio, weil ich damit die Lock-Bits setzen kann. Und da setze ich den Controller immer auf 8Mhz +64ms.

    Hm - um ehrlich zu sein, kann ich dir die Frage nach der For-Next-Schreife nicht beantworten. Allerdings kann ich nur so den Pulseout-Befehl ausgeben, denn nur dort ist die Variable "A (bzw. B)" verankert, welche ja die Anzahl an Wiederholungen wiederspiegelt. Und hier hört dann auch leider mein "Fachchinesisch" dazu auf, denn viel mehr habe ich über den Pulseout-Befehl leider nicht finden können.

    Ui - ich werde deine Variante des "Pulseout" ausprobieren. Zum Aufschlüsseln: Pulseout ist ja klar, dahinter der entsprechende Ausgangsport, an 3ter Stelle nehme ich an, wird die fallende Flanke getriggert, zuletzt dann die Variable, welche in der ISR aufgerufen wird. Nicht, dass nämlich die 3te Variable "0" für die direkte Portnummer steht ^^.

    E-V-A: Eingabe - Verarbeitung - Ausgabe ^^. Ich nenne mein Evaluationsboard so. Habe das STK500 . Ist für mich einfacher, jedoch kannst du natürlich nicht wissen, was ich damit meine. Entschuldige.

    Na klar - ändere das "Long" auf "Word".

    Nein. Das Zittern spiegelt keinen "Reset" des µC wieder. Mit den Variablen habe ich das Servo in einem Aktionsradius von exakt 180° zu Laufen. Es fährt die entsprechenden Stellungen ja an, z.B. 90° (ca. Wert 2900, 1250 = linker Anschlag, 4550 = rechter Anschlag) ja an und hält diese auch, nur dass das ausgangssignal anscheinend (z.B. bei Wert 2900 = Mittelstellung) nicht bei exakt 1,50 Milisekunden liegt, sondern in einem Bereich zwischen 1,3ms und 1,7ms liegt - und genauso verhält sich das Servo dann auch. Würde der Controller durch den Spannungseinbruch zurück gesetzt, würde das Servo ja wieder in die Ausgangsposition fahren, und die liegt bei 1ms - also linker Anschlag (Startwert bei 1250). Das kanns dann augenscheinlich nicht sein.
    Möglich wäre nur, dass das Servo selbst bei Belastung die Spannungs mit Einbruch-Spitzen überlagert und der Controller so Fehlsignale einfach weitergibt.

    Ich werde mal folgendes tun:
    Ich besorge mir für die Zukunft ein 2tes Netzteil und erstelle mit eine Spannungs-Unterstützung. Auf der wird dann ein 5V Festspannungsregler untergebracht, der die Spannung für Nebenaggregate aufrecht hält. Sofern ich die Masse dieses Boards dann mit der zentralen Masse des STK500 verbinde, sollte der Controller beim Ausprobieren auch das Servo stellen können - hoffe ich zumindest.


    Jörg - du hast recht. Ich probiere es nun erst einmal mit deinem Vorschlag. Erreiche ich damit nichts, poste ich das gesamte Programm. Versprochen.
    Will ja, dass du zufrieden bist und mir so auch etwas mehr helfen kannst.


    LG - Möhrchen

  2. #2
    Erfahrener Benutzer Roboter Genie Avatar von HeXPloreR
    Registriert seit
    08.07.2008
    Ort
    Bad Bramstedt
    Alter
    45
    Beiträge
    1.369
    Leider kombinierst Du anscheinend ein LED-Lauflicht mit Deiner Anwendung die ja eindeutig eine PWM-Ausgabe auf mindestens einen (oder vielleicht auch zwei) festen Ausgang hat. Wenn Du aber mit einem Zähler in der Schleife auch noch den Pulseout beschickst ... also kurz gesagt ich denke Du benutzt den Befehl leider einfach falsch.

    Welche Anzahl von Wiederholungen denn? Du drückst doch eine Taster, daraufhin verfährt der Servo auf einen festen Wert. Wiederholungen gibt es doch, abgesehen von der eigentlichen Hauptschleife garnicht, oder? Und auch wenn du Wiederholungen einbauen wollen würdest, ganz sicher nicht an dieser Stelle. Um eine Wartezeit von zb 15ms zu erzeugen würde ich vorerst einfach ein waitms15 vor die loop setzen. Der Nachteil dabei ist dein debounce-Befehl ... das ganze würde ich in eine Interrupt packen ohne debounce, deshalb Hardware entprellt und dort das drücken zählen lassen (- den Taster würde ich persönlich immer hardware entprellen - da ich mir grade nicht sicher bin ob debounce im Interrupt einfach funktionieren würde)

    Zusaätzlich könntest du den Tipp von hbquax nachmal ansehen... ...und dazu Deinen Code: wenn Du genau hinsiehst erkennst du vermutlich das Du zwei Variablen angelegt hast, die vermutlich letzten Endes das Gleiche enthalten. Auch das wäre unnötig, wenn beide Servo die gleichen Werte bekommen sollen, denn genau dazu sind Variablen eben auch gut

    Ein wenig Bascom für die Praxis - Halvar.at

    EVA - Guckst Du hier

    Viel Erfolg
    Jörg
    Geändert von HeXPloreR (02.10.2014 um 23:21 Uhr)

  3. #3
    Recht hast du. Wiederholungen gibts im Dem Sinne nicht. Ich sehe leider nicht die Software die hinter der Hardware steckt. Mit "Wiederholungen" meinte ich wohl das Verfahren der Servos, jedoch habe ich dabei nicht betrachtet, dass mit dem Tastsendruck das ausgegebene PWM-Signal sofort geändert wird und das Servo halt nur seine Zeit braucht, um den dazu gehörigen Wert anzufahren.

    Nein, kein Lauflicht, sondern eine PWM-Eingabe. Habe einen Sevotester, der ein PWM-Signal ausgibt. Damit füttere ich den Controller, und der soll das dann nur auswerten und einen Ausgang ab 1,8ms PWM-Input einschalten. Also genau das Gegenteil von dem, was ich mit den Servos vor habe.

    Werde heute oder morgen noch mal ein wenig Probieren - u.U. komme ich aber erst kommende Woche dazu. Dann poste ich auch das Programm.


    LG - Maik

  4. #4
    Erfahrener Benutzer Roboter Genie Avatar von HeXPloreR
    Registriert seit
    08.07.2008
    Ort
    Bad Bramstedt
    Alter
    45
    Beiträge
    1.369
    Zitat Zitat von stardust19322 Beitrag anzeigen
    Ich sehe leider nicht die Software die hinter der Hardware steckt.
    Wie meinst Du das? - Ich nehme mal an die schreibst die Software selbst - in Bascom, oder wovon reden wir jetzt? "Hardware entprellen" bedeutet das parallel zu dem Taster z.B. ein 10µF Keramikkondensator verbaut wird. Damit spart man sich den Debounce in der Software, was eben auch seine Vorteile haben kann.

    und das Servo halt nur seine Zeit braucht, um den dazu gehörigen Wert anzufahren..
    ...hört sich an als drückt man sehr ungeduldig auf dem Taster rum.

    .... und der soll das dann nur auswerten und einen Ausgang ab 1,8ms PWM-Input einschalten. Also genau das Gegenteil von dem, was ich mit den Servos vor habe.
    Nur weil es vielleicht das Gegenteil ist ändert es nicht die Tatsache das auch hier ein fester Eingang mit Pulsein benutzt werden kann. Und ab dem dazu fraglichen Wert ein IO eingeschaltet wird.

    Sollen diese beiden Anwendungen später irgendwas zusammen machen oder sich gegenseitig beeinflussen?

  5. #5
    Zitat Zitat von HeXPloreR Beitrag anzeigen
    Wie meinst Du das?
    Mit "Hardware hinter der Software" meinte ich Folgendes:

    Wenn ich den Taster drücke, ändert der Controller ja SOFORT das ausgegebene PWM-Signal von z.B. 1ms auf 2ms. Das Servo jedoch braucht seine Zeit, um von 1ms (linker Anschlag) auf 2ms (rechter Anschlag) zu fahren. Wenn ich also zwischen den ausgegebenen PWM-Signalen schnell hin und her switchte, habe ich wohl einen zu hohen Stromfluss für das kleine Board erzeugt, was den Controller u.U. dazu zwang, sein Programm anzuhalten oder er sogar ganz abgestürzt ist.

    Für die kommende Woche habe ich mir nun neue, deutlich kleinere Servos eingepackt. Die haben einen weitaus geringeren Strombedarf - bin gespannt, wie das Board diesmal reagiert. Auf dem Board sitzt ja ein Festspannungsregler, und der darf nicht zu warm werden, um korrekt zu funktionieren. Bin selbst gespannt ^^


    Ich habe mit dem Controller folgendes vor:

    Er soll in meinem Modellboot laufen. Dieses hier:

    Bild hier  
    DSCN0646 von tenner21 - Album.de

    An Deck sind 2 Doppelklappen zu sehen (die mit dem Messerfurnier), welche servoelektrisch angetrieben sind. Im Cockpit befinden sich dafür 2 Taster, welche diese Klappen dann per Tastendruck öffnen und schließen sollen.

    Weiterhin hat mein Boot eine elektrische Wasserpumpe sowie eine Beleuchtung in 2 Stufen verbaut, welche per Fernsteuerung geschaltet werden müssen.
    Demzufolge muss an 2 Pins ein PWM-Signal überwacht werden, 3 weitere Pins sind Schaltausgänge.
    Zusätzlich sind 2 Pins Tastereingänge und 2 Ausgänge müssen ein PWM-Signal für die Servos ausgeben.

    Ist das möglich oder reicht dafür mein Bascom-Wissen nicht aus bzw. kann Bascom das nicht?



    LG - Maik

Ähnliche Themen

  1. Mehrere RC Signale einlesen und mehrere Servos ausgeben
    Von R2D2 Bastler im Forum Basic-Programmierung (Bascom-Compiler)
    Antworten: 74
    Letzter Beitrag: 10.01.2022, 09:35
  2. Mehrere ATMEL parallel programmieren
    Von Realisator im Forum Basic-Programmierung (Bascom-Compiler)
    Antworten: 3
    Letzter Beitrag: 09.05.2009, 17:54
  3. mehrere Ausgänge parallel regeln?
    Von marius86 im Forum Microcontroller allgemeine Fragen/Andere Microcontroller
    Antworten: 5
    Letzter Beitrag: 20.07.2008, 22:23
  4. Mehrere RS232 Rx/Tx parallel?
    Von Jaecko im Forum Elektronik
    Antworten: 5
    Letzter Beitrag: 24.03.2007, 10:24
  5. [ERLEDIGT] Mehrere LED´s Parallel geschaltet
    Von Gast A.M. im Forum Sensoren / Sensorik
    Antworten: 25
    Letzter Beitrag: 05.06.2005, 12:37

Berechtigungen

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

12V Akku bauen