Returns
The square of the number. Data type: double.
Notes and Warnings
Because of the way the sq() function is implemented, avoid using other functions inside the brackets, it may lead to incorrect results.
This code will yield incorrect results:
int inputSquared = sq(Serial.parseInt()); // avoid this
Use this instead:
int input = Serial.parseInt();  // keep other operations outside the sq function
int inputSquared = sq(input);
See also
LANGUAGE abs()
LANGUAGE constrain()
LANGUAGE map()
LANGUAGE max()
LANGUAGE min()
LANGUAGE pow()
LANGUAGE sqrt()


Language
functions
variables
structure
Libraries
IoT Cloud API
Glossary
        The Arduino Reference text is licensed under a Creative Commons Attribution-Share Alike 3.0 License.

    Find anything that can be improved? Suggest corrections and new documentation via GitHub.
    Doubts on how to use Github? Learn everything you need to know in this tutorial.

Last Revision: Searching...
Last Build: 2023/06/30
Edit This Page
Reference
            >  Language
            >  Functions
            >  Math
            > Min

min()
          [Math]

Description
Calculates the minimum of two numbers.
Syntax
min(x, y)
Parameters
x: the first number. Allowed data types: any data type.
y: the second number. Allowed data types: any data type.
Returns
The smaller of the two numbers.


Returns
The smaller of the two numbers.
Example Code
The code ensures that it never gets above 100.
sensVal = min(sensVal, 100);  // assigns sensVal to the smaller of sensVal or 100
                              // ensuring that it never gets above 100.
Notes and Warnings
Perhaps counter-intuitively, max() is often used to constrain the lower end of a variable’s range, while min() is used to constrain the upper end of the range.
Because of the way the min() function is implemented, avoid using other functions inside the brackets, it may lead to incorrect results
min(a++, 100);  // avoid this - yields incorrect results
min(a, 100);
a++;  // use this instead - keep other math outside the function
See also
LANGUAGE abs()
LANGUAGE constrain()
LANGUAGE map()
LANGUAGE max()
LANGUAGE pow()
LANGUAGE sq()
LANGUAGE sqrt()


Language
functions
variables
structure
Libraries
IoT Cloud API
Glossary
        The Arduino Reference text is licensed under a Creative Commons Attribution-Share Alike 3.0 License.

    Find anything that can be improved? Suggest corrections and new documentation via GitHub.
    Doubts on how to use Github? Learn everything you need to know in this tutorial.

Last Revision: Searching...
Last Build: 2023/06/30
Edit This Page
Reference
            >  Language
            >  Functions
            >  Math
            > Pow

pow()
          [Math]

Description
Calculates the value of a number raised to a power. pow() can be used to raise a number to a fractional power. This is useful for generating exponential mapping of values or curves.
Syntax
pow(base, exponent)
Parameters


Syntax
pow(base, exponent)
Parameters
base: the number. Allowed data types: float.
exponent: the power to which the base is raised. Allowed data types: float.
Returns
The result of the exponentiation. Data type: double.
Example Code
Calculate the value of x raised to the power of y:
z = pow(x, y);
See the (fscale) sketch for a more complex example of the use of pow().
See also
LANGUAGE abs()
LANGUAGE constrain()
LANGUAGE map()
LANGUAGE max()
LANGUAGE min()
LANGUAGE sq()
LANGUAGE sqrt()


Language
functions
variables
structure
Libraries
IoT Cloud API
Glossary
        The Arduino Reference text is licensed under a Creative Commons Attribution-Share Alike 3.0 License.

    Find anything that can be improved? Suggest corrections and new documentation via GitHub.
    Doubts on how to use Github? Learn everything you need to know in this tutorial.

Last Revision: Searching...
Last Build: 2023/06/30
Edit This Page
Reference
            >  Language
            >  Functions
            >  Math
            > Max

max()
          [Math]

Description
Calculates the maximum of two numbers.
Syntax
max(x, y)
Parameters
x: the first number. Allowed data types: any data type.
y: the second number. Allowed data types: any data type.
Returns


y: the second number. Allowed data types: any data type.
Returns
The larger of the two parameter values.
Example Code
The code ensures that sensVal is at least 20.
sensVal = max(sensVal, 20); // assigns sensVal to the larger of sensVal or 20
                            // (effectively ensuring that it is at least 20)
Notes and Warnings
Perhaps counter-intuitively, max() is often used to constrain the lower end of a variable’s range, while min() is used to constrain the upper end of the range.
Because of the way the max() function is implemented, avoid using other functions inside the brackets, it may lead to incorrect results
max(a--, 0);  // avoid this - yields incorrect results
// use this instead:
max(a, 0);
a--;  // keep other math outside the function
See also
LANGUAGE abs()


a--;  // keep other math outside the function
See also
LANGUAGE abs()
LANGUAGE constrain()
LANGUAGE map()
LANGUAGE min()
LANGUAGE pow()
LANGUAGE sq()
LANGUAGE sqrt()


Language
functions
variables
structure
Libraries
IoT Cloud API
Glossary
        The Arduino Reference text is licensed under a Creative Commons Attribution-Share Alike 3.0 License.

    Find anything that can be improved? Suggest corrections and new documentation via GitHub.
    Doubts on how to use Github? Learn everything you need to know in this tutorial.

Last Revision: Searching...
Last Build: 2023/06/30
Edit This Page
Reference
            >  Language
            >  Functions
            >  Math
            > Abs

abs()
          [Math]

Description
Calculates the absolute value of a number.
Syntax
abs(x)
Parameters
x: the number
Returns
x: if x is greater than or equal to 0.
-x: if x is less than 0.
Example Code


-x: if x is less than 0.
Example Code
Prints the absolute value of variable x to the Serial Monitor.
void setup() {
  Serial.begin(9600);
  while (!Serial) {
    ;  // wait for serial port to connect. Needed for native USB port only
  }
  int x = 42;
  Serial.print("The absolute value of ");
  Serial.print(x);
  Serial.print(" is ");
  Serial.println(abs(x));
  x = -42;
  Serial.print("The absolute value of ");
  Serial.print(x);
  Serial.print(" is ");
  Serial.println(abs(x));
}
void loop() {
}
Notes and Warnings
Because of the way the abs() function is implemented, avoid using other functions inside the brackets, it may lead to incorrect results.
abs(a++); // avoid this - yields incorrect results


abs(a++); // avoid this - yields incorrect results
// use this instead:
abs(a);
a++;  // keep other math outside the function
See also
LANGUAGE constrain()
LANGUAGE map()
LANGUAGE max()
LANGUAGE min()
LANGUAGE pow()
LANGUAGE sq()
LANGUAGE sqrt()


Language
functions
variables
structure
Libraries
IoT Cloud API
Glossary
        The Arduino Reference text is licensed under a Creative Commons Attribution-Share Alike 3.0 License.

    Find anything that can be improved? Suggest corrections and new documentation via GitHub.
    Doubts on how to use Github? Learn everything you need to know in this tutorial.

Last Revision: Searching...
Last Build: 2023/06/30
Edit This Page
Reference
            >  Language
            >  Functions
            >  Math
            > Constrain

constrain()
          [Math]

Description
Constrains a number to be within a range.
Syntax
constrain(x, a, b)
Parameters
x: the number to constrain Allowed data types: all data types.


Parameters
x: the number to constrain Allowed data types: all data types.
a: the lower end of the range. Allowed data types: all data types.
b: the upper end of the range. Allowed data types: all data types.
Returns
x: if x is between a and b.
a: if x is less than a.
b: if x is greater than b.
Example Code
The code limits the sensor values to between 10 to 150.
sensVal = constrain(sensVal, 10, 150);  // limits range of sensor values to between 10 and 150
Notes and Warnings
Because of the way the constrain() function is implemented, avoid using other functions inside the brackets, it may lead to incorrect results.
This code will yield incorrect results:
int constrainedInput = constrain(Serial.parseInt(), minimumValue, maximumValue);   // avoid this
Use this instead:


Use this instead:
int input = Serial.parseInt();  // keep other operations outside the constrain function
int constrainedInput = constrain(input, minimumValue, maximumValue);
See also
LANGUAGE abs()
LANGUAGE map()
LANGUAGE max()
LANGUAGE min()
LANGUAGE pow()
LANGUAGE sq()
LANGUAGE sqrt()


Language
functions
variables
structure
Libraries
IoT Cloud API
Glossary
        The Arduino Reference text is licensed under a Creative Commons Attribution-Share Alike 3.0 License.

    Find anything that can be improved? Suggest corrections and new documentation via GitHub.
    Doubts on how to use Github? Learn everything you need to know in this tutorial.

Last Revision: Searching...
Last Build: 2023/06/30
Edit This Page
Reference
            >  Language
            >  Functions
            >  Math
            > Map

map()
          [Math]

Description
Re-maps a number from one range to another. That is, a value of fromLow would get mapped to toLow, a value of fromHigh to toHigh, values in-between to values in-between, etc.


Does not constrain values to within the range, because out-of-range values are sometimes intended and useful. The constrain() function may be used either before or after this function, if limits to the ranges are desired.
Note that the "lower bounds" of either range may be larger or smaller than the "upper bounds" so the map() function may be used to reverse a range of numbers, for example
y = map(x, 1, 50, 50, 1);
The function also handles negative numbers well, so that this example
y = map(x, 1, 50, 50, -100);
is also valid and works well.
The map() function uses integer math so will not generate fractions, when the math might indicate that it should do so. Fractional remainders are truncated, and are not rounded or averaged.
Syntax
map(value, fromLow, fromHigh, toLow, toHigh)
Parameters


Syntax
map(value, fromLow, fromHigh, toLow, toHigh)
Parameters
value: the number to map.
fromLow: the lower bound of the value’s current range.
fromHigh: the upper bound of the value’s current range.
toLow: the lower bound of the value’s target range.
toHigh: the upper bound of the value’s target range.
Returns
The mapped value. Data type: long.
Example Code
/* Map an analog value to 8 bits (0 to 255) */
void setup() {}
void loop() {
  int val = analogRead(0);
  val = map(val, 0, 1023, 0, 255);
  analogWrite(9, val);
}
Appendix
For the mathematically inclined, here’s the whole function


}
Appendix
For the mathematically inclined, here’s the whole function
long map(long x, long in_min, long in_max, long out_min, long out_max) {
  return (x - in_min) * (out_max - out_min) / (in_max - in_min) + out_min;
}
Notes & Warnings
As previously mentioned, the map() function uses integer math. So fractions might get suppressed due to this. For example, fractions like 3/2, 4/3, 5/4 will all be returned as 1 from the map() function, despite their different actual values. So if your project requires precise calculations (e.g. voltage accurate to 3 decimal places), please consider avoiding map() and implementing the calculations manually in your code yourself.
See also
LANGUAGE abs()
LANGUAGE constrain()
LANGUAGE max()
LANGUAGE min()
LANGUAGE pow()
LANGUAGE sq()


LANGUAGE constrain()
LANGUAGE max()
LANGUAGE min()
LANGUAGE pow()
LANGUAGE sq()
LANGUAGE sqrt()


Language
functions
variables
structure
Libraries
IoT Cloud API
Glossary
        The Arduino Reference text is licensed under a Creative Commons Attribution-Share Alike 3.0 License.

    Find anything that can be improved? Suggest corrections and new documentation via GitHub.
    Doubts on how to use Github? Learn everything you need to know in this tutorial.

Last Revision: Searching...
Last Build: 2023/06/30
Edit This Page
Reference
            >  Language
            >  Functions
            >  Math
            > Sqrt

sqrt()
          [Math]

Calculates the square root of a number.
Description
Syntax
sqrt(x)
Parameters
x: the number. Allowed data types: any data type.
Returns
The number’s square root. Data type: double.
See also
LANGUAGE abs()
LANGUAGE constrain()


See also
LANGUAGE abs()
LANGUAGE constrain()
LANGUAGE map()
LANGUAGE max()
LANGUAGE min()
LANGUAGE pow()
LANGUAGE sq()


Language
functions
variables
structure
Libraries
IoT Cloud API
Glossary
        The Arduino Reference text is licensed under a Creative Commons Attribution-Share Alike 3.0 License.

    Find anything that can be improved? Suggest corrections and new documentation via GitHub.
    Doubts on how to use Github? Learn everything you need to know in this tutorial.

Last Revision: Searching...
Last Build: 2023/06/30
Edit This Page
Reference
            >  Language
            >  Functions
            >  Trigonometry
            > Cos

cos()
          [Trigonometry]

Description
Calculates the cosine of an angle (in radians). The result will be between -1 and 1.
Syntax
cos(rad)
Parameters
rad: The angle in radians. Allowed data types: float.
Returns


Parameters
rad: The angle in radians. Allowed data types: float.
Returns
The cos of the angle. Data type: double.
See also
LANGUAGE float
LANGUAGE double


Language
functions
variables
structure
Libraries
IoT Cloud API
Glossary
        The Arduino Reference text is licensed under a Creative Commons Attribution-Share Alike 3.0 License.

    Find anything that can be improved? Suggest corrections and new documentation via GitHub.
    Doubts on how to use Github? Learn everything you need to know in this tutorial.

Last Revision: Searching...
Last Build: 2023/06/30
Edit This Page
Reference
            >  Language
            >  Functions
            >  Trigonometry
            > Tan

tan()
          [Trigonometry]

Description
Calculates the tangent of an angle (in radians). The result will be between negative infinity and infinity.
Syntax
tan(rad)
Parameters
rad: The angle in radians. Allowed data types: float.
Returns


