ATTiny mit Servo

Поділитися
Вставка
  • Опубліковано 12 вер 2024

КОМЕНТАРІ • 36

  • @flinkiklug6666
    @flinkiklug6666 2 роки тому +2

    Finde das Tutorial sehr Sinnvoll. Wusste das mit der Attiny gar keine Servo Libary kann vielen Dank

  • @fastgo5248
    @fastgo5248 Рік тому +2

    Danke, endlich mal Videos, die man versteht und nachvollziehen kann. Sehr angenehm. Hummel Hummel

  • @user-fi2et6js1j
    @user-fi2et6js1j 10 місяців тому +1

    Danke, Super verständlich erklärt

  • @pattystep73
    @pattystep73 6 місяців тому

    Endlich mal langsam und gut verständlich

  • @stocothedude
    @stocothedude 2 роки тому

    Sehr schönes Video und super Kanal. Freue mich auf weitere Videos

  • @boessi
    @boessi 2 дні тому

    Klasse!

  • @mobahartenholm9289
    @mobahartenholm9289 Рік тому

    Moin Clemens. Bin über Deinen Kanal gestolpert. Hölle interessant. Ich hab ne Bastelbox für Arduino - alles drin zum Lernen- Du hast mich dazu gebracht, mich endlich damit zu befassen. Erklärung in deinen Videos- extraklasse! Herzlichen Dank dafür. Liebe Grüße aus Hartenholm.... Rainer

    • @Elbkm600
      @Elbkm600  Рік тому

      Na dann viel Spaß beim programmieren. Hartenholm - weltbekannt dank Rötger Feldmann.

  • @lutzmuller5703
    @lutzmuller5703 7 місяців тому

    Danke und Respekt für das Video. Das ist genau das, was ich gesucht habe, um eine Weiche exakt steuern zu können. Ich habe aber mal eine Frage: Beim Start fährt der Servo in eine Grundstellung. Kann ich den Servo so einstellen, dass die Grundstellung in der Mitte der Weiche steht und dann wieder in seine letzte Ausgangsposition z.B. auf links. Ich würde mal sagen, dass eine Weiche, wieder in seine letzte Position stehen sollte. Und eine weitere Frage stellt sich mir, was passiert mit der Grundeinstellung, wenn ich nur sage ich mal den Servo nur + - 3° bis 5° des Servos benötige, um eine Weiche zu schalten. Ist jetzt die Grundstellung innerhalb der 6 bis 10°?
    Grüße

    • @Elbkm600
      @Elbkm600  7 місяців тому +1

      Hallo. Das scheitert schon an dem Wunsch, an die letzte Position zu fahren, was bei Weichen wirklich sinnvoll ist. Aber nach dem Ausschalten hat der Tiny alles vergessen. Doch haaaaaalt: ich lese gerade, dass der Tiny85 auch ein Eeprom haben soll. Damit habe ich jedoch keine Erfahrung.

  • @flinkiklug6666
    @flinkiklug6666 2 роки тому +1

    Du hast ja mehrere male im Sketch das du den Servo movest. Wäre es nicht übersichtlicher wenn du ein extra Funktion machst MoveServo()?

    • @Elbkm600
      @Elbkm600  2 роки тому

      Grundsätzlich hast du recht, aber bei so einem kleinen Programm lohnte sich das nicht.

    • @flinkiklug6666
      @flinkiklug6666 2 роки тому

      @@Elbkm600 vielleicht bauen Leute ja das als kleinen teil vom eigenen Programm ein. Aber gut, dann können die auch Funktionen machen

  • @lukasschmidt50
    @lukasschmidt50 Рік тому +1

    Respekt, Super Arbeit. 👍👍👍

  • @lutzmuller5703
    @lutzmuller5703 7 місяців тому

    Auf der Suche nach dem ATTiny85, ist mir aufgefallen, dass es den ATTiny85 schlecht oder sehr teuer gibt. Es müsste doch der Tiny1614, genau diese Aufgaben erfüllen und ist zudem sehr günstig. Zusätzlich hat er einen eingebauten Speicher, bei dem der sich den Zustand des Servos merken kann.
    Grüße

    • @Elbkm600
      @Elbkm600  7 місяців тому +1

      Tiny1614 müsste auch gehen, man muss beim programmieren aber die Pinbelegung beachten. Probiert habe ich es mit diesem Typ jedoch nicht!

  • @SailingSVEasy
    @SailingSVEasy Рік тому

    Sehr schönes Video. Danke. Verstehe ich das richtig, dass die Zahl 600 in Ze 57 des Sketches den re. Anschlag des Servos festlegt und bei 500 der Endanschlag erreicht würde?

    • @Elbkm600
      @Elbkm600  Рік тому

      Moin. Richtig. 500µS entsprechen dem rechten Endanschlag des Servos und durch die Zahl 600 in Zeile 57 fährt der Servo nicht ganz nach rechts.

  • @andreasgerth3654
    @andreasgerth3654 8 місяців тому

    Der Ansatz und die Idee sind Super. Nur würde ich das ganze von der Variablen Aufteilung anders machen. Letztendlich läuft es doch immer wieder darauf hinaus, das ein Integer Zahl benötigt wird. Warum fasst du das ganze aus MAP , deinem Sinusberechnungen nicht einer langen Formel zusammen, die auch noch in der Ablaufschreibung den mathematischen Grundregeln entspricht, und lässt das als int() ausgeben ? Diese FLOATs fressen nicht nur RAM, was durch die vielen Einzelzeilen dazu führt, das diese ganzen Zwwichenergebnisse auch wirklich in den langsamen RAM geschrieben werden.
    Aber wenn man bei Ganzzahlen int, long usw bleibt ist die Ausführung um ein vielfaches , mehrfaches schneller.
    Dazu kann man sich auch eine Sinus-Tabelle als Array of INT anlegen,, welches bereits mit der SETUP() Funktion initiiert wird.
    Zudem noch ein Hinweis, was mir bei den 85er auch schon aufgefallen ist, zu einem man schreibt einen Code nicht mehrfach.
    Du brauchst mit der Richttungsentscheidung nur die Step-Zählschleife, und dann den eine Funktion welche mit den entsprechenden Übergabewerte arbeitet. Das verkürzt das Programm, die Verzögerung durch den Sprungsbefehl fallen nicht weiter ins Gewicht wenn du auf diese viele bewusste gesetzten Zwischenvariablen mit Zwangszugriff auf den RAM verzichtest. Dann läuft dein Proggi auch mit den Standard 8 MHz ohne eine Fuse Bit umzusetzen.
    Und noch ein Nachtrag, auf das SETUP() und LOOP() kann man komplett verzichten und beginnt nach der Sefinition /Kopfteil direkt mit "void main() {} und setzt nach der Port-Initiierung auf eine while (true) {} Scheife welche diese loop-Statemachine verkörpert. Damit brauchst du nur die Zähl / Variable für deinen Blink-Counter, wo mach auch z++; scheiben. Und den ganzen Babbs ;) der sich ohnehin nicht ändert, entweder als "const int", oder #define anlegen, dann wird es vom Compiler auch als Konstante verwendet und belegt keine RAM Ressourcen

    • @Elbkm600
      @Elbkm600  8 місяців тому

      Vielen Dank für deinen umfangreichen Kommentar. 👍
      Ich habe C++ nicht gelernt und kenne es nur aus dem Buch, das ich habe. Und da wird es zwangsläufig ziemlich flach gehalten, weil man ja nicht nachfragen kann, wenn man etwas nicht versteht.
      Mein Vorschlag: pack deine 7 Sachen, ziehe nach Hamburg, gehe zur Volkshochschule, melde dich da als Dozent und biete einen Kurs "C++ für geistig rüstige Rentner" an. Wenn das nicht zu teuer ist, komme ich gern.

    • @andreasgerth3654
      @andreasgerth3654 8 місяців тому

      @@Elbkm600 Es geht mir nicht darum hier den Lehrmeister zu spielen, sondern dir nur einfach mal aufzuzeigen, wo man trotz deines Compilers sehr viel Zeit liegen lassen kann, und auch wo man Ressourcen verschwendet.
      Du brauchst nur mal den einfachen Test machen, wo du im Arduino Schreibstil an einem Ausgang ein LED Blinken lässt. Wie du das machst , ob durch Toggeln des Bits im PIN-Register oder mit einer Schleife mit delay() oder delayMicrosecounds() oder mit miillis() ist dabei vollkommen egal. Es geht jetzt auch nicht um den Speed, sonder nur um den Speicherplatz den dein Programm im Flash belegt.
      Einmal machst du das mit setup() und loop() und schaust mal was dir der Compiler als Programmgröße ausgibt. Und dann verwendest für die Pin Zuweisungen bzw Werte, welche sich während des Programmlaufs nicht ändern werden einfach "const int LED = 1;" oder "#define LED 1" ( Nach der "define" Zeile kein "';" ). Und zudem schreibst du das in einem void main() {... } und verwendest statt der Funktion loop() innerhalb des MAIN nur eine while (true) { ...} Schleife. Und ups. je nach Methode und Anzahl der wirklich genutzten Variablen, verringerst sich die Programmlänge um bis zu 1,3k ....

  • @martinmitgarten9064
    @martinmitgarten9064 Рік тому

    Tolles Video!
    Auf die Idee mit einer einstellbaren Endlage muss erst mal jemand kommen!
    Da ich mich auch gerade mit diesen kleinen 'Rechenknechten' für Modellbauzwecke beschäftige, kommt mir das Video (und der Sketch) sehr gelegen.

  • @BenP681
    @BenP681 Рік тому

    Hallo Herr Andree,
    Ich finde die Idee diese ATtinys zu verbauen super.
    Ich selbst hätte auch gern eine solche Schaltung probiert. Daher meine Frage, lässt sich der Attiny auch nutzen, um eine H- Brücke (l293d) anzusteuern? Ich würde gern Tore mit kleinen Schrittmotor en öffnen undschließen. Aber arduino nano mit Treiber und step-down converter für 5V und stepper motor sind dazu einfach 1. Zu groß und 2. Zu teuer. Daher die Idee, wo immer ich bräuchte aus einem ls150 oder digikeijs dr 4018 das schaltsignal über einen Step down converter auf den Attiny zu senden, der über die hbrigde den schrittmotor steuert.
    Evtl können Sie mir jabei der Umsetzung helfen.
    LG Ben
    MfG Ben

    • @Elbkm600
      @Elbkm600  Рік тому

      Hallo, Ben. Diese Idee ist mir dann doch zu speziell. Vielleicht springt ein anderer Leser deines Kommentars ein. Viel Glück.

    • @BenP681
      @BenP681 Рік тому

      @@Elbkm600 naja, mein hauptsächliche Problem ist die Frage, ob ich an den attiny 4 Ausgänge programmieren kann und einen Eingang dazu, z. B. ALS Taster. Also ob der attiny genug Ein/Ausgänge hat?

    • @Elbkm600
      @Elbkm600  Рік тому

      @@BenP681 Pin 2, 3, 5, 6 und 7 stehen zur Verfügung. Google einfach mal z.B. nach "Pinout Attiny85"

    • @BenP681
      @BenP681 Рік тому

      @@Elbkm600 alles klar, danke erstmal dafür.

  • @flinkiklug6666
    @flinkiklug6666 2 роки тому +1

    Man könnte sich doch noch pins sparen und mehr Taster hinzufügen indem man mehrere Taster mit unterschiedlichem R an einen Input Pin hängt und analog die Spannung liest

    • @Elbkm600
      @Elbkm600  2 роки тому +1

      Stimmt. Gute Idee.

  • @berndhankel6883
    @berndhankel6883 2 роки тому

    Ist es nicht so, dass der Servo NICHT durch "PWM", sondern einfach nur durch eine unterschiedliche Spannung gesteuert wird?
    M.E. wird immer viel zu oft auf Puls-Verhältnisse gelegt, dabei ist es nur eine resultierende Spannung. Oder, sehe ich das falsch?

    • @Elbkm600
      @Elbkm600  2 роки тому

      Beim Servo entscheidet tatsächlich die Breite der Impulse über den Winkel des Servoarms. Also PWM.

    • @berndhankel6883
      @berndhankel6883 2 роки тому

      @@Elbkm600 ok, danke 🙂

  • @swyntopia
    @swyntopia 2 роки тому

    Welchen Frequenz verwenden Sie ?
    Intern 8 MHz ?

    • @Elbkm600
      @Elbkm600  2 роки тому

      Minute 28:30, bitte nicht zu früh ausschalten oder vorspulen. ;-))

    • @swyntopia
      @swyntopia 2 роки тому

      @@Elbkm600 Ha, da haben Sie mich aber erwischt !
      Ja, ich habe nur bestimmte Stellen angesehen die mich besonders interessierten.
      Asche auf meinen Schädel !
      Da ich schon mal Ähnliches versucht hatte aber Probleme bekam werde ich Sie möglicherweise noch mal mit Fragen "belästigen".
      ( Wenn´s recht sein sollte )