Bastelseite Display + Antriebe Sensoren C++ | |
Von der englischen Seite " arduino.cc " gibt es ebenso eine deutsche Version der Befehle! Sie ist unter : https://www.arduino.cc/reference/de/ zu finden.
Es werden die Befehle alle auf deutsch - auch mit Beispielen - erklärt
Globale Variable definieren: Aktoren und Sensoren werden einem Pin-Anschluss zugewiesen, sowie Variable gesetzt werden
int LedPin = 11; entspricht "int" dem Variablen-Typ, "LedPin" dem Variablen-Namen, "=" ist der Zuweisungtsoperator und "11" ist der angewiesenen Pin. Der Abschluss mit ";" darf nicht fehlen.
int LedPin = 11;
Variable "LedPin" wird über "int" deklariert und mit "= 11" initialisiert. Dies geschieht alles in einer Zeile!
Initialisierung: läuft einmal beim Start vom Sketch. Es wird festgtelegt, ob ein Pin Eingang (INPUT) oder Ausgang (OUTPUT) ist.
pinMode(7, OUTPUT); ...INPUT)
Pin 7 wird mit "pinMode" auf Ausgang gesetzt. ...INPUT) ist als Eingang.
Programmschleife: läuft endlos
analogRead() und analogWrite() analogWrite(LedPin, PWM)
Der Pin "LedPin" wird auf Wert "PWM" gesetzt
delay(1000);
"delay" dient als Pause in Milliskunden. 1000 entspricht einer Sekunde
digitalRead(taster);
Es wird der Zustand vom Pin "taster" eingelesen: HIGH oder LOW
digitalWrite(LedPin);
Der Pin "LedPin" wird gesetzt
Beispiel:
int LedPin = 8; // LED an Pin 8
int taster = 5; // Taster an Pin 5
int var = 0; // Variable um Wert zu Speichern
void setup() {
pinMode(LedPin, OUTPUT); // setzt LedPin(8) auf Ausgang
pinMode(taster, INPUT); // setzt taster(5) auf Eingang
}
void loop() {
var = digitalRead(taster); // liest taster (Pin 5) ein
digitalWrite(LedPin, var); // setzt LedPin (Pin 8) auf den Wert der Variablen var
}
Kommentare sind überhaupt das Wichtigste beim Coden. Jeder weiß, wie es ist, wenn man seinen eigenen Code in einem halben Jahr liest.... Was war das nochmal? Wie funktionierte dies?
So ist es am Einfachsten einen Kommentar einzufügen, also persönliche Infos zum Code eintragen. Nein, der Code wird dadurch nicht länger! Kommentare werden vom Compiler ignoriert und benötigen auf dem Chip keinen Platz. Die Kommentare sind also nur in der Arduino-IDE lesbar. Eine gute Sache, wenn man später nochmals etwas ändern möchte / muss.
"//" zwei Schrägstriche leiten einen einzeiligen Kommentar ein. Er brauch kein Ende-zeichen und auch kein Semikolon am Schluß der Zeile.
a = 5; // Dies ist ein Kommentar // Das auch noch b = 17;
Ein mehrzeiliger Kommentar beginnt mit "/*" und wird mit "*/" abgeschlossen. Dies kann ruhig über mehrere Zeilen gehen. Im Prinzip auch die zwei Schrägstriche, jedoch zusätzlich mit zwei Sternchen/Mal-Zeichen.
a = 5; /* Dies ist ein Kommentar Das auch noch und hier ebenso */ b = 17;
Hilfreich ist es bei der Fehlersuche bestimmte Codeabschnitte "auszukommentieren". Also indirekt zu löschen. Einfach ein "/*" an den Anfang und ein "*/" am Ende der Code-Passage gesetzt und neu kompiliert. Schon wird es nicht mehr eingelesen! Zum Schluß wieder "/*" und "*/" entfernt und es kann weitergehen.
Ein Semikolon wird als Abschluß einer Anweisung eingesetzt - demnach in fast jeder Zeile.
a = 5;
Beim Compilieren hat ein fehlendes Semikolon einen ERROR zur Folge, der manchmal nicht leicht zu finden ist.
Funktionen sind kleinere Programmteile, z.B. für wiederkehrende Befehle, die dann mehrmals aufgerufen werden können.
Schleifen gibt es in vielen Varianten: for(;;) und while (...) und do/while
Auch Verzweigungen gibt es in vielen Varianten: if (Bedingung)/else und switch/case.
int | Integer | von -32.768 bis 32.767 nur ganze Zahlen, ohne Komma |
byte | Byte | 0 bis 255, nur ganze Zahlen, |
long | ganze Zahlen | von -2.147.483.648 bis 2.147.483.647 |
float | Fließkommazahl | von -3.4028235E+38 bis 3.4028235E+38, Werte mitKommastellen |
bolean | Boolescher Wert | Logischer Wert: 0 + 1, LOW + HIGH, TRUE + FALSE |
char | Character | Alphanumerische Zeichen: Buchstaben, Zahlen und Sonderzeichen |
array | Variablenfeld | Werte in Variablen mit Tabellenform: int Ports[] = {2,3,4,8,9,12}; |
Mit der map-Funktion können z.B. hohe analoge Eingangswerte in niedrigere Digitalwerte umgewandelt werden
ausgabe = map(eingabe, 0, 1023, 0, 255);