Parameters
rad: The angle in radians. Allowed data types: float.
Returns
The tangent of the angle. Data type: double.
See also
LANGUAGE float
LANGUAGE double


Language
functions
variables
structure
Libraries
IoT Cloud API
Glossary
        The Arduino Reference text is licensed under a Creative Commons Attribution-Share Alike 3.0 License.

    Find anything that can be improved? Suggest corrections and new documentation via GitHub.
    Doubts on how to use Github? Learn everything you need to know in this tutorial.

Last Revision: Searching...
Last Build: 2023/06/30
Edit This Page
Reference
            >  Language
            >  Functions
            >  Trigonometry
            > Sin

sin()
          [Trigonometry]

Description
Calculates the sine of an angle (in radians). The result will be between -1 and 1.
Syntax
sin(rad)
Parameters
rad: The angle in radians. Allowed data types: float.
Returns


Parameters
rad: The angle in radians. Allowed data types: float.
Returns
The sine of the angle. Data type: double.
See also
LANGUAGE float
LANGUAGE double


Sprache
Funktionen
Variablen
Struktur
Bibliotheken
IoT Cloud API
Glossar
        Der Arduino-Referenztext ist lizenziert unter der Creative Commons Attribution-Share Alike 3.0 Lizenz.

    Findest du etwas, das verbessert werden kann? Über GitHub kannst du Korrekturen und neue Dokumentation vorschlagen.
    Zweifel, wie man Github benutzt? Erfahre in diesem Tutorial alles, was du wissen musst.

Sprach-Referenz
        Die Programmiersprache von Arduino kann in drei Hauptteile unterteilt werden: Struktur, Werte (Variablen und Konstanten) und Funktionen.

Funktionen
Zum Steuern des Arduino-Boards und zur Durchführung von Berechnungen.
Digital I/O
                digitalRead()


Digital I/O
                digitalRead()

                digitalWrite()

                pinMode()

Analog I/O
                analogRead()

                analogReference()

                analogWrite()

Zero-, Due-, MKR-Familie
                analogReadResolution()

                analogWriteResolution()

Advanced I/O
                noTone()

                pulseIn()

                pulseInLong()

                shiftIn()

                shiftOut()

                tone()

Zeit
                delay()

                delayMicroseconds()

                micros()

                millis()

Mathematik
                abs()


millis()

Mathematik
                abs()

                constrain()

                map()

                max()

                min()

                pow()

                sq()

                sqrt()

Trigonometrie
                cos()

                sin()

                tan()

Zeichen
                isAlpha()

                isAlphaNumeric()

                isAscii()

                isControl()

                isDigit()

                isGraph()

                isHexadecimalDigit()

                isLowerCase()

                isPrintable()

                isPunct()


isPrintable()

                isPunct()

                isSpace()

                isUpperCase()

                isWhitespace()

Zufallszahlen
                random()

                randomSeed()

Bits und Bytes
                bit()

                bitClear()

                bitRead()

                bitSet()

                bitWrite()

                highByte()

                lowByte()

Externe Interrupts
                attachInterrupt()

                detachInterrupt()

Interrupts
                interrupts()

                noInterrupts()

Kommunikation
                Serial

                SPI


Kommunikation
                Serial

                SPI

                Stream

                Wire

USB
                Keyboard

                Mouse

Variablen
Arduino-Datentypen und -konstanten.
Konstanten
                Gleitkommazahlkonstanten

                Integer-Konstanten

HIGH | LOW
INPUT | OUTPUT | INPUT_PULLUP
LED_BUILTIN
true | false
Umwandlung
                (unsigned int)

                (unsigned long)

                byte()

                char()

                float()

                int()

                long()

                word()

Datentypen


word()

Datentypen
                array

                bool

                boolean

                byte

                char

                const

                double

                float

                int

                long

                scope

                short

                size_t

                static

                string

                String()

                unsigned char

                unsigned int

                unsigned long

                void

                volatile

                word

Variablenscope und Bezeichner
Hilfsmittel
                PROGMEM


Hilfsmittel
                PROGMEM

                sizeof()

Struktur
Die Elemente der Arduino (C++) Programmiersprache.
Sketch
                loop()

                setup()

Kontrollstruktur
                break

                continue

                do...while

                else

                for

                goto

                if

                return

                switch...case

                while

Weitere Syntax
                #define

                  (define)

                #include

                  (include)

                /* */

                  (Kommentarblock)

                //


(Kommentarblock)

                //

                  (Einzeiliger Kommentar)

                ;

                  (Semikolon)

                {}

                  (Geschweifte Klammern)

Arithmetische Operatoren
                %

                  (Modulo)

                *

                  (Multiplikation)

                +

                  (Addition)

                -

                  (Subtraktion)

                /

                  (Division)

                =

                  (Zuweisung)

Vergleichsoperatoren
                !=

                  (Ungleich)

                <


!=

                  (Ungleich)

                <

                  (Kleiner)

                <=

                  (Kleiner oder gleich)

                ==

                  (Gleich)

                >

                  (Größer)

                >=

                  (Größer oder gleich)

Boolsche Operatoren
                !

                  (Logisches NICHT)

                &&

                  (Logisches UND)

                ||

                  (Logisches ODER)

Zeiger-Operatoren
                &

                  (Referenzoperator)

                *

                  (Dereferenzoperator)


*

                  (Dereferenzoperator)

Bitweise Operatoren
                &

                  (Bitweises UND)

                <<

                  (Bitshift links)

                >>

                  (Bitshift rechts)

                ^

                  (Bitweises XOR)

                |

                  (Bitweises OR)

                ~

                  (Bitweises NICHT)

Verbundoperatoren
                %=

                  (Zusammengesetzter Rest)

                &=

                  (Zusammengesetztes Bitweises AND)

                *=

                  (Zusammengesetzte Multiplikation)


*=

                  (Zusammengesetzte Multiplikation)

                ++

                  (Inkrement)

                +=

                  (Zusammengesetzte Addition)

                --

                  (Dekrement)

                -=

                  (Zusammengesetzte Subtraktion)

                /=

                  (Zusammengesetzte Division)

                |=

                  (Zusammengesetztes Bitweises ODER)


Sprache
Funktionen
Variablen
Struktur
Bibliotheken
IoT Cloud API
Glossar
        Der Arduino-Referenztext ist lizenziert unter der Creative Commons Attribution-Share Alike 3.0 Lizenz.

    Findest du etwas, das verbessert werden kann? Über GitHub kannst du Korrekturen und neue Dokumentation vorschlagen.
    Zweifel, wie man Github benutzt? Erfahre in diesem Tutorial alles, was du wissen musst.

Last Revision: Searching...
Last Build: 2023/06/30
Bearbeite diese Seite
Reference
            >  Language
            >  Structure
            >  Further syntax
            > Include

#include
          [Further Syntax]

Beschreibung
#include wird verwendet, um externe Bibliotheken in den Sketch aufzunehmen.


#include wird verwendet, um externe Bibliotheken in den Sketch aufzunehmen.
Dadurch erhält der Programmierer Zugriff auf eine große Gruppe von Standard-C-Bibliotheken (Gruppen vorgefertigter Funktionen) sowie auf speziell für Arduino geschriebene Bibliotheken.
Die Hauptreferenzseite für AVR C-Bibliotheken (AVR ist eine Referenz auf die Atmel-Chips, auf denen der Arduino basiert) ist hier.
Beachte, dass #include, ähnlich wie #define kein Semikolon-Abschlusszeichen enthält und der Compiler bei der Eingabe kryptische Fehlermeldungen ausgibt.
Syntax
#include <LibraryFile.h>
#include "LocalFile.h"
Parameter


Syntax
#include <LibraryFile.h>
#include "LocalFile.h"
Parameter
LibraryFile.h: Wenn die Syntax der spitzen Klammern verwendet wird, werden die Bibliothekspfade nach der Datei durchsucht.
LocalFile.h: Wenn die Syntax in doppelten Anführungszeichen verwendet wird, wird der Ordner der Datei mit der Direktive #include nach der angegebenen Datei durchsucht. Anschließend wird in den Bibliothekspfaden gesucht, wenn sie nicht im lokalen Pfad gefunden wurden. Verwende diese Syntax für Header-Dateien im Ordner des Sketches.
Beispielcode
Dieses Beispiel enthält die Servobibliothek, sodass ihre Funktionen zur Steuerung eines Servomotors verwendet werden können.
#include <Servo.h>


#include <Servo.h>
Servo myservo;  // Servoobjekt erstellen, um einen Servomotor zu steuern
void setup() {
  myservo.attach(9);  // Bindet den Servomotor an Pin 9 an das Servoobjekt
}
void loop() {
  for (int pos = 0; pos <= 180; pos += 1) { // Geht von 0 Grad bis 180 Grad
    // in 1 Grad-Stufen
    myservo.write(pos);              // Servo anweisen, in Position von Variable 'pos' zu gehen
    delay(15);                       // Wartet 15ms, bis der Servomotor die Position erreicht hat
  }
  for (int pos = 180; pos >= 0; pos -= 1) { // Geht von 180 Grad bis 0 Grad


myservo.write(pos);              // Servo anweisen, in Position von Variable 'pos' zu gehen
    delay(15);                       // Wartet 15ms, bis der Servomotor die Position erreicht hat
  }
}
Siehe auch


Sprache
Funktionen
Variablen
Struktur
Bibliotheken
IoT Cloud API
Glossar
        Der Arduino-Referenztext ist lizenziert unter der Creative Commons Attribution-Share Alike 3.0 Lizenz.

    Findest du etwas, das verbessert werden kann? Über GitHub kannst du Korrekturen und neue Dokumentation vorschlagen.
    Zweifel, wie man Github benutzt? Erfahre in diesem Tutorial alles, was du wissen musst.

Last Revision: Searching...
Last Build: 2023/06/30
Bearbeite diese Seite
Reference
            >  Language
            >  Structure
            >  Further syntax
            > Define

#define
          [Further Syntax]

Beschreibung


> Define

#define
          [Further Syntax]

Beschreibung
#define ist eine nützliche C ++ - Komponente, mit der der Programmierer einem konstanten Wert einen Namen geben kann, bevor das Programm kompiliert wird.
Definierte Konstanten in Arduino belegen keinen Programmspeicherplatz auf dem Chip.
Der Compiler ersetzt zur Kompilierzeit Verweise auf diese Konstanten durch den definierten Wert.
Dies kann jedoch einige unerwünschte Nebenwirkungen haben, wenn zum Beispiel ein konstanter Name, der #defined wurde, in einer anderen Konstanten- oder Variablenname enthalten ist.
In diesem Fall würde der Text durch die #definierte Nummer (oder den Text) ersetzt.


Generell sollte das const-Schlüsselwort für die Definition von Konstanten bevorzugt und anstelle von #define verwendet werden.
Syntax
#define Konstantenname Wert
Parameter
Konstantenname: Der Name des zu definierenden Makros.
Wert: Der Wert, der dem Makro zugewiesen werden soll.
Beispielcode
#define ledPin 3
// Der Compiler ersetzt alle Erwähnungen von ledPin zur Kompilierzeit durch den Wert 3.
Anmerkungen und Warnungen
Es gibt kein Semikolon nach der Anweisung #define. Wenn eines hinzufügt wird, so wirft der Compiler weiter unten auf der Seite kryptische Fehler aus.
#define ledPin 3;    // Das ist ein Fehler


#define ledPin 3;    // Das ist ein Fehler
Wenn ein Gleichheitszeichen nach der Anweisung #define einfügt wird, wird ebenfalls ein kryptischer Compiler-Fehler weiter unten auf der Seite generiert.
#define ledPin = 3  // Das ist auch ein Fehler
Siehe auch
SPRACHE const
SPRACHE Konstanten


Sprache
Funktionen
Variablen
Struktur
Bibliotheken
IoT Cloud API
Glossar
        Der Arduino-Referenztext ist lizenziert unter der Creative Commons Attribution-Share Alike 3.0 Lizenz.

    Findest du etwas, das verbessert werden kann? Über GitHub kannst du Korrekturen und neue Dokumentation vorschlagen.
    Zweifel, wie man Github benutzt? Erfahre in diesem Tutorial alles, was du wissen musst.

Last Revision: Searching...
Last Build: 2023/06/30
Bearbeite diese Seite
Reference
            >  Language
            >  Structure
            >  Further syntax
            > Blockcomment

/* */
          [Further Syntax]

Beschreibung


/* */
          [Further Syntax]

Beschreibung
Kommentare sind Zeilen im Programm, die dazu dienen, sich oder andere über die Funktionsweise des Programms zu informieren.
Sie werden vom Compiler ignoriert und nicht in den Prozessor exportiert, sodass sie keinen Platz im Flash-Speicher des Mikrocontrollers beanspruchen.
Der einzige Zweck von Kommentaren besteht darin, zu helfen (zu verstehen oder sich daran zu erinnern) oder andere über die Funktionsweise des Programms zu informieren.
Der Anfang eines Blockkommentars oder eines mehrzeiligen Kommentars ist mit dem Symbol /* gekennzeichnet und das Symbol */ markiert sein Ende.


