Arduino für Anfänger #Befehle und Funktionen
Arduino für Anfänger #Befehle und Funktionen
void setup(){
// wird nur beim Start durchläufen
}
void loop (){
// wiederholt sich kontinuierlich
}
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
<ret.type> <name>(<params>){…} bespws. int double (int x){return x*2;}
= | Zuweisung | |||
+ | Addieren | – | Subtrahieren | |
* | Multiplizieren | / | Dividieren | |
% | Modulo | |||
== | gleich | !== | ungleich | |
<= | kleiner oder gleich | |||
>= | größer oder gleich | |||
&& | logisch UND | || | logisch ODER | |
! | NICHT |
++ | 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 |
& | bitweise UND | | | bitweise ODER | |
^ | bitweise ODER | ~ | bitweise NICHT | |
<< | um 1 Bit nach links schieben | |||
>> | um 1 Bit nach rechts schieben |
& | Referenz: Adresse des Pointers |
* | Dereferenzierer: Ziel des Pointers |
– Pins 0-13 A0-A5 (Arduino Uno, je nach Modell unterschiedlich) –
pinMode(pin,[INPUT, OUTPUT, INPUT_PULLUP])
int digitalread(pin)
digitalWrite(pin,[HIGH, LOW])
– Pins A0-A5 (Arduino Uno, je nach Modell unterschiedlich) –
int analogRead(pin)
analogReference(DEFAULT, INTERNAL, EXTERNAL])
– Pins 3, 5, 6, 9, 10, 11 (Arduino Uno, je nach Modell unterschiedlich) –
analogWrite(pin, value)
tone(pin, Freq_Hz)
tone(pin, Freq_Hz, Dauer_ms)
noTone(pin)
shiftOut(dataPin, clockPin, [MSBFIRST, LSBFIRST], WERT)
unsigned long pulseIn(pin,[HIGH, LOW])
unsigned long millis() // läuft nach 50 Tagen über
unsigned long micros() // läuft nach 70 Minuten über
delay(msec)
delayMicrosecounds(usec)
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) |
randomSeed(seed) // lond oder int
long random(max) // 0 bis max -1
long random(min, max)
lowByte(x) highByte(x)
bitRead(x, bitn)
bitWrite(x, bitn, bit)
bitSet(x, bitn)
bitClear(x, bitn)
bit(bitn) // bitn: 0LSB 7=MSB
char(Wert) | byte(Wert) |
int(Wert) | word(Wert) |
long(Wert) | float(Wert) |
// int(Fließkommazahl) wandelt bspws | |
// Fließkommazahl in Integer-Wert um |
attachInterrupt(interrupt, func,[LOW, CHANGE, RISING, FALLING])
detachInterrupt(interrupt)
interrupts()
noInterrupts()
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 |
char str1[8]={‚A‘,’r‘,’d‘,’u‘,’i‘,’n‘,’o‘,’\0′}; // manuelle \0 Null-Terminierung
char str2[8]={‚A‘,’r‘,’d‘,’u‘,’i‘,’n‘,’o‘}; // Compiler fügt Null-Terminierung hinzu
char str3[]=“Arduino“;
char str4[]=“Arduino“;
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 |
static | Variable bleibt über Aufrufe erhalten |
volatile | Variable im RAM statt Register speicher |
const | Konstante, nur lesbar |
PROGMEM | im Flash ablegen |
int myPins[]={2,4,8,3,6};
int myPins[6]; // Array mit 6 ints
myInts[0]=42; // Zuweisung der ersten Stelle
myInts[6]=12; // Fehler, da 6. Variable, den 5. Platz belegt
– 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
– 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
– Zugriff auf nicht flüchtigen Speicher –
byte read(addr)
write (addr, byte)
EEPROM[index]
– Servo-Motoren steuern –
attach(pin,[min_uS, max_uS])
write(Winkel) // 0-180
writeMicsosecounds(uS) // 1000-2000; 1500 ist Mitte
int read() // 0-180
bool attach()
detach()
– 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)