Grundkenntnisse Programmierung 1 (Pulsierende LED): Unterschied zwischen den Versionen

Aus HSHL Mechatronik
Zur Navigation springen Zur Suche springen
Zeile 121: Zeile 121:
}
}
</syntaxhighlight>
</syntaxhighlight>
=== Mathematische Funktionen ===
{| class="wikitable"
|+ Tabelle 1: Operatoren
|-
! Operator !! Bedeutung !! Anwendung !! Funktion
|-
| = || Zuweisung || a= 2∗b || Weist der linken Seite den Wert auf der rechten Seite zu
|-
| + || Addition  || a= b+c || Für die Addition
|-
| - || Subtraktion || a= b-c || Für die Subtraktion
|-
| ++ || Inkrementieren || a++ || Zählt zu der Variable 1 hinzu (+1)
|-
| - || Dekrementieren || a– || Zieht von der Variable 1 ab (-1)
|-
| * || Multiplikation || a= b∗c || Für die Multiplikation
|-
| / || Division || a= b/c || Dabei darf c nie gleich null sein
|-
| % || Modulo || a= 7%5 ; a= 2 || Liefert den Rest bei der Division von
|}


== Strukturen ==
== Strukturen ==

Version vom 6. August 2023, 16:53 Uhr

Autor: Justin Frommberger

Void loop und void setup

Quelltext 1: ArduinoSketchStruktur.ino

void setup ( ) // Programmstart
{
  // Anweisungen
}
void loop ( )  // Hauptschleife
{
  // Anweisungen
}

Setup-Funktion

  • Wird einmalig beim Start des Arduino-Boards oder nach einem Reset ausgeführt.
  • In dieser Funktion werden Variablen, Pinmodi, Bibliotheken, usw. initialisiert.
  • Muss immer vorhanden sein!

Die Loop-Funktion

  • Ist eine Endlosschleife, die nach jedem Durchlauf erneut aufgerufen wird.
  • Hier wird der Code hineingeschrieben, der dauerhaft ausgeführt werden soll.

Initialisierung (Zuweisung)

Erklärung

  • Ist die Zuweisung für ein Datenobjekt oder einer Variable.
  • Wird benötigt, um im Programm Variablen Eigenschaften zuzuweisen.
  • Sozusagen wird einer Person ihr Alter zugeordnet (Lisa), um sie wiederzuerkennen wird ihr das Alter (18) zugewiesen.
  • So weiß das Programm, dass Lisa 18 Jahre alt ist.

Datentypen (Int)

  • Um nun die erstellte Variable (Lisa = 18) verwenden zu können, benötigen wird ein Datentyp benötigt.
  • Arduino verfügt über einige Datentypen, siehe [hier!]
  • Für das Beispiel (Lisa = 18) wird eine Variable für Zahlen benötigten, diese lautet Intiger(Int)

Quelltext 2: Int.ino

int Lisa = 18;    // Lisa ist 18 Jahre alt

Datentypen

In der Programmierung gibt es verschiedene Datentypen, die angeben, welche Art von Wert eine Variable hat und welche Operationen auf sie angewendet werden können, ohne Fehler zu verursachen.
Ein Byte kann nur Zahlen im Bereich von 0 bis 255 speichern, ohne dass ein Fehler auftritt.

Tabelle 1: Datentypen Beispiele
Datentyp Bemerkung Wertebereich
bool 1 Bit [true,false] [0,1]
byte 8 Bit ohne Vorzeichen [0,255]
char 8 Bit ASCII-Zeichen [ [-128,128]
double 64 Bit Fließkommazahl, 15 Nachkommastellen [2,2^−308, +1,79^308]
float 32 Bit Fließkommazahl, 6 Nachkommastellen [−3,4^38, +3,4^38]
int 16 Bit Integer mit VZ [-32768, +32767]
long 32 Bit Integer mit VZ [−2^32, +2^32 − 1]
short 16 Bit Integer mit VZ [-32 768,+32 767]
string Zeichenkette vom Typ char Buchstaben
unsigned char 8 Bit Integer ohne VZ [0,255]
unsigned int 16 Bit Integer ohne VZ [0,65535]
unsigned long 32 Bit Integer ohne VZ [0,4294967295]


Funktionen

pinMode()

Wird benötigt, um den verwendeten Pin vom Arduino als OUTPUT (Ausgang) oder INPUT (Eingang) festzulegen.
Wird verwendet, um die LED zuzuweisen.

  • OUTPUT um Informationen mit dem Arduino zu empfangen.
  • INPUT um Daten vom Arduino zu einem Empfänger zu verschicken.

Quelltext 3: pinMode.ino

pinMode(Pin, OUTPUT);   // Ausgang Zuweisung 
// oder
pinMode(Pin, INPUT);    // Eingang Zuweisung

analogWrite()

  • Schreibt einen Analogwert auf einen Pin.
  • Ein Analogwert ist ein Zahlenwert, wie Temperatur = 30
  • Diese Funktion wird verwendet, um die LED mit verschiedener Helligkeit leuchten zu lassen.

Quelltext 4: analogWrite.ino

analogWrite(Pin, Analogwert);  // Aufbau

analogWrite(Pin(LED), 200);    // Beispiel: Pin 5 sendet nun den Wert 200 an die verbundene LED.

delay()

  • Legt für die angegebene Zeit im Programm eine Pause ein.
  • Angabe in der Klammer ist in Millisekunden.
  • Benötigt, um Teile des Programmes langsamer ausführen zu lassen.

Quelltext 5: delay.ino

void loop() {
  delay(400)    // Pause von 400ms
}

Mathematische Funktionen

Tabelle 1: Operatoren
Operator Bedeutung Anwendung Funktion
= Zuweisung a= 2∗b Weist der linken Seite den Wert auf der rechten Seite zu
+ Addition a= b+c Für die Addition
- Subtraktion a= b-c Für die Subtraktion
++ Inkrementieren a++ Zählt zu der Variable 1 hinzu (+1)
- Dekrementieren a– Zieht von der Variable 1 ab (-1)
* Multiplikation a= b∗c Für die Multiplikation
/ Division a= b/c Dabei darf c nie gleich null sein
% Modulo a= 7%5 ; a= 2 Liefert den Rest bei der Division von

Strukturen

If-Verzweigung

Das if-Statement checkt, ob eine Bedingung true ist und führt dann den Code aus, der innerhalb der Klammern steht.

Vergleichsoperatoren (X==X)

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)

Geschweifte Klammern {}

Auf eine öffnende geschweifte Klammer {muss immer eine schließende geschweifte Klammer} folgen.
Siehe im Beispiel: if-Verzweigung


Beispiel if-Verzweigung


Quelltext 6: ifverzweigung.ino

if (Lisa == 18) {        // Wenn Lisa 18 Jahre alt ist, wird die Anweisung ausgeführt
   // Anweisung;
}
else (Lisa != 30) {      // Wenn Lisa nicht 30 Jahre alt ist, wird die Anweisung ausgeführt
   // Anweisung;
}

if (Lisa == 18 || Lisa == 20) {        // Wenn Lisa 18 '''oder''' 20 Jahre alt ist, wird die Anweisung ausgeführt
   // Anweisung;
}

if (Lisa == 18 && Lisa != 20) {        // Wenn Lisa 18 '''und '''nicht 20 Jahre alt ist, wird die Anweisung ausgeführt
   // Anweisung;
}

→ zurück zum Hauptartikel: klicken!