Diese Art von Kommentar wird aufgerufen, da sich dieser über mehrere Zeilen erstrecken kann. Sobald der Compiler das /* liest, ignoriert er alles, was folgt, bis er ein */ findet.
Beispielcode
/* Dies ist ein gültiger Kommentar */
/*
  Blink
  Schaltet eine LED für eine Sekunde ein und dann für eine Sekunde wiederholt aus.
  Dieser Beispielcode ist im öffentlichen Bereich.
  (Ein weiterer gültiger Kommentar)
*/
/*
  if (gwb == 0) {   // Ein einzeiliger Kommentar ist in einem mehrzeiligen Kommentar in Ordnung
    x = 3;           /* aber kein weiterer mehrzeiliger Kommentar - das ist ungültig */
  }


}
// Vergiss nicht den abschließenden Kommentar - Die Klammern müssen zusammenpassen!
*/
Anmerkungen und Warnungen
Beim Experimentieren mit Code ist das Herauskommentieren von Programmteilen eine bequeme Möglichkeit, fehlerhafte Zeilen zu entfernen.
Dadurch bleiben die Zeilen im Code erhalten, werden jedoch in Kommentare umgewandelt, sodass der Compiler sie einfach ignoriert.
Dies kann besonders nützlich sein, wenn du versuchst, ein Problem zu finden, oder wenn ein Programm die Kompilierung ablehnt und
der Compilerfehler kryptisch oder nicht hilfreich ist.
Siehe auch


Sprache
Funktionen
Variablen
Struktur
Bibliotheken
IoT Cloud API
Glossar
        Der Arduino-Referenztext ist lizenziert unter der Creative Commons Attribution-Share Alike 3.0 Lizenz.

    Findest du etwas, das verbessert werden kann? Über GitHub kannst du Korrekturen und neue Dokumentation vorschlagen.
    Zweifel, wie man Github benutzt? Erfahre in diesem Tutorial alles, was du wissen musst.

Last Revision: Searching...
Last Build: 2023/06/30
Bearbeite diese Seite
Reference
            >  Language
            >  Structure
            >  Further syntax
            > Curlybraces

{}
          [Further Syntax]

Beschreibung


{}
          [Further Syntax]

Beschreibung
Geschweifte Klammern (auch als "geschweifte Klammern" oder "geschweifte Klammern" bezeichnet) sind ein Hauptbestandteil der Programmiersprache C ++.
Sie werden in mehreren verschiedenen Konstrukten verwendet (siehe unten), was für Anfänger manchmal verwirrend sein kann.
Auf eine öffnende geschweifte Klammer { muss immer eine schließende geschweifte Klammer } folgen.
Dies ist eine Bedingung, die oft als ausgeglichene Klammern bezeichnet wird.
Die Arduino IDE (Integrated Development Environment) enthält eine praktische Funktion zum Überprüfen des Gleichgewichts von geschweiften Klammern.


Wähle einfach eine geschweifte Klammer aus oder klicke auf die Einfügemarke unmittelbar nach einer geschweiften Klammer. Der logische Begleiter wird hervorgehoben.
Anfänger und Programmierer, die aus der BASIC-Sprache zu C ++ kommen, finden Klammern oft verwirrend oder abschreckend.
Letztendlich aber, ersetzen dieselben geschweiften Klammern die RETURN-Anweisung in einer Subroutine (Funktion), die ENDIF-Anweisung in einer Bedingung und die NEXT-Anweisung in einer FOR-Schleife.
Unausgeglichene geschweifte Klammern können oft zu kryptischen, undurchdringlichen Compiler-Fehlern führen, die in einem großen Programm manchmal schwer zu finden sind.


Aufgrund ihrer unterschiedlichen Verwendungsmöglichkeiten sind Klammern auch für die Syntax eines Programms unglaublich wichtig.
Wenn du eine oder zwei Zeilen einer Klammer verschiebst, hat dies oft einen dramatischen Einfluss auf die Bedeutung eines Programms.
Beispielcode
Die Hauptanwendungen von geschweiften Klammern sind in den folgenden Beispielen aufgeführt.
Funktionen
void myFunction(Datentyp Argument){
  // Beliebige Anweisung(en)
}
Schleifen
while (Boolean-Ausdruck) {
   // Beliebige Anweisung(en)
}
do {
  // Beliebige Anweisung(en)
} while (Boolean-Ausdruck);
for (Initialisierung; Schlussbedingung; inkrementierender Ausdruck) {


// Beliebige Anweisung(en)
}
Bedingte Anweisungen
if (Boolean-Ausdruck) {
  // Beliebige Anweisung(en)
}
else if (Boolean-Ausdruck) {
  // Beliebige Anweisung(en)
}
else {
  // Beliebige Anweisung(en)
}
Siehe auch


Sprache
Funktionen
Variablen
Struktur
Bibliotheken
IoT Cloud API
Glossar
        Der Arduino-Referenztext ist lizenziert unter der Creative Commons Attribution-Share Alike 3.0 Lizenz.

    Findest du etwas, das verbessert werden kann? Über GitHub kannst du Korrekturen und neue Dokumentation vorschlagen.
    Zweifel, wie man Github benutzt? Erfahre in diesem Tutorial alles, was du wissen musst.

Last Revision: Searching...
Last Build: 2023/06/30
Bearbeite diese Seite
Reference
            >  Language
            >  Structure
            >  Further syntax
            > Semicolon

;
          [Further Syntax]

Beschreibung
Wird verwendet, um eine Anweisung zu beenden.
Beispielcode


Wird verwendet, um eine Anweisung zu beenden.
Beispielcode
int a = 13;
float b = 17.1;
Anmerkungen und Warnungen
Wenn du vergisst, eine Zeile in einem Semikolon zu beenden, wird ein Compiler-Fehler ausgegeben.
Der Fehlertext kann offensichtlich sein und sich auf ein fehlendes Semikolon beziehen oder nicht.Wenn ein undurchdringlicher oder
scheinbar unlogischer Compiler-Fehler auftritt, ist eines der ersten zu überprüfenden Dinge ein fehlendes Semikolon in unmittelbarer Nähe
vor der Zeile, in der sich der Compiler beschwert hat.
Siehe auch


Sprache
Funktionen
Variablen
Struktur
Bibliotheken
IoT Cloud API
Glossar
        Der Arduino-Referenztext ist lizenziert unter der Creative Commons Attribution-Share Alike 3.0 Lizenz.

    Findest du etwas, das verbessert werden kann? Über GitHub kannst du Korrekturen und neue Dokumentation vorschlagen.
    Zweifel, wie man Github benutzt? Erfahre in diesem Tutorial alles, was du wissen musst.

Last Revision: Searching...
Last Build: 2023/06/30
Bearbeite diese Seite
Reference
            >  Language
            >  Structure
            >  Further syntax
            > Singlelinecomment

//
          [Further Syntax]

Beschreibung


//
          [Further Syntax]

Beschreibung
Kommentare sind Zeilen im Programm, die dazu dienen, sich oder andere über die Funktionsweise des Programms zu informieren.
Sie werden vom Compiler ignoriert und nicht in den Prozessor exportiert, sodass sie keinen Platz im Flash-Speicher des Mikrocontrollers beanspruchen.
Der einzige Zweck von Kommentaren besteht darin, zu helfen (zu verstehen oder sich daran zu erinnern) oder andere über die Funktionsweise des Programms zu informieren.
Ein einzeiliger Kommentar beginnt mit // (zwei nebeneinanderliegende Schrägstriche).
Dieser Kommentar endet automatisch am Ende einer Zeile. Alles, was bis zum Ende einer Zeile auf // folgt, wird vom Compiler ignoriert.
Beispielcode


Beispielcode
Es gibt zwei Möglichkeiten, eine Zeile als Kommentar zu kennzeichnen:
// An Pin 13 ist an den meisten Arduino-Boards eine LED angeschlossen.
int led = 13;
digitalWrite(led, HIGH); // LED einschalten (HIGH ist der Spannungspegel)
Anmerkungen und Warnungen
Beim Experimentieren mit Code ist das Herauskommentieren von Programmteilen eine bequeme Möglichkeit, fehlerhafte Zeilen zu entfernen.
Dadurch bleiben die Zeilen im Code erhalten, werden jedoch in Kommentare umgewandelt, sodass der Compiler sie einfach ignoriert.
Dies kann besonders nützlich sein, wenn Sie versuchen, ein Problem zu finden, oder wenn ein Programm die Kompilierung ablehnt und der Compilerfehler kryptisch oder nicht hilfreich ist.
Siehe auch


Sprache
Funktionen
Variablen
Struktur
Bibliotheken
IoT Cloud API
Glossar
        Der Arduino-Referenztext ist lizenziert unter der Creative Commons Attribution-Share Alike 3.0 Lizenz.

    Findest du etwas, das verbessert werden kann? Über GitHub kannst du Korrekturen und neue Dokumentation vorschlagen.
    Zweifel, wie man Github benutzt? Erfahre in diesem Tutorial alles, was du wissen musst.

Last Revision: Searching...
Last Build: 2023/06/30
Bearbeite diese Seite
Reference
            >  Language
            >  Structure
            >  Comparison operators
            > Lessthanorequalto

<=
          [Comparison Operators]

Beschreibung


<=
          [Comparison Operators]

Beschreibung
Vergleicht die linke Variable mit dem Wert oder der Variablen rechts vom Operator. Gibt true zurück, wenn der Operand links kleiner oder gleich dem Operanden rechts ist.
Syntax
x ⇐ y;   // Ist true, wenn x kleiner oder gleich y ist und false, wenn x größer als y ist
Parameter
x: Variable. Erlaubte Datentypen: int, float, double, byte, short, long.
y: Variable oder Konstante. Erlaubte Datentypen: int, float, double, byte, short, long.
Beispielcode
if (x <= y) { // Prüft, ob x kleiner oder gleich y ist
  // Tue etwas nur dann, wenn das Vergleichsergebnis wahr ist
}
Anmerkungen und Warnungen


}
Anmerkungen und Warnungen
Negative Zahlen sind kleiner als positive Zahlen.
Siehe auch


Sprache
Funktionen
Variablen
Struktur
Bibliotheken
IoT Cloud API
Glossar
        Der Arduino-Referenztext ist lizenziert unter der Creative Commons Attribution-Share Alike 3.0 Lizenz.

    Findest du etwas, das verbessert werden kann? Über GitHub kannst du Korrekturen und neue Dokumentation vorschlagen.
    Zweifel, wie man Github benutzt? Erfahre in diesem Tutorial alles, was du wissen musst.

Last Revision: Searching...
Last Build: 2023/06/30
Bearbeite diese Seite
Reference
            >  Language
            >  Structure
            >  Comparison operators
            > Lessthan

<
          [Comparison Operators]

Beschreibung


<
          [Comparison Operators]

Beschreibung
Vergleicht die linke Variable mit dem Wert oder der Variablen rechts vom Operator. Gibt true zurück, wenn der Operand links kleiner als der Operand rechts ist.
Syntax
x < y; // Ist true, wenn x kleiner als y ist und false, wenn x gleich oder größer als y ist
Parameter
x: Variable. Erlaubte Datentypen: int, float, double, byte, short, long.
y: Variable oder Konstante. Erlaubte Datentypen: int, float, double, byte, short, long.
Beispielcode
if (x < y) {  // Prüft, ob x kleiner als y ist
  // Tue etwas nur dann, wenn das Vergleichsergebnis wahr istue
}
Anmerkungen und Warnungen


Sprache
Funktionen
Variablen
Struktur
Bibliotheken
IoT Cloud API
Glossar
        Der Arduino-Referenztext ist lizenziert unter der Creative Commons Attribution-Share Alike 3.0 Lizenz.

    Findest du etwas, das verbessert werden kann? Über GitHub kannst du Korrekturen und neue Dokumentation vorschlagen.
    Zweifel, wie man Github benutzt? Erfahre in diesem Tutorial alles, was du wissen musst.

Last Revision: Searching...
Last Build: 2023/06/30
Bearbeite diese Seite
Reference
            >  Language
            >  Structure
            >  Comparison operators
            > Equalto

==
          [Comparison Operators]

Beschreibung


==
          [Comparison Operators]

Beschreibung
Vergleicht die linke Variable mit dem Wert oder der Variablen rechts vom Operator. Gibt true zurück, wenn die beiden Operanden gleich sind.
Syntax
x == y; // Ist true, wenn x gleich y ist und false, wenn x nicht gleich y ist
Parameter
x: Variable. Erlaubte Datentypen: int, float, double, byte, short, long.
y: Variable oder Konstante. Erlaubte Datentypen: int, float, double, byte, short, long.
Beispielcode
if (x == y) { // Prüft, ob x gleich y ist
  // Tue etwas nur dann, wenn das Vergleichsergebnis wahr ist
}
Siehe auch


Sprache
Funktionen
Variablen
Struktur
Bibliotheken
IoT Cloud API
Glossar
        Der Arduino-Referenztext ist lizenziert unter der Creative Commons Attribution-Share Alike 3.0 Lizenz.

    Findest du etwas, das verbessert werden kann? Über GitHub kannst du Korrekturen und neue Dokumentation vorschlagen.
    Zweifel, wie man Github benutzt? Erfahre in diesem Tutorial alles, was du wissen musst.

Last Revision: Searching...
Last Build: 2023/06/30
Bearbeite diese Seite
Reference
            >  Language
            >  Structure
            >  Comparison operators
            > Greaterthan

>
          [Comparison Operators]

Beschreibung


>
          [Comparison Operators]

Beschreibung
Vergleicht die linke Variable mit dem Wert oder der Variablen rechts vom Operator. Gibt true zurück, wenn der linke Operand größer ist als der rechte Operand.
Syntax
x > y // Ist true, wenn x größer als y ist und ist false, wenn x kleiner oder gleich y ist
Parameter
x: Variable. Erlaubte Datentypen: int, float, double, byte, short, long.
y: Variable oder Konstante. Erlaubte Datentypen: int, float, double, byte, short, long.
Beispielcode
if (x > y) {  // Prüft, ob x größer als y ist
  // Tue etwas nur dann, wenn das Vergleichsergebnis wahr ist
}
Anmerkungen und Warnungen


}
Anmerkungen und Warnungen
Positive Zahlen sind größer als negative Zahlen.
Siehe auch


