Die SCoop Task Blöcke sind einfach gesagt Blöcke bei denen man ohne Delay Schleifen auskommt und Taster nicht entprellt werden müssen. Das funktionier so weit sehr gut. Allerdings kommt es mit anderen Blöcken manchmal zu Schwierigkeiten zum Beispiel wenn Displays verwendet werden. Da der SCoop Block andere Baut raten verwendet wie andere Blöcke. Die SCoop Blöck sind aber wem das nichts ausmacht eine echt super Möglichkeit Taster, blinkende LEDs usw. zu programmiere ohne den Delay Block zu verwenden.
Die Blöcke finden sich in im blauen Feld SCoop (multitask). Allerdings brauchen die SCoop Blöcke verschiedenen Treiber, diese habe ich bis zum Schluss nicht gefunden. In der Version von DUINOEDU, sind diese bereits in der zip Datei vorhanden. Deshalb bitte diese Version verwenden.
Es gibt drei Grundsätzliche Blöcke von Scoop, mit denen wir programmieren können.
1: SCoop Sleep
Dieser Block ist der gleiche Delay Block wie seine gelbes Ebenbild. Wird dieser Block gesetzt dann macht der Arduino eine Pause und macht nichts anderes.
2: SCoop Event
Mit diesem Block können alle digitalen Pins des Arduino abgefragt werden. Einfach in das Feld PIN den verwendeten Anschluss eintragen.
Dieser Block wird ausgeführt sobald der Taster gedrückt wird. Ein entprellen ist dabei nicht nötig. Egal wie lange der Taster gedrückt wird, das Programm zählt nur einen Tasterdruck und läuft auch bei gedrücktem Taster weiter. Erst wenn der Taster wieder los gelassen wird und erneut gedrückt wird, zählt das Programm einen Tasterdruck.
3: SCoop Loop
Dieser BLock ist wie der Loop Teil im gelben Block, nur dass er Parallel zum gelben Loop Block arbeitet. Auch wenn, wie im Bild oben zwei Delay Zeiten im Programm sind und die LEDs passend dazu blinken. Wird im serial Monitor der Zustand des Poti permanent gezeigt. Wir haben so gesehen zwei parallel arbeitende Loop Blöcke und die im gelben Teil verwendeten Delay Zeiten haben keinen Einfluss auf den blauen Loop teil.
Im gelben Loop Teil sollten also alle Delay Zeiten für blinkende LEDs usw. untergebracht werden. Taster, Analoge Eingänge oder Rechenoperationen sollten allerdings hier nicht programmiert werden. Da sie nur zwischen den Delay Zeiten abgefragt werden.
Mit dem SCoop Event Pin sollten alle digitalen Pins abgefragt werden. Dabei kann ausgewählt werden ob der Block auf ein HIGH, LOW usw. Signal reagieren soll. In den Event Block gehören auch keine Delay Zeiten. Hier sollten entweder PINs geschaltet oder Variablen gezählt werden. Alles andere gehört in den LOOP Teil.
Im Serial Monitor schön zu sehen, obwohl keine Delay Zeit im Programm ist oder Taster mit anderen Blöcken entprellt ist, Zählt jeder Tasterdruck als ein Druck und nicht als 20.
Im SCoop Loop Block sollte nun das eigentliche Programm, wie die Abfrage von Potis, das fahren von Servos oder das zählen von Variablen stattfinden.
Im Serial Monitor schön zu sehen, trotz der Delay Zeiten im gelben Loop Teil und der Taster Abfrage im Event Block, ist im Serial Monitor nur die abgefragte Variable zu sehen.
Wird im blauen Loop Teil allerdings eine Delay Schleife eingebaut, dann wartet das Programm auch hier für die eingetragenen Zeit. Deshalb sollte hier auf eine Delay Zeit verzichtet werden.