Arduino für Anfänger #Befehle und Funktionen

Arduino für Anfänger #Befehle und Funktionen

Hier findet Ihre einen Überblick über die Befehle und Funktionen des Arduino.

Struktur & Programmfluss
Grundsätzliche Sketch-Struktur

void setup(){
// wird nur beim Start durchläufen
}

void loop (){
// wiederholt sich kontinuierlich
}


Kontroll-Strukturen

if (x<5) {...} else {...}
while (x<5) {...}
for (int i=0; i++) {...}
break; // Schleife sofort beenden
continue; // weiter mit nächsten Iteration
switch (var) {
 case 1:
  ...
  break;
 case 2:
  ...
  break;
 default;
  ...
}
return x; // x ist der Rückgabewert
return; // ohne Rückgabewert


Funktion

<ret.type> <name>(<params>){...} bespws. int double (int x){return x*2;}

Operatoren
Allgemein

= Zuweisung


+ Addieren
- Subtrahieren
* Multiplizieren
/ Dividieren
% Modulo


== gleich
!== ungleich
<= kleiner oder gleich


>= größer oder gleich


&& logisch UND
|| logisch ODER
! NICHT



Kombinierte Operatoren

++ Variable um 1 erhöhen
-- Variable um 1 verringern
+= wie a=a+b
-= wie a=a-b
*= wie a=a*b
/= wie a=a/b
&= wie a=a&b
|= wie a= a|b

Bitoperatoren

& bitweise UND
| bitweise ODER
^ bitweise ODER
~ bitweise NICHT
<< um 1 Bit nach links schieben
>> um 1 Bit nach rechts schieben

Pointer

& Referenz: Adresse des Pointers
* Dereferenzierer: Ziel des Pointers



Eingebaute Funktionen
Pin Input / Output
Digital I/O

- Pins 0-13 A0-A5 (Arduino Uno, je nach Modell unterschiedlich) -
pinMode(pin, )
int digitalread(pin)
digitalWrite(pin, )


Analog In

- Pins A0-A5 (Arduino Uno, je nach Modell unterschiedlich)  -
int analogRead(pin)
analogReference(DEFAULT, INTERNAL, EXTERNAL])


PWM Out

- Pins 3, 5, 6, 9, 10, 11 (Arduino Uno, je nach Modell unterschiedlich) -
analogWrite(pin, value)


Advanced I/O

tone(pin, Freq_Hz)
tone(pin, Freq_Hz, Dauer_ms)
noTone(pin)
shiftOut(dataPin, clockPin, , WERT)
unsigned long pulseIn(pin, )


Zeit

unsigned long millis() // läuft nach 50 Tagen über
unsigned long micros() // läuft nach 70 Minuten über
delay(msec)
delayMicrosecounds(usec)


Mathe-Funktionen

min(x,y) max(x-y) abs(x)
sin(rad) cos(rad) tan(rad)
sqrt(x) pow(Basis, Exponet)
constrain(x, Minl, Maxl)
map(val, fromL, fromH, toL, toH)


Zufallszahlen

randomSeed(seed) // lond oder int
long random(max) // 0 bis max -1
long random(min, max)

Bits und Bytes

lowByte(x)  highByte(x)
bitRead(x, bitn)
bitWrite(x, bitn, bit)
bitSet(x, bitn)
bitClear(x, bitn)
bit(bitn) // bitn: 0LSB 7=MSB


Konvertierung von Datentypen

char(Wert) byte(Wert)
int(Wert) word(Wert)
long(Wert) float(Wert)
// int(Fließkommazahl) wandelt bspws
// Fließkommazahl in Integer-Wert um


Externe Interrups

attachInterrupt(interrupt, func, )
detachInterrupt(interrupt)
interrupts()
noInterrupts()

 

Variablen, Arrays und Daten

Datentypen

boolean true | false
char -128 - 127, 'a' '$' etc.
unsigned char 0 - 255
byte 0 - 255
int -32768 - 32767
unsigned int 0 - 65535
word 0 - 65535
long -2147483648 - 2147483648
unsigned long 0 - 4294967295
float -3.4028e+38 - 3.4028e+38
double wie float    
void kein Rückgabewert / unbestimmt


Strings

char str1 ={'A','r','d','u','i','n','o',' '};  // manuelle Null-Terminierung
char str2 ={'A','r','d','u','i','n','o'};  // Compiler fügt Null-Terminierung hinzu
char str3[]="Arduino";
char str4[]="Arduino";


Nummerische Konstanten

123 dezimal
0b01111011 binär
0173 oktal (Basis 8)
0x7B hexadezimal (Basis 16)
123U erzwinge unsigned
123L erzwinge long
123UL erzwinge unsigned long
123.0 erzwinge floating point
1.23e6 1.23+10^6 = 1230000


Eigenschaften von Variablen

static Variable bleibt über Aufrufe erhalten
volatile Variable im RAM statt Register speicher
const Konstante, nur lesbar
PROGMEM im Flash ablegen

Arrays

int myPins[]={2,4,8,3,6};
int myPins ;  // Array mit 6 ints
myInts =42;  // Zuweisung der ersten Stelle
myInts =12;  // Fehler, da 6. Variable, den 5. Platz belegt

 

Bibliotheken

Serial

- serielle Kommunikation mit dem PC oder via RX/TX -
begin(long Bautrate)  // bis 115200
end()
in available()  // Anzahl empfangener Bytes
int read()    // -1 wenn keine Daten
int peek()  // Lesen ohne den Puffer zu löschen
flush()  // Puffer löschen
print(data)  println(data)
write(byte)  write(char * string)
write(byte * data, size)
SerialEvent()  // wenn Daten fertig


SoftwareSerial.h

- serielle Komunikation über beliebige Pins -
SoftwareSerial(rxPin, txPin)
begin(long Bautrate)  // bis 115200
listen()  // immer nur eine serielle
isListing()  // kann empfangen
read, peek, print, println, write


EEPROM.h

- Zugriff auf nicht flüchtigen Speicher -
byte read(addr)
write (addr, byte)
EEPROM


Servo.h

- Servo-Motoren steuern -
attach(pin, )
write(Winkel)  // 0-180
writeMicsosecounds(uS)  // 1000-2000; 1500 ist Mitte
int read()  // 0-180
bool attach()
detach()


Wire.h

- I²C-Kommunikation -
begin()
begin(addr)  Slave ansprechen
requestFrom(addr, count)
beginTransmission(addr)   // Schritt 1
send(byte)  // Schritt 2
send(char * string)
send(byte * date, size)
endTransmission()  // Schritt 3
int avaliable()  // verfügbare Bytes
byte receive()  // nächstes Byte lesen
onReceive(handler)
onRequest(handler)

Arduino für Anfänger

Hinterlassen Sie einen Kommentar

Bitte beachten Sie, dass Kommentare vor der Veröffentlichung genehmigt werden müssen.