Hier findet Ihre einen Überblick über die Befehle und Funktionen des Arduino.
Struktur & Programmfluss void setup(){ void loop (){ Kontroll-Strukturen if (x<5) {...} else {...} Funktion <ret.type> <name>(<params>){...} bespws. int double (int x){return x*2;} |
Operatoren
Kombinierte Operatoren
Bitoperatoren
Pointer
|
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)