Arduino Tutorial - 13. Multitasking

Поділитися
Вставка
  • Опубліковано 1 лют 2025

КОМЕНТАРІ • 63

  • @m_ft._n5281
    @m_ft._n5281 7 років тому +5

    Super Videoreihe um sich selber das Programmieren am Arduino Schritt für Schritt beizubringen.
    Schön dass du weiter machst! 😊

  • @MaxTechTV1
    @MaxTechTV1  7 років тому +18

    Da hat sich doch ein Fehler eingeschlichen... Deshalb nun ein Reupload :) Viel Spaß beim ansehen!

    • @nicolashofmann6386
      @nicolashofmann6386 7 років тому +4

      MaxTechTV Könntest du mehr arduino machen thx

    • @tec4303
      @tec4303 7 років тому

      Warum läuft die millis Variable jetzt nicht über?

    • @MaxTechTV1
      @MaxTechTV1  7 років тому +5

      Die Millis Variable läuft über, allerdings hat es keine Auswirkungen auf das Sketch. Unsigned long minus Unsigned long ergibt unsigned long->das Ergebnis kann also nicht negativ werden und der Code funktioniert auch nach dem Rollover weiterhin :)

  • @bebophippie1781
    @bebophippie1781 5 років тому +7

    I was still able to follow along even though I don't understand German. This helped me out a lot with my lightning project. I need to have multiple "fireflies" going off and on at different rates and this was just the ticket. Danke.

    • @avi3278
      @avi3278 5 років тому +1

      there is comment with subtitles

  • @felixw9695
    @felixw9695 7 років тому +9

    Juhuuuu! Mal wieder was neues von Max!!

  • @christopherzander187
    @christopherzander187 7 років тому +2

    Merci Max, Klasse Video nicht zu kurz und nicht zu lang. Du hast mir in der meiner Diplomarbeit sehr geholfen, ich habe tolle Lösungsansätze bei dir finden können um meine Probleme zu lösen. Und ich bin nun fertig (erfolgreich) und sehe immer gerne deine Videos und denke das hätte man auch noch implementieren können 😉 👍🏼 Thanks noch einmal im Namen aller

  • @machetmatze
    @machetmatze 7 років тому +4

    Wie bei allen Videos.... Sehr sehr einfach und gut erklärt. Danke

  • @trizzleseven
    @trizzleseven 6 років тому +2

    Super Tutorial um den Umgang mit millis zu verstehen. Danke!

  • @PerchEagle
    @PerchEagle 5 років тому +3

    The best multitasking strategy in Arduino world !

  • @michaelkotthaus7120
    @michaelkotthaus7120 4 роки тому +2

    Prinzipiell kann man das so machen. Wenn man aber die Anforderungen hat, dass die Frequenz (der LED) konstant sein soll, so ergeben sich bei größerer CPU-Auslastung Ungenauigkeiten, vergleiche 2:48.
    Statt die millis()-Funktion 2x aufzurufen, sollte sie nur 1x aufgerufen werden. Man muss zu timestamp die Intervallzeit addieren (also 5000). Ansonsten akkumulieren sich Fehler, die durch die Ausführungszeiten dieser und anderer "Tasks" auftreten.
    Beispiel:
    Angenommen, timestamp stand zuletzt auf 5000 und zur erneuten Taskausführung liefert millis() 10123 bzw. nach doSomething() 10234 zurück. Das nächste Mal würde dann der Task frühstens bei 15235 ausgeführt werden. Wenn ich aber zu timestamp 5000 addiere, so ergibt sich 10000. Das nächste Mal würde der Task frühstens 15001 ausgeführt. Die mittlere Aufruffrequenz wird also auf diese Weise nicht durch andere Tasks und durch die eigene Taskdauer beeinflusst. Das gilt natürlich nur, wenn genug Rechenzeit da ist, die für die Ausführung aller Tasks ausreichend ist.
    Im späteren wird auch größer/gleich statt größer verwendet. Richtig ist die Abfrage mit größer. Denn sonst würde bei kurzer Taskdauer und geringer CPU-Auslastung der Task mehrfach innerhalb einer Millisekunde aufgerufen.
    Ansonsten ist das alles prima erklärt. Vielen Dank für die Mühe solche Tutorials zu erstellen!

  • @DBBahnospherix-BahnAtmospherix
    @DBBahnospherix-BahnAtmospherix 10 місяців тому +1

    Sehr gut erklärt, danke

  • @mariusuuu
    @mariusuuu 5 років тому

    deine Tutorials sind echt SUPER Hut ab . einfach nur TOP
    wen du mal lust und zeit hast kannst du auch mal Tutorials zu Arduino in Verbindung mit einem Nextion Display machen

  • @es_tragon7299
    @es_tragon7299 4 роки тому

    Alter...
    Diese Videos sind so gut! Ein Grund zur Trauer dass du nicht aktiver bist :( aber danke für die tollen

  • @CrazyCoupleDIY
    @CrazyCoupleDIY 6 років тому +15

    Why did you not make this in english

    • @MiratulKhairiah
      @MiratulKhairiah 5 років тому +1

      das ist nicht ein problem. Es ist einfach besser als Englisch

    • @dawievanemmenes1124
      @dawievanemmenes1124 5 років тому

      @@MiratulKhairiah unt poefen woefen.

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

    Hallo,
    bin sehr zufrieden mit der Arduino - Tutorial - Serie. Ein Verbesserungsvorschlag für #13 - Multitasking. Gerade für einen Anfänger wäre es übersichtlicher, einmal die Fritz - Schaltung kurz einzublenden. Dann kommt man nämlich nicht auf "dumme Gedanken" und haut noch zusätzlich 5 Volt auf den Taster, wie bei mir passiert.
    Besten Gruß

  • @julianbambus9722
    @julianbambus9722 5 років тому

    Cooles Video!!! Like is da! Ne frage... Hast du die leds einfach mit 5v verbunden und per Knopfdruck wird der Pin ins Minus geschalten? Wenn ja was hat das für einen Vorteil gegenüber dem Pin auf high zu schalten und die led dran zu hängen?

  • @dARocaLPH
    @dARocaLPH 7 років тому +3

    Hammer Video...*daumenhoch*

  • @Spur1fan
    @Spur1fan 6 років тому

    Vielen Dank für das Tutorial, so kann man es gut verstehen. Jetzt werde ich mal versuchen das auf meine Anwendung umzubasteln.
    Ich möchte Neo Pixel damit ansteuern. Um sie dann in ein belebtes Modellhaus einzubauen.
    ZB. Neonlicht flackern, TV Simulation, Zimmerbeleuchtung usw.
    Wenn es nicht funktioniert, melde ich mich nochmal.

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

    Moin, sehe gerade, dass am Anfang die Schaltung kurz eingeblendet wurde. Bitte um Nachsicht.
    Besten Gruß

  • @patricglo9845
    @patricglo9845 6 років тому +2

    kannst du mal ein Video zur verwendung mit mehreren Tabs/Registerkarten machen. Oder wie man zwei Prozesse Parallel ausführen kann, wenn das möglich ist.?

    • @pridecaptain4266
      @pridecaptain4266 3 роки тому

      Das würde mich auch interessieren. Ich habe ein Projekt bei dem ein Servomotor und ein Lüfter bei überschreiten einer Temperatur angesteuert werden sollen.

  • @elektroproject
    @elektroproject 6 років тому +2

    hii, I'm luqman from indonesia,
    okey, this point
    can i share ur video tutorial with my language in Indonesia? I will teach on my work.
    thanks

  • @m-electronics5977
    @m-electronics5977 4 роки тому

    Irgendwie verstehe ich nicht wieso du den Zustand eines OUTPUT Pins (led1) ausliest und diesen als Parameter in der DigitalWrite Funktion nutzt.

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

    Wie müßte man das Programieren wenn die rote LED eine Sekund an und 2 Sekunden aus bleiben soll?

  • @robrocks2714
    @robrocks2714 6 років тому

    Hi Max! Erstmal vielen Dank für's uploaden der ganzen Tutorial Videos.
    Meine Frage wäre, ob man mittels dieser millis-Funktion auch 3 Vorgänge prallel laufen lassen kann?
    Für mein Projekt, soll der Zustand einer Batterie ausgegeben werden, indem einfach eine LED leuchtet oder eben nicht (Programm 1). Gleichzeitig möchte ich den Arduino dazu nutzen, mittels pulseIN-Funktion eine Frequenz zu bestimmen (Programm 2) welche letztlich an eine Bargraph-Anzeige ausgegeben werden soll (Programm 3). Frequenzänderung = unterschiedlich viele LEDs am Leuchten.
    Wäre super, wenn du mir kurz Auskunft geben kannst, ob das überhaupt möglich ist, bevor ich mir daran die Zähne ausbeiße ;-)
    Vielen Dank schonmal!

  • @zeemixvideos6485
    @zeemixvideos6485 6 років тому

    sir i make an egg automatic incubator for my universty project i use two relays and one dht11 sensor
    (sorry for my english)
    one relay i use for gear motor to rotate egg turner
    and the seccond relay i use for a light and fan for controling temperature
    i use delay for rotating the eggs
    so the dht11 also use that delay and dont show the temperature between delay time please help me how can i use multi tasking
    i mean i want to see the temperature and humidity during delay time please replay

  • @michaelfalk5449
    @michaelfalk5449 4 роки тому

    Sehr schön danke dafür. Bei mir gibts immer wieder Probleme mit dem Setzen von Klammern. Wie z.B. ((millis() - lastMillis1) >= 500). Vielleicht geht es nur mir so :-( Kannst Du so etwas einmal erklären damit es verständlich wird was und warum wann in einer Klammer zusammengefasst wird? Gruß Michael.

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

    Hammer, hat mir einige neue Möglichkeiten eröffnet 😅👍 gibt es eine Möglichkeit, dass ich beide LED's blinken lassen kann (für 5mal) wenn ich den Button drücke anstatt "nur" eine LED die permanent leuchtet? 🙂

  • @maikbeler3833
    @maikbeler3833 6 років тому

    Hey Max, kann ich für Eingänge oder Ausgänge den Datentyp Bool benutzen? Spart das vielleicht Speicher ? Danke für deine tollen Videos. Gruß Maik

  • @majdalhawashi8080
    @majdalhawashi8080 5 років тому

    Hallo,
    Wie kann ich es machen, dass das grüne LED nur für 1 Sekunde leuchtet auch wenn ich den Button gedrückt halte ?
    Danke

  • @meinzzzz9417
    @meinzzzz9417 7 років тому +1

    Wie kann ich mit einem arduino eine veränderbare Frequenz machen, welch ich mit einem 100kohm Potentiometer einstellen kann?

    • @MaxTechTV1
      @MaxTechTV1  7 років тому +1

      Sieh dir mal das Beispiel Sketch in der Arduino IDE unter Beispiele/02 Digital/tonePitchFollower an. Das sollte prinzipiell das gleiche sein, nur der Fotowiderstand muss durch dein Potentiometer ersetzt werden.

    • @meinzzzz9417
      @meinzzzz9417 7 років тому +1

      Danke

  • @ramazanaksari7007
    @ramazanaksari7007 5 років тому

    wo sehe ich die Anzahl der Millisekunden die vergangen sind beim Befehl millis ?

  • @hannesmessner5973
    @hannesmessner5973 5 років тому

    ich hätte eine frage
    wie kann ich z.b. eine RGB LED (die die farben dauernd wechselt)
    und einen servo motor zusammen laufen lassen
    die einzelnen programme hab ich schon geschrieben aber wie führe ich die jetzt zusammen

    • @laurinmeier6464
      @laurinmeier6464 5 років тому +1

      Falls es noch relevant ist, du musst wie im Video gezeigt die if schleifen schreiben und dann in jeweils eine schleife einen Code einfügen. Dann darfst du allerdings keine Code abschnitte außerhalb der "Multitasking schleifen" haben!

  • @flytrapjohn
    @flytrapjohn 5 років тому

    A brilliant vid thanks for showing us.

  • @m-electronics5977
    @m-electronics5977 4 роки тому

    Bei mir funktioniert dieser Code nicht ich habe erstmal es so probiert das ich anstatt delay mit Millis eine led blinken lassen wollte aber schon das hat nicht gut funktioniert

  • @dARocaLPH
    @dARocaLPH 7 років тому

    Kann man die Millis zurücksetzen? Denn wenn man den arduino ewig laufen lassen würde könnte der das sicher wann nicht mehr packen...oder?? Wäre für die Antwort sehr dankbar

    • @MaxTechTV1
      @MaxTechTV1  7 років тому

      Ja es ist richtig, dass Millis irgendwann wieder bei 0 startet (genau genommen nach 2^32 Millisekunden = ca. 50 Tage). In diesem Sketch ist das aber kein Problem. Warum das so ist, habe ich schon weiter oben beantwortet :)

  • @YOLOJANER
    @YOLOJANER 3 роки тому

    Und ich habe sowas mit nem Roboter ausprobiert, muss man es in Loop schrieben? Denn ich habe quasi zwei weitere void‘s gemacht sagen wir mal void 1 und 2. in 1 cheek ich on eine Linie erlang wurde wenn ja dann mache dies. In 2 sage ich ihn mach dies und das damit der Roboter vorwärts Fährt (also denn Controller Anweisung geben etc).
    Dann sage ich im Loop:
    {
    1();
    2();
    }
    Wenn ich es aber so mache erkennt er die linie aber macht trotzdem mit void 2 weiter.
    Ist das also so weil ich ihn sage mache 1(); (schau ob du die Linie überfährst und wenn stoppe, warte x und fahre zurück blablabls...)
    Und ich ihn dann sage mach 2();
    (Also fahr vorwärts)
    Also macht er erst ein void fertig und danach denn anderen und deswegen muss ich was in meine. Void‘s steht in denn Loop Dietrich packen oder sollte es eigentlich so auch funktionieren?
    Also zb
    Void1(){
    Was im Video gezeigt wurde mit led1 (sprich schau ob der Unterwalden >= 1000, und Wechsel dann Zustand)
    }
    Void2(){
    Mache was im Video gezeigt wurde mit led2
    (Also schau ob der Knopf gedrückt wurde und wenn mache dann dies...)
    }
    loop(){
    1();
    2();
    }
    Sollte dies so funktionieren??
    Sorry fals das echt doof gefragt ist aber ich finde zb keinen deutsch sprachigen Discord der sich mit Arduino beschäftigt.

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

    Wie kann ich ein Sketch mit Farbe ausdrucken?

  • @phiwatec2576
    @phiwatec2576 6 років тому

    Gibt es einen Vorteil die Pins mit Variablen zu definieren anstatt "#define"?

  • @nguyenvansi9764
    @nguyenvansi9764 5 років тому +1

    The calculation time is incorrect if your child program program takes a long time to process

    • @phamtuan1568
      @phamtuan1568 3 роки тому

      You right. So how can run parallel?

  • @igh555
    @igh555 5 років тому

    Ist der Kanal noch in Verwendung?

  • @Angraget
    @Angraget 4 роки тому

    wie ist der Schaltplan???

  • @hasaniqbal813
    @hasaniqbal813 4 роки тому

    I could follow what you are saying, but wish it was in English so that the rest of the world could understand the essential concept that you are explaining here. Going forward, when using millis() function, please DO NOT call any assigned variable as "timestamp" - it is not, it really is a timeline from 0 to 4B+. I see this problem in all the UA-cam example where they explain millis(). Everybody should really call it CurrentTimeLine or currentTimeLine or something similar, NOT currentTime or previousTime. Does that make sense?

  • @NicolaiWeitkemper
    @NicolaiWeitkemper 7 років тому

    Und nächstes mal Interrupts?

  • @aurelhanselmann1639
    @aurelhanselmann1639 4 роки тому

    Ich liebe dich

  • @zeemixvideos6485
    @zeemixvideos6485 6 років тому

    please help me

  • @สุพงศ์เอง
    @สุพงศ์เอง 5 років тому

    Where you come from?
    I think you are rusia

  • @axollner6722
    @axollner6722 3 роки тому

    Für mich als Einsteiger leider viiiiiel zu schnell!

  • @MrGunnaras
    @MrGunnaras 6 років тому +1

    GOD DAMMIT: DO IT IN ENGLISH!!!!! THIS IS SOO GOOD :p

  • @TJ_1999
    @TJ_1999 7 років тому

    Naja... Echtes Multitasking ist das ja nicht... Aber für einen Anfänger kann man das so beschreiben. Deshalb auch ein hilfreiches Video für Anfänger in Sachen Arduino. Eleganter wäre es natürlich, wenn man beim Drücken des Buttons ein Interrupt ausführen würde und für die blinkende LED ein Timer einrichtet.