Beschreibung
Einen Programmcode zu schreiben ist relativ leicht, ihn jedoch auch nach
Jahren sofort zu verstehen ist jedoch schwerer. Damit sofort verstanden
wird, was der Programmcode bewirkt, helfen Kommentare. Dadurch können
zukünftige Programmierer, bzw. Porgrammcodenutzer oder neu
hinzugekommene Mitglieder eines Projektes sofort durch nur wenige Wörter
ein Verständnis für die Arbeitsweise entwickeln. Zudem können Kommentare
auch einfach als Notizen für sich und andere benutzt werden, um später
evtl. an der Stelle einen bestimmten Test laufen zu lassen, eine Stelle
zu markieren, um im späteren Verlauf einige Änderungen vorzunehmen oder
die besonders betrachtet weden soll, und so weiter.
Kommentare können beim Testen verwendet werden, um bestimmte Codezeilen
inaktiv zu machen. da der Compiler sie als Leerzeichen behandelt.
Dazu ist es gut zu wissen welche Kommentare es gibt und wie man sie
richtig benutzt. Wir haben zwei Möglichkeiten einen Programmcode zu
kommentieren:
Zeilenkommentare
Zeilenkommentare sind die modernste und schnellste Art ein Kommentar zu
schreiben.
// Zeilenkommentare werden immer mit zwei Schrägstrichen eingeleitet.
// Jede weitere auszukommentierende Zeile muss mit // anfangen.
// Sie erstecken sich über die gesamte Zeile bis zum Zeilenende
// und können mit einem Punkt beendet werden, müssen es aber nicht.
int var = 2; // Sie können auch mitten in der Zeile beginnen und bis zum Ende auslaufen.
int temp = 3;
Sie haben den Vorteil, dass sie verschachtelt werden können, wenn vor
dem Kommentar Code zu Testzwecken auskommentiert wurde.
void loop(){ // Beginn Programmcode
Serial.print("Die Variable temp hat den Wert: "); // Testausgabe
Serial.print(temp);
/*
Serial.print("Die Variable var hat den Wert: "); // Auskommentierte Ausgabe
Serial.print(var);
*/
}
Blockkommentare
Mit Blockkommentaren kann ein Block kommentiert werden. Er wird mit /*
geöffnet und mit */
geschlossen. Sie sollten nur an Stellen verwendet
werden, an denen längere Textpassagen stehen. Zudem sollten
Blockkommentare möglichst nicht zwischen Code stehen, dafür sind
Zeilenkommentare besser geeignet. Jedoch kann diese Art des Kommentars
als Lückenfüller oder Beschriftung agieren, weil sie auf einen
bestimmten Bereich begrenzt ist.
Meistens werden Blockkomentare über der Methode als kurze
Zusammenfassung der Arbeitsweise benutzt. Sie können das Kommentieren
erleichtern, da man so einen Text ohne Probleme verfassen kann, ohne
jede Zeile mit einem //
starten zu müssen
/* Ein Blockkommentar kann
sich über mehrere Zeilen
erstrecken. */
int var = a;
a = b /* Oder als Lückenfüller agieren und vor dem Zeilenende enden. */ + c;
Code
Der folgende Code soll ein Beispiel für eine gute Kommentierung
darstellen. Hier wird eine Glühbirne zum Leuchten gebracht, wenn z.B.
ein Hindernis weniger als 10cm entfernt ist. Andernfalls soll die
Warnleuchte aus sein.
int led = 12; // Die LED wird an Pin 12 angeschlossen.
/*
Das Setup enthält wichtige Einstellungen für Objekte oder Aktoren/Sensoren und startet
eine Schnittstelle mit dem Arduino.
Der Code wird nur einmal beim Start des Arduinos ausgeführt.
*/
void setup() {
// Lege die LED als Output fest.
pinMode(led, OUTPUT);
}
/*
Die loop enthält den Code, den der Arduino immer wieder von Zeile 11-24 ausführt.
*/
void loop() {
/* Lege den Abstand als Gleitkommazahl (Datentyp "float") 20 fest.
An diesem Punkt könnte man den Abstand auch messen.
*/
float abstand = 20.0;
// Falls der Abstand kleiner als 10 ist...
if (abstand < 10) {
digitalWrite(led, HIGH); // ... schalte die LED ein.
// Ansonsten...
} else {
digitalWrite(led, LOW); // ... schalte die LED aus.
}
}
Aufgaben
Was ist ein Zeilenkommentar?
Ein Zeilenkommentar ist ein Kommentar, welcher mit //
begonnen wird
und bis zum Ende der Zeile geht. Er kann auch mitten in der Zeile
beginnen, jedoch wird jeder Inhalt bis zum Ende der Zeile kommentiert.
Was ist ein Blockkomentar?
Ein Blockkommentar ist ein Kommentar, welcher als Block aufgeschrieben,
mit /*
geöffnet und mit */
geschlossen wird. Er kann zudem als
Lückenfüller mitten im Code benutzt werden.
Kommentiere diesen Code selbst. Als kleine Hilfestellung, wurde bereits
markiert welche Art der Kommentare hier sinnvoll wären.
int motor_links = 13; //
int motor_rechts = 12; //
/*
*/
void setup() {
//
pinMode(motor_links, OUTPUT); //
pinMode(motor_rechts, OUTPUT); //
}
/*
*/
void loop() {
//
digitalWrite(motor_links, HIGH);
digitalWrite(motor_rechts, HIGH);
//
delay(3000);
//
digitalWrite(motor_links, LOW);
digitalWrite(motor_rechts, LOW);
//
delay(1000);
}
// Wir geben den Pins mit Motoren Namen.
int motor_links = 13; // Motor links an Pin 13.
int motor_rechts = 12; // Motor rechts an Pin 12.
/*
Dieser Code wird einmal beim Start des Arduinos ausgeführt.
*/
void setup() {
// Wir teilen dem Arduino mit, dass aus den Motorpins Strom kommen soll.
pinMode(motor_links, OUTPUT); // Motor links bekommt Strom.
pinMode(motor_rechts, OUTPUT); // Motor rechts bekommt Strom.
}
/*
Dieser Code wird immer wieder hintereinander ausgeführt.
*/
void loop() {
// Gib beiden Motoren Strom = HIGH.
digitalWrite(motor_links, HIGH);
digitalWrite(motor_rechts, HIGH);
// Warte 3 Sekunden bis zur Ausführung der nächsten Befehle.
// ACHTUNG: Die Motoren haben weiterhin Strom,
// bis dem Arduino ein gegenteiliger Befehl gegeben wird.
delay(3000);
// Gib beiden Motoren KEINEN Strom = LOW.
digitalWrite(motor_links, LOW);
digitalWrite(motor_rechts, LOW);
// Warte 1 Sekunde.
delay(1000);
}
Häufige Fragen und Probleme
Was wird alles kommentiert?
Alles was man für nötig erachtet. Methoden, Klassen, Variablen,
Ausgaben, etc.
Muss ich alles kommentieren?
Nein, aber es ist sehr sinnvoll, sowohl für sich selbst als auch für
andere.
Bei mir ist alles als Kommentar markiert, wo liegt der Fehler?
Falls es sich um ein Blockkommentar handelt, hast du den Kommentar auch
mit */
geschlossen? Beachte, dass Zeilenkommentare bis zum Ende der
Zeile gelten.