2-Kanal Servotester mit LCD und Drehencoder, abgeschlossenes Projekt

    Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

    Aufgrund technischer Veränderungen ist der Mailverkehr innerhalb des Forums (Private Nachrichten) nur noch eingeschränkt möglich. Die Einschränkung ist notwendig, um zusätzliche Betriebskosten für das Forum zu vermeiden. Näheres zu den Hintergründen im Thread "Aktuelles zum Forum".Wir bitten um Verständnis.

    Hinweis kann nach Kenntnisnahme deaktiviert werden!

    • 2-Kanal Servotester mit LCD und Drehencoder, abgeschlossenes Projekt

      Ich habe im "alten" und "ganz alten" Forum zwar nicht allzuviel eingestellt aber da hol ich jetzt Stück für Stück rüber.

      Für dieses Thema ein herzliches Dankeschön an ftelektro, er hat in meinen ursprünglichen Code die LCD-Routine optimiert.

      Fleisch folgt sogleich, ich übernehme den Eintrag aus dem "ganz alten" Forum unverändert
    • Hallo Gemeinde,


      Hab da nochmal ein Projekt das (für mich bis auf weiteres) abgeschlossen ist.


      Eigentlich kann man ähnliches in abgespeckter Bauart für kleines Geld beim China-Händler des Vertrauens kaufen.
      Wenn da nicht der Eigensinn wäre und das Glitzern in den Augen beim Anblick eines AVR.



      Also, mein Modellbauerherz begehrt:
      ===================================
      1) Einen 2-Kanal-Servotester mit 2 unabhängigen Signalausgängen
      2) LCD-Display mit
      - Anzeige der Impulsbreite zum Servo von 900usec bis 2100uS
      - Anzeige der Auslenkung in%
      3) Servoreverse
      4) Einstellung mit Inkrementalgeber
      5) Schnell-Positionierung
      6) Mehrstufige Einstellung der Servo-Auflösung
      - wenige Geber-Rastungen --> großer Servoweg
      - viele Geber-Rastungen --> kleiner Servoweg
      7) Verzicht auf EIN-AUS-Schalter, also AutoPower OFF und irgendwie EIN
      8) Speicherung der letzten Einstellungen
      9) Bereitstellen der Servo-Versorgung aus dem Tester
      10) Betrieb mit einer LiIo-Zelle
      11) Das ganze in einer hübschen Schachtel zum herumtragen.



      Die Bastelkiste gibt her, man ist ja sparsam:
      =============================================
      a) einen 4313
      b) ein kleines 5V-Koppel-Relais
      c) zwei ALPS-Encoder vom Chinamann, 5 Stück um 3,99 incl. Fracht. Unglaublich.
      d) ein 16*2 Display
      e) Kleingemüse
      f) ein 18650er LiIo-Akku vom toten Akkuschrauber
      g) eine hübsche Schachtel.


      Ist doch schon mal was



      Ansatz:
      =======
      zu 1+2, Aufbau)
      - Attiny 4313
      - übernimmt die Servoansteuerung
      - dekodiert die ALPS-Encoder
      - steuert das LCD
      zu 3 Servoreverse)
      - Druck > 2 Sekunden auf den jeweiligen Encoder-Knopf toggelt die Laufrichtung
      - Anzeige im LCD
      - "R" für Reverse
      - "N" für Normal
      zu 4 Drehencoder)
      - Nun, ist ja ganz einfach, dafür hat BASCOM den ENCODER-Befehl
      - Ätsch. Tut nicht wirklich. Der BASCOM-Befehl hat Tücken.
      zu 5 Schnell-Positionierung)
      - Kurzer Druck auf den jeweiligen Encoder-Knopf stellt das Servo
      - Links --> Mitte --> Rechts --> Mitte ---> Links

      zu 6 Auflösung)
      - Druck > 2 Sekunden auf BEIDE Encoder-Knöpfe verändert die Auflösung der Geber zum Servo
      - Auflösung 15usec / 80 Schritte von Links auf Rechts
      - Auflösung 20usec / 60 Schritte von Links auf Rechts
      - Auflösung 40usec / 40 Schritte von Links auf Rechts
      - Auflösung 50usec / 24 Schritte von Links auf Rechts
      - Auflösung 100usec / 12 Schritte von Links auf Rechts
      - Druck auf einen Encoder-Knopf, gedrückt halten, dann den anderen Encoder-Knopf zeigt die akt. Auflösung ohne diese zu ändern


      zu 7+8 ON/OFF)
      - Ausschalten
      - Hochzählen einer Variable sobald nicht mehr am Encoder gedreht wird
      - nach knapp 6 Minuten geht der Attiny in den Powerdown-Modus
      - vorher aktuelle Werte ins EEPROM
      - Versorgung der Servos wird abgeschaltet
      - Attiny wird nicht mehr mit 5V sondern nur noch mit ca 3,5V versorgt
      - LCD wird abgeschaltet, LCD-Ports auf NULL, Displaybeleuchtung AUS
      - Einschalten
      - Druck auf einen beliebigen Encoder-Knopf weckt aus Tiefschlaf (INT0/INT1)
      - Spannungsverorgung Servos schaltet ein, Displaybeleuchtung EIN
      - Lesen der letzten Einstellwerte aus dem EEPROM
      - LCD initialisiert


      zu 9+10 Versorgung)
      - Versorgung mittels einer LiIo-Zelle 18650
      - Batteriefassung mit eingebauter Lipo-Schutzschaltung vom Chinamann
      - 5V-Versorgung über einstellbaren StepUp-Wandler vom Chinamann
      - Einschalten des StepUp-Wandlers mittels vorhandenem Relais, man könnte das auch mit P-Kanal-MOS-FET machen.




      Erfahrungsbericht:
      ==================
      - Der BASCOM-eigene Encoder-Befehl zeigt sich höchst unzuverlässig, bin nicht zufrieden.
      Ich habe dann im WEB eine Lösung gefunden die super funktioniert, mich
      aber einiges an Gehirnzellen gekostet hat bis ich verstanden habe was da
      eigentlich passiert.
      Danke an den Ideengeber, hier ist das raus: rn-wissen.de/index.php/Drehencoder


      - Der StepUp-Wandler liefert laut Beschreibung vom Chinamann einen max. Ausgangsstrom von 3A, so ein Teil ist das: ebay.de/itm/251283348308
      Ein Blick ins Datenblatt und auf den nicht vorhandenen Kühlkörper
      belehrt mich eines besseren. Dem Teil kann ich bestenfalls 1A zumuten.
      Für meine kleinen Servos tuts, soll ja auch nur ein Tester sein.


      - Manchmal zucken die Servos minimalst im gefühlten Sekundentakt,
      abhängig von der eingestellten Impulsbreite, vorzugsweise im Bereich
      < 1300usec.
      Ein kleiner Raster nach rechts oder links am Encoder läßt das Zucken verschwinden. Das ist auch abhängig vom verwendeten Servo.
      Ich nehme stark an daß hier zwei Funktionen reinspielen die ich das nächstemal anders lösen würde.
      - Die Routine zur Decodierung der ALPS ist für eine Interrupt-Routine
      erschreckend groß. Da gehören Flags rein und der Rest ins Hauptprogramm
      - Die LCD-Ansteuerung, hier sollte die Austastlücke zwischen den
      Impulspaketen genutzt werden, schliesslich sind da um die 15ms Zeit.
      Die Art der Servoansteuerung verwende ich auch in mehreren echten
      Modellsteuerungen, hier tritt kein Zucken auf, die Servos stehen 100%
      stabil.
      An der liegt es also definitiv nicht.


      - Der Attiny 4313 ist zu 100% belegt. Aus diesem Grund konnte ich auch
      keine Tests mehr unternehmen um das o.g. Zucken wegzubekommen.



      Ansonsten, Layout, Schaltplan siehe Anlagen, auch einige Fotos des fertigen Gerätes



      Resüme:
      =======
      Es ist nicht das perfekte Gerät aber als Servo-Tester bin ich vollkommen zufrieden damit.



      Ausbauideen für das nächste Gerät:
      ==================================
      - Impulsbreitenmessung vom Empfänger
      - Verstellbare Pausenzeit, gute Servos oder Brushlessregler kommen mit höheren Folgefrequenzen klar
      Dateien

      Dieser Beitrag wurde bereits 3 mal editiert, zuletzt von Riedleweg () aus folgendem Grund: Tippverfehlerung verschlimmbessert