Sprache
Funktionen
Variablen
Struktur
Bibliotheken
IoT Cloud API
Glossar
        Der Arduino-Referenztext ist lizenziert unter der Creative Commons Attribution-Share Alike 3.0 Lizenz.

    Findest du etwas, das verbessert werden kann? Über GitHub kannst du Korrekturen und neue Dokumentation vorschlagen.
    Zweifel, wie man Github benutzt? Erfahre in diesem Tutorial alles, was du wissen musst.

Last Revision: Searching...
Last Build: 2023/06/30
Bearbeite diese Seite
Reference
            >  Language
            >  Structure
            >  Comparison operators
            > Greaterthanorequalto

>=
          [Comparison Operators]

Beschreibung


>=
          [Comparison Operators]

Beschreibung
Vergleicht die linke Variable mit dem Wert oder der Variablen rechts vom Operator. Gibt true zurück, wenn der Operand links größer als oder gleich dem Operanden rechts ist.
Syntax
x >= y; // Ist true, wenn x größer als oder gleich y ist und false, wenn x kleiner als y ist
Parameter
x: Variable. Erlaubte Datentypen: int, float, double, byte, short, long.
y: Variable oder Konstante. Erlaubte Datentypen: int, float, double, byte, short, long.
Beispielcode
if (x >= y) { // Prüft, ob x größer als oder gleich y ist
  // Tue etwas nur dann, wenn das Vergleichsergebnis wahr ist
}
Anmerkungen und Warnungen


Sprache
Funktionen
Variablen
Struktur
Bibliotheken
IoT Cloud API
Glossar
        Der Arduino-Referenztext ist lizenziert unter der Creative Commons Attribution-Share Alike 3.0 Lizenz.

    Findest du etwas, das verbessert werden kann? Über GitHub kannst du Korrekturen und neue Dokumentation vorschlagen.
    Zweifel, wie man Github benutzt? Erfahre in diesem Tutorial alles, was du wissen musst.

Last Revision: Searching...
Last Build: 2023/06/30
Bearbeite diese Seite
Reference
            >  Language
            >  Structure
            >  Comparison operators
            > Notequalto

!=
          [Comparison Operators]

Beschreibung


!=
          [Comparison Operators]

Beschreibung
Vergleicht die linke Variable mit dem Wert oder der Variablen rechts vom Operator. Gibt true zurück, wenn die beiden Operanden nicht gleich sind.
Syntax
x != y; // Ist false, wenn x gleich y ist und true, wenn x nicht gleich y ist
Parameter
x: Variable. Erlaubte Datentypen: int, float, double, byte, short, long.
y: Variable oder Konstante. Erlaubte Datentypen: int, float, double, byte, short, long.
Beispielcode
if (x != y) { / Prüft, ob x nicht gleich y ist
  // Tue etwas nur dann, wenn das Vergleichsergebnis wahr ist
}
Siehe auch


Sprache
Funktionen
Variablen
Struktur
Bibliotheken
IoT Cloud API
Glossar
        Der Arduino-Referenztext ist lizenziert unter der Creative Commons Attribution-Share Alike 3.0 Lizenz.

    Findest du etwas, das verbessert werden kann? Über GitHub kannst du Korrekturen und neue Dokumentation vorschlagen.
    Zweifel, wie man Github benutzt? Erfahre in diesem Tutorial alles, was du wissen musst.

Last Revision: Searching...
Last Build: 2023/06/30
Bearbeite diese Seite
Reference
            >  Language
            >  Structure
            >  Pointer access operators
            > Dereference

*
          [Pointer Access Operators]

Beschreibung


*
          [Pointer Access Operators]

Beschreibung
Dereferenzierung ist eines der Features, bei denen Zeiger benötigt werden. Der Operator * wird dafür verwendet.
Wenn p ein Zeiger ist, dann ist *p der Wert, der in der Adresse enthalten ist, auf die p zeigt.
Beispielcode
Der Code zeigt ein kleines Rechenbeispiel zur Verwendung von Zeigern.
int *p;       // Definiere einen Zeiger als Integerdatentyp
int i = 5;
int result = 0; // Initialisiere 'i' mit 5 und 'result' mit 0
p = &i;       // 'p' enthält nun die Adress von 'i'
result = *p;  // 'result' erhält nun den Wert, der an der Adress von 'i' steht


// 'result' ist also 5
Anmerkungen und Warnungen
Zeiger sind eines der komplexesten Themen für Anfänger beim Lernen von C. Es ist aber möglich, den Großteil der Arduino-Sketches ohne eine
einzige Verwendung von Zeigern zu schreiben. Zur Verwendung einiger Datenstrukturen sind Pointer aber unersätzlich und bieten eine starke
Vereinfachung des Codes an.
Siehe auch
DEFINITION Pointers


Sprache
Funktionen
Variablen
Struktur
Bibliotheken
IoT Cloud API
Glossar
        Der Arduino-Referenztext ist lizenziert unter der Creative Commons Attribution-Share Alike 3.0 Lizenz.

    Findest du etwas, das verbessert werden kann? Über GitHub kannst du Korrekturen und neue Dokumentation vorschlagen.
    Zweifel, wie man Github benutzt? Erfahre in diesem Tutorial alles, was du wissen musst.

Last Revision: Searching...
Last Build: 2023/06/30
Bearbeite diese Seite
Reference
            >  Language
            >  Structure
            >  Pointer access operators
            > Reference

&
          [Pointer Access Operators]

Beschreibung


&
          [Pointer Access Operators]

Beschreibung
Referenzierung ist eines der Features, bei denen Zeiger benötigt werden. Der Operator & wird dafür verwendet.
Wenn x eine Variable ist, dann ist &x die Adresse der Variable x.
Beispielcode
Der Code zeigt ein kleines Rechenbeispiel zur Verwendung von Zeigern.
int *p;       // Definiere einen Zeiger als Integerdatentyp
int i = 5;
int result = 0; // Initialisiere 'i' mit 5 und 'result' mit 0
p = &i;       // 'p' enthält nun die Adress von 'i'
result = *p;  // 'result' erhält nun den Wert, der an der Adress von 'i' steht
              // 'result' ist also 5
Anmerkungen und Warnungen


Sprache
Funktionen
Variablen
Struktur
Bibliotheken
IoT Cloud API
Glossar
        Der Arduino-Referenztext ist lizenziert unter der Creative Commons Attribution-Share Alike 3.0 Lizenz.

    Findest du etwas, das verbessert werden kann? Über GitHub kannst du Korrekturen und neue Dokumentation vorschlagen.
    Zweifel, wie man Github benutzt? Erfahre in diesem Tutorial alles, was du wissen musst.

Last Revision: Searching...
Last Build: 2023/06/30
Bearbeite diese Seite
Reference
            >  Language
            >  Structure
            >  Compound operators
            > Compounddivision

/=
          [Compound Operators]

Beschreibung


/=
          [Compound Operators]

Beschreibung
Dies ist eine praktische Abkürzung, um die Division einer Variablen mit einer anderen Konstante oder Variablen durchzuführen.
Syntax
x /= y; // Äquivalent zum Ausdruck x = x / y
Parameter
x: Variable. Erlaubte Datentypen: int, float, double, byte, short, long.
y: nicht null Variable oder Konstante. Erlaubte Datentypen: int, float, double, byte, short, long.
Beispielcode
x = 2;
x /= 2; // x enthält jetzt 1
Siehe auch
SPRACHE Normale Division


Sprache
Funktionen
Variablen
Struktur
Bibliotheken
IoT Cloud API
Glossar
        Der Arduino-Referenztext ist lizenziert unter der Creative Commons Attribution-Share Alike 3.0 Lizenz.

    Findest du etwas, das verbessert werden kann? Über GitHub kannst du Korrekturen und neue Dokumentation vorschlagen.
    Zweifel, wie man Github benutzt? Erfahre in diesem Tutorial alles, was du wissen musst.

Last Revision: Searching...
Last Build: 2023/06/30
Bearbeite diese Seite
Reference
            >  Language
            >  Structure
            >  Compound operators
            > Compoundmultiplication

*=
          [Compound Operators]

Beschreibung


*=
          [Compound Operators]

Beschreibung
Dies ist eine praktische Abkürzung, um eine Multiplikation einer Variablen mit einer anderen Konstanten oder Variablen durchzuführen.
Syntax
x *= y; // Äquivalent zum Ausdruck x = x * y
Parameter
x: Variable. Erlaubte Datentypen: int, float, double, byte, short, long.
y: Variable oder Konstante. Erlaubte Datentypen: int, float, double, byte, short, long.
Beispielcode
x = 2;
x *= 2; // x enthält jetzt 4
Siehe auch
SPRACHE Normale Multiplikation


Sprache
Funktionen
Variablen
Struktur
Bibliotheken
IoT Cloud API
Glossar
        Der Arduino-Referenztext ist lizenziert unter der Creative Commons Attribution-Share Alike 3.0 Lizenz.

    Findest du etwas, das verbessert werden kann? Über GitHub kannst du Korrekturen und neue Dokumentation vorschlagen.
    Zweifel, wie man Github benutzt? Erfahre in diesem Tutorial alles, was du wissen musst.

Last Revision: Searching...
Last Build: 2023/06/30
Bearbeite diese Seite
Reference
            >  Language
            >  Structure
            >  Compound operators
            > Compoundremainder

%=
          [Compound Operators]

Beschreibung


%=
          [Compound Operators]

Beschreibung
Dies ist eine praktische Abkürzung, um den Rest zu berechnen, wenn eine ganze Zahl durch eine andere geteilt wird.
Syntax
x %= divisor; // Äquivalent zum Ausdruck x = x% divisor
Parameter
x: Variable. Erlaubte Datentypen: int.
divisor: nicht null Variable oder Konstante. Erlaubte Datentypen: int.
Beispielcode
int x = 7;
x %= 5; // x enthält jetzt 2
Anmerkungen und Warnungen
Der zusammengsetzte Rest-Operator funktioniert nicht mit floats.
Wenn der erste Operand negativ ist, ist das Ergebnis negativ (oder null).


Wenn der erste Operand negativ ist, ist das Ergebnis negativ (oder null).
Daher ist das Ergebnis von x% = 10 nicht immer zwischen 0 und 9, wenn x negativ sein kann.
Siehe auch
SPRACHE Rest


Sprache
Funktionen
Variablen
Struktur
Bibliotheken
IoT Cloud API
Glossar
        Der Arduino-Referenztext ist lizenziert unter der Creative Commons Attribution-Share Alike 3.0 Lizenz.

    Findest du etwas, das verbessert werden kann? Über GitHub kannst du Korrekturen und neue Dokumentation vorschlagen.
    Zweifel, wie man Github benutzt? Erfahre in diesem Tutorial alles, was du wissen musst.

Last Revision: Searching...
Last Build: 2023/06/30
Bearbeite diese Seite
Reference
            >  Language
            >  Structure
            >  Compound operators
            > Compoundbitwiseor

|=
          [Compound Operators]

Beschreibung


|=
          [Compound Operators]

Beschreibung
Der zusammengesetzte bitweise OR-Operator | = wird häufig mit einer Variablen und einer Konstante verwendet, um bestimmte Bits in einer Variablen "zu setzen" (auf 1 zu setzen).
Ein Überblick über den bitweisen OR | Operator:
0  0  1  1    operand1
0  1  0  1    operand2
----------
0  1  1  1    (operand1 | operand2) - Ergebnis
Syntax
x |= y;   // Äquivalent zu x = x | y
Parameter
x: Variable. Erlaubte Datentypen: char, int, long.
y: Variable oder Konstante. Erlaubte Datentypen: char, int, long.
Beispielcode


Beispielcode
Bits, die "bitweise verODERt" mit 0 sind, bleiben unverändert, wenn myByte eine Byte-Variable ist:
myByte | B00000000 = myByte;
Bits, die "bitweise verODERt" mit 1 sind, werden auf 1 gesetzt:
myByte | B11111111 = B11111111;
Anmerkungen und Warnungen
Da es sich um einen bitweisen Operator handelt, ist es sinnvoll, den binären Formatierer mit Konstanten zu verwenden.
Die Zahlen haben in anderen Darstellungen immer noch den gleichen Wert, sie sind einfach nicht so leicht zu verstehen.
Außerdem wird B00000000 zur Verdeutlichung gezeigt, aber Null in einem beliebigen Zahlenformat ist Null.


Um die Bits 0 und 1 einer Variablen zu setzen, während der Rest der Variablen unverändert bleibt,
verwende den zusammengesetzten bitweisen OR-Operator (| =) mit der Konstanten B00000011
1  0  1  0  1  0  1  0    Variable
0  0  0  0  0  0  1  1    Maske
----------------------
1  0  1  0  1  0  1  1
Bits unverändert
                 Bits gesetzt
Hier ist die gleiche Darstellung mit den Variablenbits durch das Symbol x ersetzt
x  x  x  x  x  x  x  x    Variable


x  x  x  x  x  x  x  x    Variable
0  0  0  0  0  0  1  1    Maske
----------------------
x  x  x  x  x  x  1  1
Bits unverändert
                 Bits gesetzt
Also ergibt:
myByte =  B10101010;
myByte |= B00000011 == B10101011;
Siehe auch
SPRACHE & Bitweises OR


