Dies ist eine alte Version des Dokuments!


Architektur eines Sketches

Jedes Arduinoprogramm besteht zunächst aus zwei Teilen, setup und loop.

  • in der setup-Methode steht alles, was nur am Anfang einmal ausgeführt werden soll
  • in der loop-Methode steht der Hauptteil des Programms, der (wie der Name sagt) als Schleife theoretisch unendlich lang läuft

Diesen Grundaufbau findest du im Programm BareMinimum, welches du unter Basics findest.

Nichts tun

Einfach aber nützlich: Du kannst den Arduino eine bestimmte Zeit lang warten lassen:

delay(int);

Die angegebene Zahl sind Millisekunden, und es handelt sich um ganze Zahlen (Datentyp int).

Signale senden und empfangen

Bevor du loslegst mit senden und empfangen, musst du dem Arduino mitteilen, welche Pins du wofür benutzen willst:

  • mit pinMode( n, OUTPUT) legst du fest, dass du an Pin Nummer n Signale senden willst
  • mit pinMode( n, INPUT) entsprechend, dass du Signale empfangen willst

Das solltest du nur einmal tun, also gehört das in setup. Senden und empfangen willst du dagegen die ganze Zeit, das tust du also in loop

  • mit digitalWrite(n, HIGH) sendet das Signal 1 (oder an), LOW entsprechend 0 (oder aus)
  • mit digitalRead(n) kannst du ein Signal als HIGH oder LOW empfangen

For-Schleifen

Mit for-Schleifen kannst du ein bestimmtes Stück Code genau so oft ausführen, wie du festlegst. Wenn du es zahl mal willst, schreibst du das einfach folgendermaßen:

for(int i = 0; i < zahl; i++){
  // tue etwas
  delay(i * 1000);
}

Innerhalb der Schleife kannst du auf i zugreifen. Hier wird nach dem Ausführen des Codes i Sekunden lang gewartet (delay wird in Millisekunden gezählt).

If-Verzweigung

Wenn du etwas abhängig von einer Bedingung ausführen willst, dann kannst du das mit if-Verzweigungen tun:

if(a < b){
  // falls a < b, tu das hier
}
else {
  // ansonsten tu das hier
}

Das Ganze lässt sich bei Bedarf natürlich auch schachteln:

if(a < b){
  // falls a < b tu das hier
  if(c < d){
    // falls a < b  UND c < d, tu das hier
  }
  else {
    // falls a < b UND NICHT c > d, tu das hier
  }
}
else {
  // ansonsten tu das hier
}

usw. ;-)

Fallunterscheidung mit switch

Falls du abhängig vom Wert einer Variablen etwas tun willst, sind switch Anweisungen das Richtige für dich. Hier solltest du alle Fälle, die dir wichtig sind, abhandeln. Für alle anderen Fälle gibt es default.

switch(zahl){
  case 0:
    // falls zahl = 0...
    break;
  case 1:
    // falls zahl = 1...
    break;
  case 42:
    // falls zahl = 42...
    break;
  default:
    // falls zahl anders als die angegebenen Zahlen (nicht 0, 1, oder 42)
}

Falls du noch nie programmiert hast, fragst du dich vielleicht, was das break; da soll. Wenn dein Programm schon gemerkt hat, dass die Zahl Eins ist, dann ist es überflüssig, darüber hinaus auch noch zu prüfen, ob sie vielleicht auch 42 ist – wenn du ein Wort im Wörterbuch suchst, würdest du doch auch nicht das ganze Buch zuende lesen wollen, nachdem du es gefunden hast, oder? ;-)

project/arduino-kickstarter-l02.1321641123.txt.gz · Zuletzt geändert: 14.01.2013 15:56 (Externe Bearbeitung)
Falls nicht anders bezeichnet, ist der Inhalt dieses Wikis unter der folgenden Lizenz veröffentlicht: CC Attribution-Noncommercial-Share Alike 4.0 International
Recent changes RSS feed Driven by DokuWiki