Arduino Tutorial - 13. Multitasking

  Рет қаралды 127,288

MaxTechTV

MaxTechTV

Күн бұрын

Пікірлер: 63
@MaxTechTV1
@MaxTechTV1 6 жыл бұрын
Da hat sich doch ein Fehler eingeschlichen... Deshalb nun ein Reupload :) Viel Spaß beim ansehen!
@nicolashofmann6386
@nicolashofmann6386 6 жыл бұрын
MaxTechTV Könntest du mehr arduino machen thx
@tec4303
@tec4303 6 жыл бұрын
Warum läuft die millis Variable jetzt nicht über?
@MaxTechTV1
@MaxTechTV1 6 жыл бұрын
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 :)
@felixw9695
@felixw9695 6 жыл бұрын
Juhuuuu! Mal wieder was neues von Max!!
@m_ft._n5281
@m_ft._n5281 6 жыл бұрын
Super Videoreihe um sich selber das Programmieren am Arduino Schritt für Schritt beizubringen. Schön dass du weiter machst! 😊
@bebophippie1781
@bebophippie1781 5 жыл бұрын
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 4 жыл бұрын
there is comment with subtitles
@michaelkotthaus7120
@michaelkotthaus7120 4 жыл бұрын
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 9 ай бұрын
Sehr gut erklärt, danke
@machetmatze
@machetmatze 6 жыл бұрын
Wie bei allen Videos.... Sehr sehr einfach und gut erklärt. Danke
@CrazyCoupleDIY
@CrazyCoupleDIY 6 жыл бұрын
Why did you not make this in english
@MiratulKhairiah
@MiratulKhairiah 5 жыл бұрын
das ist nicht ein problem. Es ist einfach besser als Englisch
@dawievanemmenes1124
@dawievanemmenes1124 5 жыл бұрын
@@MiratulKhairiah unt poefen woefen.
@trizzleseven
@trizzleseven 6 жыл бұрын
Super Tutorial um den Umgang mit millis zu verstehen. Danke!
@DoubleDee2000
@DoubleDee2000 2 жыл бұрын
Wie müßte man das Programieren wenn die rote LED eine Sekund an und 2 Sekunden aus bleiben soll?
@christopherzander187
@christopherzander187 6 жыл бұрын
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
@PerchEagle
@PerchEagle 5 жыл бұрын
The best multitasking strategy in Arduino world !
@majdalhawashi8080
@majdalhawashi8080 4 жыл бұрын
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
@rolfmoser6869
@rolfmoser6869 2 жыл бұрын
Moin, sehe gerade, dass am Anfang die Schaltung kurz eingeblendet wurde. Bitte um Nachsicht. Besten Gruß
@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
@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.
@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 жыл бұрын
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!
@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
@johannesmayer4059
@johannesmayer4059 2 жыл бұрын
Wie kann ich ein Sketch mit Farbe ausdrucken?
@meinzzzz9417
@meinzzzz9417 6 жыл бұрын
Wie kann ich mit einem arduino eine veränderbare Frequenz machen, welch ich mit einem 100kohm Potentiometer einstellen kann?
@MaxTechTV1
@MaxTechTV1 6 жыл бұрын
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 6 жыл бұрын
Danke
@ramazanaksari7007
@ramazanaksari7007 5 жыл бұрын
wo sehe ich die Anzahl der Millisekunden die vergangen sind beim Befehl millis ?
@elektroproject
@elektroproject 6 жыл бұрын
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
@dARocaLPH
@dARocaLPH 6 жыл бұрын
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 6 жыл бұрын
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.
@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
@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
@patricglo9845
@patricglo9845 6 жыл бұрын
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.
@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
@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?
@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.
@phiwatec2576
@phiwatec2576 6 жыл бұрын
Gibt es einen Vorteil die Pins mit Variablen zu definieren anstatt "#define"?
@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ß
@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? 🙂
@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!
@nguyenvansi9764
@nguyenvansi9764 5 жыл бұрын
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???
@dARocaLPH
@dARocaLPH 6 жыл бұрын
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.
@flytrapjohn
@flytrapjohn 5 жыл бұрын
A brilliant vid thanks for showing us.
@NicolaiWeitkemper
@NicolaiWeitkemper 6 жыл бұрын
Und nächstes mal Interrupts?
@zeemixvideos6485
@zeemixvideos6485 6 жыл бұрын
please help me
@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 KZbin example where they explain millis(). Everybody should really call it CurrentTimeLine or currentTimeLine or something similar, NOT currentTime or previousTime. Does that make sense?
@สุพงศ์เอง
@สุพงศ์เอง 5 жыл бұрын
Where you come from? I think you are rusia
@laurinmeier6464
@laurinmeier6464 5 жыл бұрын
Umm... he's german 😂
@aurelhanselmann1639
@aurelhanselmann1639 4 жыл бұрын
Ich liebe dich
@axollner6722
@axollner6722 3 жыл бұрын
Für mich als Einsteiger leider viiiiiel zu schnell!
@TJ_1999
@TJ_1999 6 жыл бұрын
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.
@MrGunnaras
@MrGunnaras 6 жыл бұрын
GOD DAMMIT: DO IT IN ENGLISH!!!!! THIS IS SOO GOOD :p
Arduino Tutorial - 14. Displaymenü
9:19
MaxTechTV
Рет қаралды 251 М.
Arduino Sketch with millis() instead of delay()
14:27
Programming Electronics Academy
Рет қаралды 234 М.
"Идеальное" преступление
0:39
Кик Брейнс
Рет қаралды 1,4 МЛН
✔ Multitask Arduino with State Machines (& Switch Debouncing)
30:42
Normal Universe - Chris Guichet
Рет қаралды 70 М.
5 Wege einen Arduino mit Strom zu versorgen
5:11
MaxTechTV
Рет қаралды 143 М.
How to do multiple tasks in Arduino | Beginners | millis() function
10:23
Try these 16 Brilliant ESP32 projects!!!
11:18
ToP Projects Compilation
Рет қаралды 622 М.
PID-Regler auf Arduino implementieren (code + beispiel)
13:35
Robotastic
Рет қаралды 8 М.
Arduino UNO R4 Lesson12 - millis Function | Handling Multiple Tasks | Non-Blocking Code
23:38
Arduino millis() function: 5+ things to consider
12:49
Programming Electronics Academy
Рет қаралды 144 М.
Arduino Tutorial - 9. Der Servo (#9)
6:34
MaxTechTV
Рет қаралды 266 М.
How to Use Millis to Master Arduino Multi-tasking
50:17
Rachel De Barros
Рет қаралды 63 М.