Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

Für Arduino werden wir in C/C++ programmieren. Da Arduino auf Processing aufbaut sieht die Oberfläche und die Syntax beider Programme sehr ähnlich aus. Es gibt jedoch einige Unterschiede, welche wir im Laufe des Workshops beleuchten werden. Ihr solltet schon über einige Grundkenntnisse der Programmierung verfügen. Trotzdem gibt es hier eine kleine Wiederholung. Eine Komplette Referenz für Arduino erhaltet ihr hier.

Übersicht:

 

Code Block
languagejava
// Hier werden globale Variablen deklariert
void setup()
{
  // Die Setup Funktion wird genau einmal am Anfang ausgeführt
}
 
void loop()
{
  // Die Funktion Loop wird permanent ausgeführt
}

 

Variablen:

int (byte, int, uint, long, ulong)
Ganzzahlige Variablen
z.B. int x = 22;

...

Operatoren:

Arithmetische Operatoren (+,-,*,/,=,%)
x = 3+2; // x = 5
y = 2-1; // y = 1
z = 5*2; // z = 10
i = 10/2; // i = 5
r = 9%5; // r = 4

Vergleichende Operatoren (,=,==,!=)

 

Code Block
languagejava
if(x<120) // Bedingung
{
  // Auszuführende Aktion
}

 

Boolsche Operatoren (&&,||,!)

 

Code Block
languagejava
if(digitalRead(2) == HIGH) // Bedingung
{
  // Auszuführende Aktion
}

 

Zusammengesetzte Operatoren (++,–,+=,-=,*=,/=)
x++ // x um eins erhöhen
y– // y um eins verringern
z+=2 // z um zwei erhöhen
i-=5 // i um fünf verringern

Kontroller:

if…

 

Code Block
languagejava
if(x>120)
{
  // Aktion wenn x grösser als 120
}

 

if…else

 

Code Block
languagejava
if(x>120)
{
  // Aktion wenn x grösser als 120
}
else
{
  // Aktion wenn x kleiner als, oder genau 120
}

 

for

 

Code Block
languagejava
for(int i=0; i<=255; i++) 
{
  // Setzt i von 0 bis 255
}

 

switch case

 

Code Block
languagejava
switch(var)
{
case 1:
  // Aktion wenn var 1 entspricht
  break;
case 2:
  // Aktion wenn var 2 entspricht
  break;
default:
  // Aktion wenn var weder 1 noch 2 entspricht
}

 

while

 

Code Block
languagejava
var = 0;
while(var<120)
{
  // Aktion welche sich 120 Mal wiederholt
  var++;
}

 

break

 

Code Block
languagejava
for(int i=0; i<200; i++)
{
  digitalWrite(5,i);
  sensorWert = analogRead(0);
  if(sensorWert>200)
  {
    i = 0; // Schleife verlassen
    break;
  }
  delay(100);
}

 

return

 

Code Block
languagejava
int checkSensor()
{
  if(analogRead>200)
  {
    return 1; // checkSensor ist nun 1
  }
  else
  {
    return 0; // checkSensor ist nun 0
  }
}

...

Spezielle Funktionen:

pinMode(PIN)
Definiert ob ein PIN als Eingang oder Ausgang benutz wird

...