Sprache
Funktionen
Variablen
Struktur
Bibliotheken
IoT Cloud API
Glossar
        Der Arduino-Referenztext ist lizenziert unter der Creative Commons Attribution-Share Alike 3.0 Lizenz.

    Findest du etwas, das verbessert werden kann? Über GitHub kannst du Korrekturen und neue Dokumentation vorschlagen.
    Zweifel, wie man Github benutzt? Erfahre in diesem Tutorial alles, was du wissen musst.

Last Revision: Searching...
Last Build: 2023/06/30
Bearbeite diese Seite
Reference
            >  Language
            >  Structure
            >  Compound operators
            > Compoundbitwiseand

&=
          [Compound Operators]

Beschreibung


&=
          [Compound Operators]

Beschreibung
Der zusammengesetzte bitweise AND-Operator & = wird häufig mit einer Variablen und einer Konstanten verwendet, um bestimmte Bits in einer Variablen in den Zustand LOW (auf 0) zu bringen.
Dies wird in Programmierhandbüchern oft als "Löschen" oder "Zurücksetzen" der Bits bezeichnet.
Ein Überblick über den bitweisen AND & Operator:
0  0  1  1    operand1
0  1  0  1    operand2
----------
0  0  0  1    (operand1 & operand2) - Ergebnis
Syntax
x &= y; // Äquivalent zu x = x & y
Parameter


Syntax
x &= y; // Äquivalent zu x = x & y
Parameter
x: Variable. Erlaubte Datentypen: char, int, long.
y: Variable oder Konstante. Erlaubte Datentypen: char, int, long.
Beispielcode
Bits, die "bitweise verUNDet" mit 0 sind, werden auf 0 zurückgesetzt, wenn myByte eine Byte-Variable ist:
myByte & B00000000 = 0;
Bits die "bitweise verUNDet" mit 1 sind, werden nicht verändert:
myByte & B11111111 = myByte;
Anmerkungen und Warnungen
Da es sich um einen bitweisen Operator handelt, ist es sinnvoll, den binären Formatierer mit Konstanten zu verwenden.


Die Zahlen haben in anderen Darstellungen immer noch den gleichen Wert, sie sind einfach nicht so leicht zu verstehen.
Außerdem wird B00000000 zur Verdeutlichung gezeigt, aber Null in einem beliebigen Zahlenformat ist Null.
Um die Bits 0 & 1 einer Variablen zu löschen (auf Null zu setzen), während der Rest der Variablen unverändert bleibt,
verwende den zusammengesetzten bitweisen AND-Operator (& =) mit der Konstanten B11111100
1  0  1  0  1  0  1  0    Variable
1  1  1  1  1  1  0  0    Maske
----------------------
1  0  1  0  1  0  0  0


Bits unverändert
                 Bits gelöscht
Hier ist die gleiche Darstellung, wobei die Bits der Variablen durch das Symbol x ersetzt werden
x  x  x  x  x  x  x  x    Variable
1  1  1  1  1  1  0  0    Maske
----------------------
x  x  x  x  x  x  0  0
Bits unverändert
                 Bits gelöscht
Also ergibt:
myByte =  B10101010;
myByte &= B11111100; // Ergibt B10101000
Siehe auch
SPRACHE & Bitweises AND


Sprache
Funktionen
Variablen
Struktur
Bibliotheken
IoT Cloud API
Glossar
        Der Arduino-Referenztext ist lizenziert unter der Creative Commons Attribution-Share Alike 3.0 Lizenz.

    Findest du etwas, das verbessert werden kann? Über GitHub kannst du Korrekturen und neue Dokumentation vorschlagen.
    Zweifel, wie man Github benutzt? Erfahre in diesem Tutorial alles, was du wissen musst.

Last Revision: Searching...
Last Build: 2023/06/30
Bearbeite diese Seite
Reference
            >  Language
            >  Structure
            >  Compound operators
            > Increment

++
          [Compound Operators]

Beschreibung
Erhöht den Wert einer Variablen um 1.
Syntax


Erhöht den Wert einer Variablen um 1.
Syntax
x++; // x um eins erhöhen und den alten Wert von x zurückgeben
++x; // x um eins erhöhen und den neuen Wert von x zurückgeben
Parameter
x: Variable. Erlaubte Datentypen: int, long (vermutlich unsigned).
Rückgabewert
Den ursprünglichen oder den neu inkrementierten Wert der Variablen.
Beispielcode
x = 2;
y = ++x; // x enthält jetzt 3, y enthält 3
y = x++; // x enthält 4, aber y enthält noch 3
Siehe auch


Sprache
Funktionen
Variablen
Struktur
Bibliotheken
IoT Cloud API
Glossar
        Der Arduino-Referenztext ist lizenziert unter der Creative Commons Attribution-Share Alike 3.0 Lizenz.

    Findest du etwas, das verbessert werden kann? Über GitHub kannst du Korrekturen und neue Dokumentation vorschlagen.
    Zweifel, wie man Github benutzt? Erfahre in diesem Tutorial alles, was du wissen musst.

Last Revision: Searching...
Last Build: 2023/06/30
Bearbeite diese Seite
Reference
            >  Language
            >  Structure
            >  Compound operators
            > Compoundsubtraction

-=
          [Compound Operators]

Beschreibung


-=
          [Compound Operators]

Beschreibung
Dies ist eine praktische Abkürzung, um eine Konstante oder eine Variable von einer Variablen abzuziehen.
Syntax
x -= y; // Äquivalent zum Ausdruck x = x - y
Parameter
x: Variable. Erlaubte Datentypen: int, float, double, byte, short, long.
y: Variable oder Konstante. Erlaubte Datentypen: int, float, double, byte, short, long.
Beispielcode
x = 20;
x -= 2; // x enthält jetzt 18
Siehe auch
SPRACHE Normale Subtraktion


Sprache
Funktionen
Variablen
Struktur
Bibliotheken
IoT Cloud API
Glossar
        Der Arduino-Referenztext ist lizenziert unter der Creative Commons Attribution-Share Alike 3.0 Lizenz.

    Findest du etwas, das verbessert werden kann? Über GitHub kannst du Korrekturen und neue Dokumentation vorschlagen.
    Zweifel, wie man Github benutzt? Erfahre in diesem Tutorial alles, was du wissen musst.

Last Revision: Searching...
Last Build: 2023/06/30
Bearbeite diese Seite
Reference
            >  Language
            >  Structure
            >  Compound operators
            > Decrement

--
          [Compound Operators]

Beschreibung
Dekrementiert den Wert einer Variablen um 1.
Syntax


Dekrementiert den Wert einer Variablen um 1.
Syntax
x-- ; // Dekrementiert x um eins und gibt den alten Wert von x zurück
--x ; // Dekrementiert x um eins und gibt den neuen Wert von x zurück
Parameter
x: Variable. Erlaubte Datentypen: int, long (vermutlich unsigned).
Rückgabewert
Den ursprünglichen oder den neu dekrementierten Wert der Variablen.
Beispielcode
x = 2;
y = --x; // x enthält jetzt 1, y enthält 1
y = x--; // x enthält 0, aber y enthält noch 1
Siehe auch


Sprache
Funktionen
Variablen
Struktur
Bibliotheken
IoT Cloud API
Glossar
        Der Arduino-Referenztext ist lizenziert unter der Creative Commons Attribution-Share Alike 3.0 Lizenz.

    Findest du etwas, das verbessert werden kann? Über GitHub kannst du Korrekturen und neue Dokumentation vorschlagen.
    Zweifel, wie man Github benutzt? Erfahre in diesem Tutorial alles, was du wissen musst.

Last Revision: Searching...
Last Build: 2023/06/30
Bearbeite diese Seite
Reference
            >  Language
            >  Structure
            >  Compound operators
            > Compoundaddition

+=
          [Compound Operators]

Beschreibung


+=
          [Compound Operators]

Beschreibung
Dies ist eine praktische Abkürzung, um eine Variable mit einer anderen Konstanten oder Variablen zu addieren.
Syntax
x += y; // Äquivalent zum Ausdruck x = x + y
Parameter
x: Variable. Erlaubte Datentypen: int, float, double, byte, short, long.
y: Variable oder Konstante. Erlaubte Datentypen: int, float, double, byte, short, long.
Beispielcode
x = 2;
x += 4; // x enthält jetzt 6
Siehe auch
SPRACHE Normale Addition


Sprache
Funktionen
Variablen
Struktur
Bibliotheken
IoT Cloud API
Glossar
        Der Arduino-Referenztext ist lizenziert unter der Creative Commons Attribution-Share Alike 3.0 Lizenz.

    Findest du etwas, das verbessert werden kann? Über GitHub kannst du Korrekturen und neue Dokumentation vorschlagen.
    Zweifel, wie man Github benutzt? Erfahre in diesem Tutorial alles, was du wissen musst.

Last Revision: Searching...
Last Build: 2023/06/30
Bearbeite diese Seite
Reference
            >  Language
            >  Structure
            >  Arithmetic operators
            > Modulo

%
          [Arithmetic Operators]

Beschreibung


%
          [Arithmetic Operators]

Beschreibung
Die Operation Modulo berechnet den Rest, wenn eine ganze Zahl durch eine andere geteilt wird.
Dies ist nützlich, um eine Variable innerhalb eines bestimmten Bereichs zu halten (z. B. die Größe eines Arrays).
Das % (Prozent) -Symbol wird zur Ausführung der Modulo-Operation verwendet.
Syntax
remainder = dividend % divisor
Parameter
remainder: Variable. Erlaubte Datentypen: int, float, double.
dividend: Variable oder Konstante. Erlaubte Datentypen: int.
divisor: Nicht null Variable oder Konstante. Erlaubte Datentypen: int.
Beispielcode
int x = 0;
x = 7 % 5;    // x enthält jetzt 2


x = 7 % 5;    // x enthält jetzt 2
x = 9 % 5;    // x enthält jetzt 4
x = 5 % 5;    // x enthält jetzt 0
x = 4 % 5;    // x enthält jetzt 4
/* Aktualisieren eines Werts in einem Array durch eine Schleife */
int values[10];
int i = 0;
void setup() {}
void loop()
{
  values[i] = analogRead(0);
  i = (i + 1) % 10;   // Modulo-Operator überschreibt Variable
}
Anmerkungen und Warnungen
Der Modulo-Operator arbeitet nicht mit float-Werten.
Siehe auch


Sprache
Funktionen
Variablen
Struktur
Bibliotheken
IoT Cloud API
Glossar
        Der Arduino-Referenztext ist lizenziert unter der Creative Commons Attribution-Share Alike 3.0 Lizenz.

    Findest du etwas, das verbessert werden kann? Über GitHub kannst du Korrekturen und neue Dokumentation vorschlagen.
    Zweifel, wie man Github benutzt? Erfahre in diesem Tutorial alles, was du wissen musst.

Last Revision: Searching...
Last Build: 2023/06/30
Bearbeite diese Seite
Reference
            >  Language
            >  Structure
            >  Arithmetic operators
            > Addition

+
          [Arithmetic Operators]

Beschreibung


+
          [Arithmetic Operators]

Beschreibung
Addition ist eine der vier primären Rechenoperationen. Der Operator + (plus) bearbeitet zwei Operanden, um die Summe zu erzeugen.
Syntax
sum = operand1 + operand2
Parameter
sum: Variable. Erlaubte Datentypen: int, float, double, byte, short, long.
operand1: Variable oder Konstante. Erlaubte Datentypen: int, float, double, byte, short, long.
operand2: Variable oder Konstante. Erlaubte Datentypen: int, float, double, byte, short, long.
Beispielcode
int a = 5;
int b = 10;
int c = 0;


int b = 10;
int c = 0;
c = a + b; // Die Variable 'c' erhält einen Wert von 15, nachdem diese Anweisung ausgeführt wurde
Anmerkungen und Warnungen
Die Additionsoperation kann überlaufen, wenn das Ergebnis größer ist als das Ergebnis, das im Datentyp gespeichert werden kann (z. B. ergibt das Hinzufügen von 1 zu einer Ganzzahl mit dem Wert 32,767 den Wert -32,768).
Wenn eine der Zahlen (Operanden) vom Typ float oder vom Typ double ist, wird für die Berechnung Fließkomma-Mathematik verwendet.


Wenn die Operanden vom Datentyp float / double sind und die Variable, die die Summe speichert, eine Ganzzahl ist, wird nur die Ganzzahl gespeichert, der Bruchteil der Zahl geht verloren.
float a = 5.5
float b = 6.6;
int c = 0;
c = a + b; // Die Variable 'c' speichert nur den Wert 12 gegenüber der erwarteten Summe von 12,1
Siehe auch


Sprache
Funktionen
Variablen
Struktur
Bibliotheken
IoT Cloud API
Glossar
        Der Arduino-Referenztext ist lizenziert unter der Creative Commons Attribution-Share Alike 3.0 Lizenz.

    Findest du etwas, das verbessert werden kann? Über GitHub kannst du Korrekturen und neue Dokumentation vorschlagen.
    Zweifel, wie man Github benutzt? Erfahre in diesem Tutorial alles, was du wissen musst.

Last Revision: Searching...
Last Build: 2023/06/30
Bearbeite diese Seite
Reference
            >  Language
            >  Structure
            >  Arithmetic operators
            > Assignment

=
          [Arithmetic Operators]

Beschreibung


=
          [Arithmetic Operators]

Beschreibung
Das einfache Gleichheitszeichen = in der Programmiersprache C ++ wird als Zuweisungsoperator bezeichnet.
Es hat eine andere Bedeutung als in der Algebra, wo es eine Gleichung oder Gleichheit angibt.
Der Zuweisungsoperator weist den Mikrocontroller an, den Wert oder Ausdruck auf der rechten Seite des Gleichheitszeichens auszuwerten und in der Variablen links vom Gleichheitszeichen zu speichern.
Beispielcode
int sensVal;              // Deklarieren einer Integer-Variable mit dem Namen sensVal
sensVal = analogRead(0);  // Speichern der (digitalisierten) Eingangsspannung am Analogpin 0 in sensVal
Anmerkungen und Warnungen


