06 | 01 Eine LED mit einem Zähler regeln

Mathematische Operatoren

Du hast bereits erste Erfahrungen mit mathematischen Operatoren aus dem Kapitel 5 | 2 Pulsweitenmodulation, in dem wir die Helligkeit der LED gedimmt haben. Hier ein Auszug aus dem Sketch:

 

Spezifikationen
- Signalart: digital
- Spannung: 3,3V – 5V
- Pinabstand: 2,54mm

brightness = brightness + fadeAmount;

Es handelt sich hier schlicht um die Anwendung mathematischer Gleichungen wie addieren, subtrahieren, multiplizieren und dividieren.

int value; 
value = 1 + 2; //Addition 
value = 3 - 2; //Subtraktion 
value = 3 * 2; //Multiplikation 
value = 3 / 2; //Division (das Ergebnis ist 1) 

Die Gleichungen verhalten sich ganz unserer Erwartungen an die Mathematik. Nur die Division tanzt aus der Reihe. Hier wird der anfallende Rest einfach ignoriert. Die Gleichung 3:2 ergibt nicht 1,5 sondern 1.


Auch zusammengesetzte Anweisungen, wie unten beschrieben, folgen den gängigen Reihenfolgen: Multiplikation und Division haben Vorrang. Beide Zeilen liefern das gleiche Ergebnis. Für die Deutlichkeit ist es ratsam Klammern zu verwenden.

value = 2 + 5 * 5 + 6 //das Ergebnis ist 33
value = 2 + (5 * 5) + 6 //das Ergebnis ist 33

Natürlich können wir Klammern verwenden, um den Vorrang gemäß unseren Wünschen zu ändern. Das Ergebnis der unteren Zeile beträgt nun 56. Zuerst werden die Ausdrücke in den Klammern ausgerechnet. Die Zahl 2 wird mit 5 addiert und dann mit 5 multipliziert. Schließlich wird die Zahl 6 dazu addiert.

value = ((2 + 5) * 5) + 6 //das Ergebnis ist 56

Der Zähler - Inkrementieren und dekrementieren

Mit einer einfachen Gleichung können wir in einen Sketch einen Zähler einbauen. Dadurch sind wir in der Lage bei jeder Schleife von void loop() Variablen zu vergrößern oder zu verkleinern. Wenn wir den Wert einer Variablen erhöhen, sprechen wir von inkrementieren und wenn wir ihn verkleinern von dekrementieren.

int value = 0;

value = value + 1;  //Inkrementiert value um 1 
value = value - 1;  //Dekrementiert value um 1 

Es gibt die Möglichkeit Operationen und Zuweisungen miteinander zu kombinieren. Soll heißen wir haben die Möglichkeit einer Kurzschreibweise. Diese sogenannten compound operator wirst du im Internet oft vorfinden. Die Kurzform ist nicht effektiver als der vollständige Ausdruck. Aber erfahre Programmierer machen davon oft gebrauch. Bei der Kurzschreibweise fällt die Variable auf der rechten Seite weg, dafür rutscht das mathematische Vorzeichen vor das = Zeichen.

int value = 0;

value = value + 2;  //addiert 2 zu value hinzu 
value += 2; 		//Kurzschreibweise 

value = value - 2;  //subtrahiert 2 von value 
value -= 2;         //Kurzschreibweise 

value = value * 2;  //multipliziert value mit 2 
value += 2; 		//Kurzschreibweise 

value = value / 2;  //dividiert value durch 2 
value /= 2;         //Kurzschreibweise