Funktion
Für diese Funktion werden zwei Blöcke benötigt.
Zum Einen ein Block mit dem ein Unterprogramm erstellt werden kann.
Dieser ist in der Abbildung oben zu sehen.
Zum Anderen ein Block um das Unterprogramm auszuführen.
Dieser ist in der Abbildung unten zu sehen.
Der Block, der verwendet wird um ein Unterprogramm zu erstellen, wird außerhalb der Hauptschleife platziert.
Zur Übersichtlichkeit kann eine Beschreibung hinzugefügt werden, damit auf den ersten Blick die Funktion des Blocks erkennbar ist.
In den Befehle
Abschnitt können alle möglichen beliebigen Befehle eingetragen werden, die bei einem Aufruf des Unterprogramms ausgeführt werden sollen.
Der Block zur Ausführung des Unterprogramms, welcher in der Abbildung unten zu sehen ist, kann dann in die Hauptschleife eingesetzt werden.
Wenn dieser Block dann erreicht wird, wird das Unterprogramm, was mit dem anderen Block außerhalb der Hauptschleife erstellt wurde ausgeführt.
Der Block kann auch mehrmals in der Hauptschleife an verschiedenen Stellen eingefügt werden.
Beschreibung
Im Beschreibung
Abschnitt kann eine Beschreibung des Unterprogramms eingetragen werden.
Diese dient nur dazu um den Überblick zu behalten, sollten mehrere Unterprogramme erstellt werden.
Es kann eine kurze Beschreibung des Blocks eingetragen werden.
Für den Code, der aus ArduBlock generiert wird hat die Beschreibung keine Bedeutung.
Diese wird lediglich als Kommentar ins Programm eingefügt.
Benennung
Wichtig, vor allem wenn mehrere Unterprogramme eingefügt werden ist, dass der Block der das Unterprogramm aufruft gleich benannt werden muss, wie der Block der das Unterprogramm erstellt. Man kann die Blöcke umbenennen, indem man einen Linksklick auf den Namen ausführt. Dann hat man den Bearbeitungsmodus aktiviert und der Name kann geändert werden. Mit der "Enter" Taste kann der Bearbeitungsmodus verlassen werden.
Beispiel
Hier wird das Beispiel aus der digitalRead
Referenz verwendet.
Die Programmabschnitte "blinken" und "leuchten" sollen allerdings als Subroutinen realisiert werden.
In diesem Beispiel soll eine LED in Abhängigkeit des Eingangssignals an Pin 2 angesteuert werden.
Die LED ist über einen Vorwiderstand an den digitalen Pin 5 angeschlossen.
Wenn am Pin 2 ein Signal anliegt, soll die LED Blinken.
Wenn kein Signal anliegt, dann soll die LED durchgehend leuchten.
Hier wird der falls
und sonst
Block verwendet, welche eine Bedingung überprüfen und anhand dieser dann einen Code entweder ausführen oder überspringen.
Wenn ein Signal anliegt, dann ist der digitalRead
Block TRUE
und der falls
Block führt die Blink Sequenz aus.
Wenn kein Signal anliegt, dann ist der digitalRead
Block FALSE
und der sonst
Block setzt den Pin 5 auf HIGH
.
In ArduBlock könnte diese Funktion dann folgendermaßen aussehen:
Code
Im Code wird ein Unterprogramm außerhalb der Hauptschleife erstellt.
Der Block zum Erstellen wird mit dem Befehl void Unterprogramm(){Befehle}
realisiert, wobei für "Unterprogramm" der Name des Unterprogramms
und für "Befehle" hier die entsprechenden Befehle eingetragen werden.
Bei der Erstellung kann man noch Übergabeparameter und Rückgabewerte festlegen.
Das geht jedoch erst einmal über den Rahmen hinaus, allerdings findet man unter diesen Begriffen im Internet viele Erklärungen, wenn man sich weiter infprmieren will.
Aufgerufen wird das Unterprogramm dann mit dem Befehl Unterprogramm();
, wobei hier wieder für "Unterprogramm" der Name des entsprechenden Unterprogramms eingefügt wird.
Im Code würde das Beispiel folgendermaßen aussehen:
void loop() {
if (digitalRead(2)) {
blinken();
}
else {
leuchten();
}
}
//Bringt die LED zum kontinuierlichen leuchten
void leuchten() {
digitalWrite( 5 , HIGH );
}
//Lässt die LED im Sekundentakt blinken
void blinken() {
digitalWrite( 5 , HIGH );
delay( 1000 );
digitalWrite( 5 , LOW );
delay( 1000 );
}