Anmerkungen und Warnungen
Die Variable auf der linken Seite des Zuweisungsoperators (=-Zeichen) muss den darin gespeicherten Wert enthalten können. Wenn er nicht groß genug ist, um einen Wert zu speichern, ist der in der Variablen gespeicherte Wert falsch.
Verwechsele den Zuweisungsoperator = (einfaches Gleichheitszeichen) nicht mit dem Vergleichsoperator == (doppelte Gleichheitszeichen), der bewertet, ob zwei Ausdrücke gleich sind.
Siehe auch
SPRACHE if (conditional operators)
SPRACHE char
SPRACHE int
SPRACHE long


Sprache
Funktionen
Variablen
Struktur
Bibliotheken
IoT Cloud API
Glossar
        Der Arduino-Referenztext ist lizenziert unter der Creative Commons Attribution-Share Alike 3.0 Lizenz.

    Findest du etwas, das verbessert werden kann? Über GitHub kannst du Korrekturen und neue Dokumentation vorschlagen.
    Zweifel, wie man Github benutzt? Erfahre in diesem Tutorial alles, was du wissen musst.

Last Revision: Searching...
Last Build: 2023/06/30
Bearbeite diese Seite
Reference
            >  Language
            >  Structure
            >  Arithmetic operators
            > Division

/
          [Arithmetic Operators]

Beschreibung


/
          [Arithmetic Operators]

Beschreibung
Division ist eine der vier primären Rechenoperationen. Der Operator / (Schrägstrich) bearbeitet zwei Operanden, um das Ergebnis zu erzeugen.
Syntax
result = numerator / denominator
Parameter
result: Variable. Erlaubte Datentypen: int, float, double, byte, short, long.
numerator: Variable oder Konstante. Erlaubte Datentypen: int, float, double, byte, short, long.
denominator: Nicht null Variable oder Konstante. Erlaubte Datentypen: int, float, double, byte, short, long.
Beispielcode
int a = 50;
int b = 10;
int c = 0;


int b = 10;
int c = 0;
c = a / b; // Die Variable 'c' erhält einen Wert von 5, nachdem diese Anweisung ausgeführt wurde
Anmerkungen und Warnungen
Wenn eine der Zahlen (Operanden) vom Typ float oder vom Typ double ist, wird für die Berechnung Fließkomma-Mathematik verwendet.
Wenn die Operanden vom Datentyp float / double sind und die Variable, die das Ergebnis speichert, eine Ganzzahl ist, wird nur die Ganzzahl gespeichert und der Bruchteil der Zahl geht verloren.
float a = 55.5;
float b = 6.6;
int c = 0;
c = a / b; // Die Variable 'c' speichert nur den Wert 8 im Gegensatz zum erwarteten Ergebnis von 8,409


Siehe auch


Sprache
Funktionen
Variablen
Struktur
Bibliotheken
IoT Cloud API
Glossar
        Der Arduino-Referenztext ist lizenziert unter der Creative Commons Attribution-Share Alike 3.0 Lizenz.

    Findest du etwas, das verbessert werden kann? Über GitHub kannst du Korrekturen und neue Dokumentation vorschlagen.
    Zweifel, wie man Github benutzt? Erfahre in diesem Tutorial alles, was du wissen musst.

Last Revision: Searching...
Last Build: 2023/06/30
Bearbeite diese Seite
Reference
            >  Language
            >  Structure
            >  Arithmetic operators
            > Multiplication

*
          [Arithmetic Operators]

Beschreibung


*
          [Arithmetic Operators]

Beschreibung
Multiplikation ist eine der vier primären Rechenoperationen. Der Operator * (Sternchen) bearbeitet zwei Operanden, um das Produkt zu erzeugen.
Syntax
product = operand1 * operand2
Parameter
product: Variable. Erlaubte Datentypen: int, float, double, byte, short, long.
operand1: Variable oder Konstante. Erlaubte Datentypen: int, float, double, byte, short, long.
operand2: Variable oder Konstante. Erlaubte Datentypen: int, float, double, byte, short, long.
Beispielcode
int a = 5;
int b = 10;
int c = 0;


int b = 10;
int c = 0;
c = a * b; // Die Variable 'c' erhält einen Wert von 50, nachdem diese Anweisung ausgeführt wurde
Anmerkungen und Warnungen
Die Multiplikationsoperation kann überlaufen, wenn das Ergebnis größer ist als das, welches im Datentyp gespeichert werden kann.
Wenn eine der Zahlen (Operanden) vom Typ float oder vom Typ double ist, wird für die Berechnung Fließkomma-Mathematik verwendet.
Wenn die Operanden vom Datentyp float / double sind und die Variable, in der das Produkt gespeichert wird, eine ganze Zahl ist, wird nur die Ganzzahl gespeichert und der Bruchteil der Zahl geht verloren.
float a = 5.5;
float b = 6.6;
int c = 0;


float b = 6.6;
int c = 0;
c = a * b; // Die Variable 'c' speichert nur den Wert 36 und nicht das erwartete Produkt 36,3
Siehe auch


Sprache
Funktionen
Variablen
Struktur
Bibliotheken
IoT Cloud API
Glossar
        Der Arduino-Referenztext ist lizenziert unter der Creative Commons Attribution-Share Alike 3.0 Lizenz.

    Findest du etwas, das verbessert werden kann? Über GitHub kannst du Korrekturen und neue Dokumentation vorschlagen.
    Zweifel, wie man Github benutzt? Erfahre in diesem Tutorial alles, was du wissen musst.

Last Revision: Searching...
Last Build: 2023/06/30
Bearbeite diese Seite
Reference
            >  Language
            >  Structure
            >  Arithmetic operators
            > Subtraction

-
          [Arithmetic Operators]

Beschreibung


-
          [Arithmetic Operators]

Beschreibung
Subtraktion ist eine der vier primären Rechenoperationen. Der Operator - (minus) verarbeitet zwei Operanden, um die Differenz des zweiten zum ersten zu erzeugen.
Syntax
difference = operand1 - operand2
Parameter
difference: Variable. Erlaubte Datentypen: int, float, double, byte, short, long.
operand1: Variable oder Konstante. Erlaubte Datentypen: int, float, double, byte, short, long.
operand2: Variable oder Konstante. Erlaubte Datentypen: int, float, double, byte, short, long.
Beispielcode
int a = 5;
int b = 10;
int c = 0;


int b = 10;
int c = 0;
c = a - b; // Die Variable 'c' erhält nach der Ausführung dieser Anweisung einen Wert von -5
Anmerkungen und Warnungen
Die Subtraktionsoperation kann überlaufen, wenn das Ergebnis kleiner als das ist, das in dem Datentyp gespeichert werden kann (z. B. ergibt das Subtrahieren von 1 von einer Ganzzahl mit dem Wert -32,768 den Wert 32,767).
Wenn eine der Zahlen (Operanden) vom Typ float oder vom Typ double ist, wird für die Berechnung Fließkomma-Mathematik verwendet.


Wenn die Operanden vom Datentyp float / double sind und die Variable, die die Differenz speichert, eine Ganzzahl ist, wird nur die Ganzzahl gespeichert und der Bruchteil der Zahl geht verloren.
float a = 5.5;
float b = 6.6;
int c = 0;
c = a - b; // Die Variable 'c' speichert nur den Wert -1 und nicht die erwartete Differenz von -1.1
Siehe auch


Sprache
Funktionen
Variablen
Struktur
Bibliotheken
IoT Cloud API
Glossar
        Der Arduino-Referenztext ist lizenziert unter der Creative Commons Attribution-Share Alike 3.0 Lizenz.

    Findest du etwas, das verbessert werden kann? Über GitHub kannst du Korrekturen und neue Dokumentation vorschlagen.
    Zweifel, wie man Github benutzt? Erfahre in diesem Tutorial alles, was du wissen musst.

Last Revision: Searching...
Last Build: 2023/06/30
Bearbeite diese Seite
Reference
            >  Language
            >  Structure
            >  Sketch
            > Setup

setup()
          [Sketch]

Beschreibung


> Setup

setup()
          [Sketch]

Beschreibung
Die setup() wird jedes Mal aufgerufen, wenn der Sketch startet. Sie soll benutzt werden, um Variablen, Pinmodi, Bibliotheken, usw. zu initialisieren.
Die Funktion wird nur ein einziges Mal aufgerufen: Jedes Mal, wenn das Board gestartet oder resettet wird.
Beispielcode
Der Code zeigt ein kleines Beispiel, welches den einen Inputpin festlegt.
// Lege Button auf Pin 3
int buttonPin = 3;
void setup() {
  // Starte die serielle Verbindung
  Serial.begin(9600);
  // Setze den Pin 3 als Inputpin
  pinMode(buttonPin, INPUT);
}
void loop() {
  // ...
}
Siehe auch


Sprache
Funktionen
Variablen
Struktur
Bibliotheken
IoT Cloud API
Glossar
        Der Arduino-Referenztext ist lizenziert unter der Creative Commons Attribution-Share Alike 3.0 Lizenz.

    Findest du etwas, das verbessert werden kann? Über GitHub kannst du Korrekturen und neue Dokumentation vorschlagen.
    Zweifel, wie man Github benutzt? Erfahre in diesem Tutorial alles, was du wissen musst.

Last Revision: Searching...
Last Build: 2023/06/30
Bearbeite diese Seite
Reference
            >  Language
            >  Structure
            >  Sketch
            > Loop

loop()
          [Sketch]

Beschreibung


> Loop

loop()
          [Sketch]

Beschreibung
Nach dem Erstellen einer setup()- Funktion, die die Anfangswerte (Variablen, Pins und Bibliotheken) initialisiert, macht die Funktion loop() genau das, was der Name andeutet.
Sie ist eine Endlosschleife, die nach jedem Durchlauf erneut aufgerufen wird. Dadurch kann dein Programm Variablen verändern, Daten lesen oder darauf reagieren.
Verwende diese Option, um das Arduino-Board aktiv zu steuern.
Beispielcode
Der Code zeigt ein kleines Beispiel, welches den einen Inputpin festlegt. Bei jedem Durchlauf wird je nach Zustand einen Wert
auf den seriellen Ausgang geschrieben. Anschließend wartet das Board eine Sekunde und beginnt den Durchlauf von Neuem.
// Lege Button auf Pin 3


// Lege Button auf Pin 3
int buttonPin = 3;
void setup() {
  // Starte die serielle Verbindung
  Serial.begin(9600);
  // Setze den Pin 3 als Inputpin
  pinMode(buttonPin, INPUT);
}
// Loop checkt den Button bei jedem Durchlauf und schreibt je nach Zustand einen Wert auf den seriellen Ausgang.
void loop() {
  // Wenn Pin HIGH ist, schreibe H
  if (digitalRead(buttonPin) == HIGH) {
    serialWrite('H');
  }
  // Sonst, schreibe L
  else {
    serialWrite('L');
  }
  //Warte 1 Sekunde
  delay(1000);
}
Siehe auch


Sprache
Funktionen
Variablen
Struktur
Bibliotheken
IoT Cloud API
Glossar
        Der Arduino-Referenztext ist lizenziert unter der Creative Commons Attribution-Share Alike 3.0 Lizenz.

    Findest du etwas, das verbessert werden kann? Über GitHub kannst du Korrekturen und neue Dokumentation vorschlagen.
    Zweifel, wie man Github benutzt? Erfahre in diesem Tutorial alles, was du wissen musst.

Last Revision: Searching...
Last Build: 2023/06/30
Bearbeite diese Seite
Reference
            >  Language
            >  Structure
            >  Boolean operators
            > Logicalnot

!
          [Boolean Operators]

Beschreibung
Logical NOT führt zu einem true, wenn der Operand false ist und umgekehrt.


Logical NOT führt zu einem true, wenn der Operand false ist und umgekehrt.
Beispielcode
Dieser Operator kann in einer if-Anweisung verwendet werden.
if (!x) { // Wenn x nicht true ist
  // Statement(s)
}
Es kann verwendet werden, um den booleschen Wert zu invertieren.
x = !y; // Der invertierte Wert von y wird in x gespeichert
Anmerkungen und Warnungen
Das bitweise NOT ~ (Tilde) sieht sehr anders aus als das boolesche NOT ! (Ausrufezeichen oder "Knall", wie die Programmierer sagen), aber man muss immer noch wissen, welches man will.
Siehe auch
SPRACHE ~ Bitweises NOT


Sprache
Funktionen
Variablen
Struktur
Bibliotheken
IoT Cloud API
Glossar
        Der Arduino-Referenztext ist lizenziert unter der Creative Commons Attribution-Share Alike 3.0 Lizenz.

    Findest du etwas, das verbessert werden kann? Über GitHub kannst du Korrekturen und neue Dokumentation vorschlagen.
    Zweifel, wie man Github benutzt? Erfahre in diesem Tutorial alles, was du wissen musst.

Last Revision: Searching...
Last Build: 2023/06/30
Bearbeite diese Seite
Reference
            >  Language
            >  Structure
            >  Boolean operators
            > Logicaland

&&
          [Boolean Operators]

Beschreibung
Logisches AND führt nur zu true, wenn beide Operanden true sind.


