Versions Compared

Key

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

Image Removed

...

Arduino Programming (EN)

Um Programme für das Arduino zu schreiben, benutzen eine verwendet man eine integrierte Programmierumgebung (IDE), welche von David Mellis entwickelt wurde und sich stark an Processing orientiert. Dies macht uns den Einstieg besonders einfach – es gibt jedoch einige Unterschiede, wenn wir für einen Mikrocontroller programmieren. Für Arduino verwenden wir eine vereinfachte Variante von C/C++. Da Arduino auf Processing aufbaut sieht die Oberfläche und die Syntax beider Programme sehr ähnlich aus. Auch die Programmierumgebung sieht sehr ähnlich aus.

...

Code Block
languagejava
titleBeispiel Grunstruktur
collapsetrue
#define LED_PIN 13
 
int counter = 0;
 
void setup() 
{
  pinMode(LED_PIN, OUTPUT);
}

void loop() 
{
  digitalWrite(LED_PIN, HIGH);
  delay(1000);
  digitalWrite(LED_PIN, LOW);
  delay(1000);
  counter++;
}

Variablen

...

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

float (double)
Fliesskomma Variablen
z.B. int float y = 1.234;

char
Zeichen
z.B. char z = “a”;

...

boolean
Schaltvariable
z.B. boolean state = false;

Operatoren

...

Arithmetische Operatoren (+,-,*,/,=,%)

Code Block
languagejava
titleBeispiel Arithmetische Operatoren
collapsetrue
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
titleBeispiel Vergleichende Operatoren
collapsetrue
if(

...

100 != 120) // Bedingung
{
  // Auszuführende Aktion
}

...

Boolsche Operatoren  (&&,||,!)

...

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

...

Zusammengesetzte Operatoren  (++,–,+=,-=,*=,/=)

Code Block
languagejava
titleBeispiel Zusammengesetzte Operatoren
collapsetrue
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
titleBeispiel if...
collapsetrue
if(x>120)
{
  // Aktion wenn x grösser als 120
}


Code Block

...

language

...

java

 

titleBeispiel if...else
collapsetrue
if(x>120)
{
  // Aktion wenn x grösser als 120
}
else
{
  // Aktion wenn x kleiner als, oder genau 120
}

...


Code Block
language

...

java

 

...

titleBeispiel for...
collapsetrue
for(int i=0; i<=255; i++) 
{
  // Setzt i von 0 bis 255
}

switch case


 

Code Block
languagejava
titleBeispiel switch...
collapsetrue
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
}

...


Code Block
language

...

java

 

titleBeispiel while...
collapsetrue
var = 0;
while(var<120)
{
  // Aktion welche sich 120 Mal wiederholt
  var++;
}

break


 

Code Block
languagejava
titleBeispiel break...
collapsetrue
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
titleBeispiel return...
collapsetrue
int checkSensor()
{
  if(analogRead>200)
  {
    return 1; // checkSensor ist nun 1
  }
  else
  {
    return 0; // checkSensor ist nun 0
  }
}