Logisches AND führt nur zu true, wenn beide Operanden true sind.
Beispielcode
Dieser Operator kann innerhalb der Bedingung einer if-Anweisung verwendet werden.
if (digitalRead(2) == HIGH && digitalRead(3) == HIGH) { // Wenn beide Werte HIGH sind
  // Statement(s)
}
Anmerkungen und Warnungen
Stelle sicher, dass der booleschen AND-Operator && (doppeltes kaufmännisches Und) nicht mit dem bitweisen AND-Operator & (einfaches kaufmännisches Und) verwechselt wird. Sie sind völlig verschieden.
Siehe auch
SPRACHE & (Bitweises UND)


Sprache
Funktionen
Variablen
Struktur
Bibliotheken
IoT Cloud API
Glossar
        Der Arduino-Referenztext ist lizenziert unter der Creative Commons Attribution-Share Alike 3.0 Lizenz.

    Findest du etwas, das verbessert werden kann? Über GitHub kannst du Korrekturen und neue Dokumentation vorschlagen.
    Zweifel, wie man Github benutzt? Erfahre in diesem Tutorial alles, was du wissen musst.

Last Revision: Searching...
Last Build: 2023/06/30
Bearbeite diese Seite
Reference
            >  Language
            >  Structure
            >  Boolean operators
            > Logicalor

||
          [Boolean Operators]

Beschreibung
Logisches OR führt zu true, wenn einer der beiden Operanden true ist.


Logisches OR führt zu true, wenn einer der beiden Operanden true ist.
Beispielcode
Dieser Operator kann in einer if-Anweisung verwendet werden.
if (x > 0 || y > 0) { // Wenn entweder x oder y größer als null ist
  // Statement(s)
}
Anmerkungen und Warnungen
Verwechsle nicht das boolesche || (Doppel-Pipe) Operator mit dem bitweisen OR-Operator | (Einzelne Pipe).
Siehe auch
SPRACHE | Bitweises OR


Sprache
Funktionen
Variablen
Struktur
Bibliotheken
IoT Cloud API
Glossar
        Der Arduino-Referenztext ist lizenziert unter der Creative Commons Attribution-Share Alike 3.0 Lizenz.

    Findest du etwas, das verbessert werden kann? Über GitHub kannst du Korrekturen und neue Dokumentation vorschlagen.
    Zweifel, wie man Github benutzt? Erfahre in diesem Tutorial alles, was du wissen musst.

Last Revision: Searching...
Last Build: 2023/06/30
Bearbeite diese Seite
Reference
            >  Language
            >  Structure
            >  Bitwise operators
            > Bitwisenot

~
          [Bitwise Operators]

Beschreibung


~
          [Bitwise Operators]

Beschreibung
Der bitweise NOT-Operator in C ++ ist das Tilde-Zeichen ~. Im Gegensatz zu & und | wird der bitweise NOT-Operator auf einen einzelnen Operanden rechts davon angewendet.
Bitweises NOT ändert jedes Bit in sein Gegenteil: 0 wird 1 und 1 wird 0.
In anderen Worten:
0  1    operand1
-----
1  0   ~operand1
Beispielcode
int a = 103; // Binär: 0000000001100111
int b = ~a;  // Binär: 1111111110011000 = -104
Anmerkungen und Warnungen
Möglicherweise bist du überrascht, als Ergebnis dieses Vorgangs eine negative Zahl wie -104 zu sehen.


Dies liegt daran, dass das höchste Bit in einer int-Variablen das sogenannte Vorzeichenbit ist.
Wenn das höchste Bit 1 ist, wird die Zahl als negativ interpretiert.
Diese Kodierung von positiven und negativen Zahlen wird als Zweierkomplement bezeichnet.
Weitere Informationen finden sich im Wikipedia-Artikel über das Zweierkomplement.
Nebenbei bemerkt ist es interessant zu wissen, dass ~x für jede ganze Zahl x das gleiche ist wie -x-1.
Das Vorzeichenbit in einem vorzeichenbehafteten ganzzahligen Ausdruck kann manchmal zu unerwünschten Überraschungen führen.
Siehe auch
BEISPIEL BitMath-Tutorial


Sprache
Funktionen
Variablen
Struktur
Bibliotheken
IoT Cloud API
Glossar
        Der Arduino-Referenztext ist lizenziert unter der Creative Commons Attribution-Share Alike 3.0 Lizenz.

    Findest du etwas, das verbessert werden kann? Über GitHub kannst du Korrekturen und neue Dokumentation vorschlagen.
    Zweifel, wie man Github benutzt? Erfahre in diesem Tutorial alles, was du wissen musst.

Last Revision: Searching...
Last Build: 2023/06/30
Bearbeite diese Seite
Reference
            >  Language
            >  Structure
            >  Bitwise operators
            > Bitshiftright

>>
          [Bitwise Operators]

Beschreibung


>>
          [Bitwise Operators]

Beschreibung
Der rechte Right-Shift-Operator bewirkt, dass die Bits des linken Operanden um die durch den rechten Operanden angegebene Anzahl von Positionen nach rechts verschoben werden.
Syntax
variable >> number_of_bits
Parameter
variable: Erlaubte Datentypen: byte, int, long.
number_of_bits: Eine Zahl < = 32. Erlaubte Datentypen: int.
Beispielcode
int a = 40;     // Binär: 0000000000101000
int b = a >> 3; // Binär: 0000000000000101, oder 5 dezimal
Anmerkungen und Warnungen


Anmerkungen und Warnungen
Wenn x um y Bits (x >> y) nach rechts verschoben wird und das höchste Bit in x eine 1 ist, hängt das Verhalten vom genauen Datentyp von x ab.
Wenn x vom Typ int ist, ist das höchste Bit das Vorzeichenbit, das bestimmt, ob x negativ ist oder nicht, wie oben diskutiert wurde.
In diesem Fall wird das Vorzeichenbit aus esoterischen historischen Gründen in niedrigere Bits kopiert:
int x = -16; // Binär: 1111111111110000
int y = 3;
int result = x >> y; // Binär: 1111111111111110
Dieses Verhalten, das als Zeichenerweiterung bezeichnet wird, ist häufig nicht das gewünschte Verhalten.


Stattdessen möchte man möglicherweise, dass Nullen von links nach innen verschoben werden.
Es stellt sich heraus, dass die Rechtsverschiebungsregeln für vorzeichenlose int-Ausdrücke unterschiedlich sind.
Man kann also eine Typumwandlung verwenden, um zu verhindern, dass die von links kopierten Werte verwendet werden:
int x = -16; // Binär: 1111111111110000
int y = 3;
int result = (unsigned int)x >> y; // Binär: 0001111111111110
Wenn du die Vorzeichenerweiterung sorgfältig vermeidest, kannst du den rechten Umschaltoperator >> verwenden, um die Division durch Potenzen von 2 zu berechnen. Zum Beispiel:
int x = 1000;


int x = 1000;
int y = x >> 3; // Integer-Division von 1000 durch 8, wodurch y = 125.
Siehe auch
BEISPIEL BitMath-Tutorial


Sprache
Funktionen
Variablen
Struktur
Bibliotheken
IoT Cloud API
Glossar
        Der Arduino-Referenztext ist lizenziert unter der Creative Commons Attribution-Share Alike 3.0 Lizenz.

    Findest du etwas, das verbessert werden kann? Über GitHub kannst du Korrekturen und neue Dokumentation vorschlagen.
    Zweifel, wie man Github benutzt? Erfahre in diesem Tutorial alles, was du wissen musst.

Last Revision: Searching...
Last Build: 2023/06/30
Bearbeite diese Seite
Reference
            >  Language
            >  Structure
            >  Bitwise operators
            > Bitshiftleft

<<
          [Bitwise Operators]

Beschreibung


<<
          [Bitwise Operators]

Beschreibung
Der Left-Shift-Operator << bewirkt, dass die Bits des linken Operanden um die vom rechten Operanden angegebene Anzahl von Positionen nach links verschoben werden.
Syntax
variable << number_of_bits
Parameter
variable: Erlaubte Datentypen: byte, int, long.
number_of_bits: Eine Zahl < = 32. Erlaubte Datentypen: int.
Beispielcode
int a = 5;      // Binär: 0000000000000101
int b = a << 3; // Binär: 0000000000101000, oder 40 als Dezimal
Anmerkungen und Warnungen


Anmerkungen und Warnungen
Wenn du einen Wert x um y Bits (x << y) verschiebst, gehen die am weitesten links liegenden y Bits in x verloren.
int x = 5; // Binär: 0000000000000101
int y = 14;
int result = x << y; // Binär: 0100000000000000 - Die erste 1 von 101 wurde verworfen
Wenn du sicher bist, dass keine der Einsen in einem Wert in Vergessenheit gerät, ist ein einfacher Weg, sich den Operator für die linke Verschiebung vorzustellen,
dass er den linken Operanden mit 2 multipliziert, um die Potenz des rechten Operanden zu erreichen.
Um beispielsweise Potenzen von 2 zu erzeugen, können die folgenden Ausdrücke verwendet werden:


Operation  Ergebnis
   ---------  ------
    1 <<  0      1
    1 <<  1      2
    1 <<  2      4
    1 <<  3      8
    ...
    1 <<  8    256
    1 <<  9    512
    1 << 10   1024
    ...
Das folgende Beispiel kann verwendet werden, um den Wert eines empfangenen Bytes an den seriellen Monitor auszugeben.
Verwende den linken Umschaltoperator, um das Byte von unten (LSB) nach oben (MSB) zu verschieben und seinen binären Wert auszugeben:
// Gibt den binären Wert (1 oder 0) des Bytes aus
void printOut1(int c) {


void printOut1(int c) {
  for (int bits = 7; bits > -1; bits--) {
    // Vergleiche die Bits 7-0 im Byte
    if (c & (1 << bits)) {
      Serial.print("1");
    }
    else {
      Serial.print("0");
    }
  }
}
Siehe auch
BEISPIEL BitMath-Tutorial


Sprache
Funktionen
Variablen
Struktur
Bibliotheken
IoT Cloud API
Glossar
        Der Arduino-Referenztext ist lizenziert unter der Creative Commons Attribution-Share Alike 3.0 Lizenz.

    Findest du etwas, das verbessert werden kann? Über GitHub kannst du Korrekturen und neue Dokumentation vorschlagen.
    Zweifel, wie man Github benutzt? Erfahre in diesem Tutorial alles, was du wissen musst.

Last Revision: Searching...
Last Build: 2023/06/30
Bearbeite diese Seite
Reference
            >  Language
            >  Structure
            >  Bitwise operators
            > Bitwiseor

|
          [Bitwise Operators]

Beschreibung


|
          [Bitwise Operators]

Beschreibung
Der bitweise OR-Operator in C ++ ist das vertikale Balkensymbol |.
Wie der Operator & auch berechnet | jedes Bit in den beiden umgebenden Integer-Ausdrücken unabhängig.
Das bitweise ODER von zwei Bits ist 1, wenn eines oder beide der Eingangsbits 1 sind, andernfalls 0.
In anderen Worten:
0  0  1  1    operand1
0  1  0  1    operand2
----------
0  1  1  1    (operand1 | operand2) - Ergebnis
Beispielcode
int a =  92;   // Binär:    0000000001011100


int b = 101;   // Binär:    0000000001100101
int c = a | b; // Ergebnis: 0000000001111101, oder 125 dezimal.
Eine der häufigsten Anwendungen von Bitwise OR ist das Setzen mehrerer Bits in einer mit Bits gepackten Zahl.
// Hinweis: Dieser Code ist spezifisch für die AVR-Architektur
// Richtungsbits für Pin 2 bis 7 setzen, PD0 und PD1 unberührt lassen (xx | 00 == xx)
// Wie pinMode(pin, OUTPUT) für Pin 2 bis 7 beim Uno oder Nano
DDRD = DDRD | B11111100;
Siehe auch
SPRACHE || Logisches ODER
BEISPIEL BitMath-Tutorial


Sprache
Funktionen
Variablen
Struktur
Bibliotheken
IoT Cloud API
Glossar
        Der Arduino-Referenztext ist lizenziert unter der Creative Commons Attribution-Share Alike 3.0 Lizenz.

    Findest du etwas, das verbessert werden kann? Über GitHub kannst du Korrekturen und neue Dokumentation vorschlagen.
    Zweifel, wie man Github benutzt? Erfahre in diesem Tutorial alles, was du wissen musst.

Last Revision: Searching...
Last Build: 2023/06/30
Bearbeite diese Seite
Reference
            >  Language
            >  Structure
            >  Bitwise operators
            > Bitwisexor

^
          [Bitwise Operators]

Beschreibung


^
          [Bitwise Operators]

Beschreibung
In C++ gibt es einen etwas ungewöhnlichen Operator namens bitweises exklusives OR, auch bitweises XOR genannt.
Der bitweise XOR-Operator wird mit dem Caret-Symbol ^ geschrieben.
Eine bitweise XOR-Operation führt nur dann zu einer 1, wenn die Eingangsbits unterschiedlich sind.
Andernfalls ergibt sich eine 0.
Precisely,
0  0  1  1    operand1
0  1  0  1    operand2
----------
0  1  1  0    (operand1 ^ operand2) - Ergebnis
Beispielcode
int x = 12;    // Binär: 1100
int y = 10;    // Binär: 1010


int y = 10;    // Binär: 1010
int z = x ^ y; // Binär: 0110, oder dezimal 6
Der ^ -Operator wird häufig verwendet, um einige der Bits in einem ganzzahligen Ausdruck umzuschalten (d. H. Von 0 auf 1 oder von 1 auf 0 zu wechseln).
Wenn in einer bitweisen ODER-Operation eine 1 im Maskenbit vorhanden ist, wird dieses Bit invertiert.
Wenn es eine 0 gibt, wird das Bit nicht invertiert und bleibt gleich.
// Hinweis: Dieser Code verwendet Register, die für AVR-Mikrocontroller spezifisch sind (Uno, Nano, Leonardo, Mega usw.).
// Es wird für andere Architekturen nicht kompilieren
void setup() {


void setup() {
  DDRB = DDRB | B00100000; // Setzen von PB5 (Pin 13 beim Uno / Nano, Pin 9 beim Leonardo / Micro, Pin 11 beim Mega) als OUTPUT
  Serial.begin(9600);
}
void loop() {
  PORTB = PORTB ^ B00100000;  // PB5 invertieren, andere unberührt lassen
  delay(100);
}
Siehe auch
BEISPIEL BitMath-Tutorial


Sprache
Funktionen
Variablen
Struktur
Bibliotheken
IoT Cloud API
Glossar
        Der Arduino-Referenztext ist lizenziert unter der Creative Commons Attribution-Share Alike 3.0 Lizenz.

    Findest du etwas, das verbessert werden kann? Über GitHub kannst du Korrekturen und neue Dokumentation vorschlagen.
    Zweifel, wie man Github benutzt? Erfahre in diesem Tutorial alles, was du wissen musst.

Last Revision: Searching...
Last Build: 2023/06/30
Bearbeite diese Seite
Reference
            >  Language
            >  Structure
            >  Bitwise operators
            > Bitwiseand

&
          [Bitwise Operators]

Beschreibung


&
          [Bitwise Operators]

Beschreibung
Der bitweise AND-Operator in C ++ ist ein einzelnes kaufmännisches Und &, das zwischen zwei anderen Ganzzahlausdrücken verwendet wird.
Das Bitweise AND bearbeitet die Bitpositionen der umgebenden Ausdrücke unabhängig voneinander gemäß dieser Regel:
Wenn beide Eingangsbits 1 sind, ist das resultierende Ergebnis 1, andernfalls ist das Ergebnis 0.
Eine andere Möglichkeit, dies auszudrücken, ist:
0  0  1  1    operand1
0  1  0  1    operand2
----------
0  0  0  1    (operand1 & operand2) - Ergebnis


In Arduino ist der Typ int ein 16-Bit-Wert. Wenn & zwischen zwei int-Ausdrücken verwendet wird, werden 16 UND-Operationen gleichzeitig ausgeführt.
Beispielcode
In einem Codefragment wie:
int a =  92;   // Binär: 0000000001011100
int b = 101;   // Binär: 0000000001100101
int c = a & b; // Ergebnis: 0000000001000100, oder 68 dezimal.
Jedes der 16 Bits in a und b wird unter Verwendung des bitweisen AND verarbeitet, und alle 16 resultierenden Bits werden in c gespeichert.
Dies führt zu einem binären Wert von 01000100, der als Dezimalzahl 68 ist.


Eine der häufigsten Anwendungen von bitweisem AND ist die Auswahl eines bestimmten Bits (oder einiger Bits) aus einem Integer-Wert, der oft als Maskierung bezeichnet wird.
Unten findest du ein Beispiel (spezifisch für die AVR-Architektur).
PORTD = PORTD & B00000011;  // Löschen der Bits 2 - 7 und Pins PD0 und PD1 (xx & 11 == xx) nicht ändern.
Siehe auch
SPRACHE && Logisches Und
BEISPIEL BitMath-Tutorial


Sprache
Funktionen
Variablen
Struktur
Bibliotheken
IoT Cloud API
Glossar
        Der Arduino-Referenztext ist lizenziert unter der Creative Commons Attribution-Share Alike 3.0 Lizenz.

    Findest du etwas, das verbessert werden kann? Über GitHub kannst du Korrekturen und neue Dokumentation vorschlagen.
    Zweifel, wie man Github benutzt? Erfahre in diesem Tutorial alles, was du wissen musst.

Last Revision: Searching...
Last Build: 2023/06/30
Bearbeite diese Seite
Reference
            >  Language
            >  Structure
            >  Control structure
            > Break

break
          [Control Structure]

Beschreibung


> Break

break
          [Control Structure]

Beschreibung
break wird benutzt, um aus for, while oder do…while-Schleifen zu springen, wobei
die normalen condition übersprungen werden. Es wird auch benutzt, um aus switch case-Statements zu springen.
Syntax
while (condition) {
   //Statement(s)
   break;
   //Statement(s)
}
Parameter
Keine.
Rückgabewert
Nichts.
Beispielcode
Der folgende Code springt aus der for-Schleife, wenn der Sensorwert den Threshold übersteigt.
// Iteriere über die Zahlen von 0 bis 255
for (int x = 0; x < 255; x++) {
  // Schreibe auf den LED-Pin
  analogWrite(PWMpin, x);


analogWrite(PWMpin, x);
  // Lies den Sensorwert ein
  sens = analogRead(sensorPin);
  // Wenn der Wert größer als der Threshold ist
  if (sens > 40){
    // Setze x auf 0
    x = 0;
    // Springe raus
    break;
  }
  // Warte 50 Millisekunden
  delay(50);
}
Siehe auch


Sprache
Funktionen
Variablen
Struktur
Bibliotheken
IoT Cloud API
Glossar
        Der Arduino-Referenztext ist lizenziert unter der Creative Commons Attribution-Share Alike 3.0 Lizenz.

    Findest du etwas, das verbessert werden kann? Über GitHub kannst du Korrekturen und neue Dokumentation vorschlagen.
    Zweifel, wie man Github benutzt? Erfahre in diesem Tutorial alles, was du wissen musst.

Last Revision: Searching...
Last Build: 2023/06/30
Bearbeite diese Seite
Reference
            >  Language
            >  Structure
            >  Control structure
            > If

if
          [Control Structure]

Beschreibung


> If

if
          [Control Structure]

Beschreibung
Das if-Statement checkt, ob eine Bedingung true ist und führt dann den Code aus, der innerhalb der Klammern steht.
Syntax
if (condition) {
  //statement(s)
}
Parameter
condition: Ein Booleanausdruck, kann true oder false sein.
Rückgabewert
Nichts.
Beispielcode
Die Klammern nach einem if-Statement können weggelassen werden. Wenn dies getan wird, wird die nächste Zeile die einzige, die nach der Bedingung
ausgeführt wird.
if (x > 120) digitalWrite(LEDpin, HIGH);
if (x > 120)
  digitalWrite(LEDpin, HIGH);
if (x > 120) {  digitalWrite(LEDpin, HIGH);}


if (x > 120) {  digitalWrite(LEDpin, HIGH);}
if (x > 120) {
  digitalWrite(LEDpin1, HIGH);
  digitalWrite(LEDpin2, HIGH);
}
// Alle Anweisungen sind korrekt
Anmerkungen und Warnungen
Die Statements in der condition müssen dabei mindestens einen der Operatoren unten benutzen.
Vergleichsoperatoren:
x == y (x ist gleich y)
x != y (x ist nicht gleich y)
x <  y (x ist kleiner als y)
x >  y (x ist größer als y)
x <= y (x ist kleiner als oder gleich zu y)
x >= y (x ist größer als oder gleich zu y)


x >= y (x ist größer als oder gleich zu y)
Achtung: Nicht zufällig ein einzelnes =-Zeichen in der Bedingung verwenden (z.B. if (x = 10)). Ein einfaches =-Zeichen ist ein Zuweisungsoperator und setzt x auf 10.
Benutze stattdessen == (z.B. if (x == 10)). Dies vergleicht die Werte von x und der Konstante 10. Das 2. Beispiel wird nur true, wenn x genau gleich 10 ist, das
1. Statement wird immer true.
Das passiert, weil C++ wie folgt evaluiert: 10 wird auf x zugewiesen (= ist der Zuweisungsoperator), weshalb x nun den Wert 10


enthält. Daraufhin evaluiert die If-Bedingung zu 10. 10 ist immer true, da jede Zahl, die nicht 0 ist, immer true ist. Dies ist meistens nicht erwünscht, also bitte darauf achten.
Siehe auch


Sprache
Funktionen
Variablen
Struktur
Bibliotheken
IoT Cloud API
Glossar
        Der Arduino-Referenztext ist lizenziert unter der Creative Commons Attribution-Share Alike 3.0 Lizenz.

    Findest du etwas, das verbessert werden kann? Über GitHub kannst du Korrekturen und neue Dokumentation vorschlagen.
    Zweifel, wie man Github benutzt? Erfahre in diesem Tutorial alles, was du wissen musst.

Last Revision: Searching...
Last Build: 2023/06/30
Bearbeite diese Seite
Reference
            >  Language
            >  Structure
            >  Control structure
            > Else

else
          [Control Structure]

Beschreibung


> Else

else
          [Control Structure]

Beschreibung
if…else erlaubt mehr Optionen als das einfache if. Es erlaubt, mehrere Variablen hintereinander abzufragen. Der else-Teil wird dann ausgeführt,
wenn die Bedingung im if-Teil false ist. Auf den else-Teil kann wieder ein if folgen, sodass viele sich gegenseitig ausschließende Konditionen gestestet werden können.
Dabei wird immer weiter fortgefahren, bis ein Test auf true evaluiert wird. Daraufhin wird dessen zugehöriger Code ausgeführt, woraufhin das Programm ans Ende des kompletten


if…else-Konstrukts springt. Wenn ein Default-else-Teil vorhanden ist, wird dieser ausgeführt, wenn alle anderen Tests auf false evaluiert wurden.
Ein else if-Block kann benutzt werden ohne einen terminierenden else-Block und umgekehrt. Somit ist eine unbegrenzte Anzahl an `else if`s möglich.
Syntax
if (condition1) {
  // Tue Task 1
}
else if (condition2) {
  // Tue Task 2
}
else {
  // Tue Task 3
}
Parameter
condition: Die Bedingung, die abgeprüft wird. Evaluiert zu true oder false.
Rückgabewert
Nichts.
Beispielcode
Der folgende Code testet einige Werte in den Bedingungen ab. Im Detail handelt es sich um ein simples Temperaturwarnsystem.


if (temperature >= 70) {
  // Schalte das System ab.
}
else if (temperature >= 60) // 60 <= temperature < 70
  // Schicke dem Benutzer eine Warnung.
}
else { // temperature < 60
  // Keine Probleme erkannt.
}
Siehe auch


Sprache
Funktionen
Variablen
Struktur
Bibliotheken
IoT Cloud API
Glossar
        Der Arduino-Referenztext ist lizenziert unter der Creative Commons Attribution-Share Alike 3.0 Lizenz.

    Findest du etwas, das verbessert werden kann? Über GitHub kannst du Korrekturen und neue Dokumentation vorschlagen.
    Zweifel, wie man Github benutzt? Erfahre in diesem Tutorial alles, was du wissen musst.

Last Revision: Searching...
Last Build: 2023/06/30
Bearbeite diese Seite
Reference
            >  Language
            >  Structure
            >  Control structure
            > For

for
          [Control Structure]

Beschreibung


> For

for
          [Control Structure]

Beschreibung
Das for-Statement wiederholt die in Klammern nachfolgenden Anweisungen. Meistens wird eine Zählervariable verwendet, welche hochgezählt wird und die Schleife irgendwann beendet.
Das for-Statement wird häufig zur Iteration über Arrays oder Listen von Daten oder Pins verwendet.
Syntax
for (initialization; condition; increment) {
	// Statement(s);
}
Parameter
initialization: Passiert genau einmal am Anfang der Schleife.
condition: Wird bei jedem Schleifendurchlauf getestet. Wenn sie true ist, werden alle Statements in den Klammern ausgeführt und increment hochgezählt. Wenn
			 die condition false ist, wird die Schleife abgebrochen.


die condition false ist, wird die Schleife abgebrochen.
increment: Wird hochgezählt, wenn die condition true ist.
Rückgabewert
Nichts.
Beispielcode
Eine LED wird über einen PWM-Pin gedimmt.
int PWMpin = 10; // LED in Serie mit 470-Ohm-Widerstand auf Pin 10
void setup() {
  // Nichts
}
void loop() {
  // Wiederhole 255 Mal:
  for (int i=0; i <= 255; i++){
    // Schreibe den Wert von "i" auf den LED-Pin
    analogWrite(PWMpin, i);
    // Warte 10 Millisekunden
    delay(10);
  }
}
Anmerkungen und Warnungen


delay(10);
  }
}
Anmerkungen und Warnungen
Die for-Schleife in C++ ist deutlich ausgeprägter als in anderen Sprachen wie z.B. BASIC. Einige oder sogar alle der 3 Parameter können weggelassen werden,
allerdings sind die Strichpunkte immer nötig. Alle 3 Parameter können mit beliebigen Variablen belegt werden und jeden Datentyp inklusive float nutzen.
Die Beispiele unten zeigen die Verwendung einiger Spezialformen der for-Schleife.
Eine Multiplikation im increment generiert ein logarithmisches Verhalten:
for(int x = 2; x < 100; x = x * 1.5) {
   println(x);
}
Gibt aus: 2,3,4,6,9,13,19,28,42,63,94


LED hoch- und runterdimmen in einer Schleife:
void loop() {
  // Globale Zählervariable "x"
  int x = 1;
  // Laufe über die Variable solange i größer -1 ist und zähle i um x hoch
  for (int i = 0; i > -1; i = i + x){
    // Schreibe auf den LED-Pin
    analogWrite(PWMpin, i);
    if (i == 255) {
	  x = -1; // Ändere die Richtung des Dimmens auf dem "Peek"
      // Warte 10 Millisekunden
      delay(10);
	}
  }
}
Siehe auch