Hardware / Module / Schnittstellen
Hardware
Hier finden sich die Zusammenhänge zwischen den Arduino-Boards und den Mikrocontrollern.
Die alten Arduino Dokus waren übersichtlicher, aber da sind sie ja doch noch :)
ATMega328
Für die folgenden Boards wird ein ATMega328 Mikrocontroller verwendet, hier das Handbuch zum ATMega328(PDF) (neu Microchip AVR, vormals Atmel AVR (->Wikipedia)).
Darin wird auf (alt:450 neu:)300 Seiten alles dokumentiert, was man zum Mikrocontroller wissen muss und damit, was man beim Nutzen bzw. Hacken der Boards benötigt!
Einige Boards mit ATMega328
Arduino Duemilanove (eine art Ur-Arduino): Documentation Schaltplan(PDF)2009
Arduino UNO R3 (Weiterentwicklung): Documentation(PDF) Schaltplan(PDF) Datasheet + Pin-Layout(image)
Arduino Pro Mini (Minimalboard ohne USB-Seriell-Wandler): Documentation Schaltplan(PDF) Pin-Layout(image) (aus dem Forum)
Arduino Nano (Minimalboard mit USB-Seriell-Wandler): Documentation+Schaltplan(PDF) Pin-Layout(image)
ATmega32u4
Mikrocontroller ATmega32u4 mit USB-Schnittstelle und der Möglichkeit, diese z.B. als HID Device (Human Interface Device wie z.B. Tastatur) zu programmieren, so daß man dann das Board z.B. als Tastatur an einen PC stecken kann! Mit einem Arduino-Programm kann man dann beliebige Tastendrücke auslösen. Analog mit Maus-/Joystick-Funktion.
Einige Boards mit ATmega32u4
Leonardo: https://docs.arduino.cc/hardware/leonardo
Micro (kleine Version des Leonardo) ("Pro Micro" ist die Billigversion(?) davon): https://docs.arduino.cc/hardware/micro
Themen / Module / Schnittstellen
Module
Input / Sensoren
Eingabe
Taster, Schalter
Poti (Drehwiederstand, Analog)
Drehgeber / Rotary Encoder
Sensortaste
G-Sensor 3-Achsen
Chip:mma7361 - Analogwert je Achse
G-Sensor + Gyro 6-Achsen
Chip:MPU-6050 (icl. Temp.)
Modul:GY-521 - 8Pins, I2C, incl. Spannungsregler 5v→3.3V
#include <Wire.h> const int MPU_addr=0x68; // I2C address of the MPU-6050 void setup() { Wire.begin(); // I2C: Leonardo: Pin 2 (SDA), Pin 3 (SCL) Wire.beginTransmission(MPU_addr); Wire.write(0x6B); // PWR_MGMT_1 register Wire.write(0); // set to zero (wakes up the MPU-6050) Wire.endTransmission(true); } void loop() { Wire.beginTransmission(MPU_addr); Wire.write(0x3B); // starting with register 0x3B (ACCEL_XOUT_H) Wire.endTransmission(false); Wire.requestFrom(MPU_addr,14,true); // request a total of 14 registers int16_t AcX,AcY,AcZ,Tmp,GyX,GyY,GyZ; AcX=Wire.read()<<8|Wire.read(); // 0x3B (ACCEL_XOUT_H) & 0x3C (ACCEL_XOUT_L) AcY=Wire.read()<<8|Wire.read(); // 0x3D (ACCEL_YOUT_H) & 0x3E (ACCEL_YOUT_L) AcZ=Wire.read()<<8|Wire.read(); // 0x3F (ACCEL_ZOUT_H) & 0x40 (ACCEL_ZOUT_L) Tmp=Wire.read()<<8|Wire.read(); // 0x41 (TEMP_OUT_H) & 0x42 (TEMP_OUT_L) GyX=Wire.read()<<8|Wire.read(); // 0x43 (GYRO_XOUT_H) & 0x44 (GYRO_XOUT_L) GyY=Wire.read()<<8|Wire.read(); // 0x45 (GYRO_YOUT_H) & 0x46 (GYRO_YOUT_L) GyZ=Wire.read()<<8|Wire.read(); // 0x47 (GYRO_ZOUT_H) & 0x48 (GYRO_ZOUT_L) ... }
G-Sensor + Gyro + Magnetometer 9-Achsen
Chips:MPU9250
Modul:GY-9250 - 10Pins, I2C, incl. Spannungsregler 5v→3.3V
G-Sensor + Gyro + Magnetometer 9-Achsen + Altimeter
Chips:MPU9250 +BMP280(Altimeter)
Modul:GY-91 - 8Pins, I2C, incl. Spannungsregler 5v→3.3V
Temperatur
Luftfeuchte (idR incl. Temperatur)
Output / Aktoren
Relais-Modul
Meist mit Optokoppler, Schutzdioden, Möglichkeit Stromversorgung der Relaisspulen von der Logik zu trennen
Motorsteuerung
Für normale Gleichstrommotoren
Für Schrittmotoren
Für Servomotoren (wie aus dem Modellbau)
LED Streifen (einzeln ansteuerbar)
WS2812B - RGB 24Bit je LED mit 1-Draht 800kHz Spezialprotokoll
SK6812 RGBW / RGBWW 32Bit je LED, ansonsten wie WS2812B
Bibliothek: z.B. http://fastled.io/
Schnittstellen
TCP/IP
WLAN z.B. via ESP8266 oder ESP32
LAN via verschiedene Module
Dgital In
Mit optional zuschaltbarem Pull-Up-Widestand 50KOhm
Dgital Out
idR Abs. max. 40mA (ATmega328 etc. wie beim UNO,…)
Analog In
10-Bit Wandler (UNO:6Stck., Pro Mini:8Stck.)
Analog Out
DAC (Digital nach Analogausgang): 2 DACs beim Arduino Due Board
Ansonsten PWM Ausgänge (z.B. 6 Stck. beim UNO)
I2C
#include <Wire.h> https://www.arduino.cc/en/Reference/Wire
Arduino-Boards / Pins
Uno, Ethernet: A4 (SDA), A5 (SCL) Mega2560: 20 (SDA), 21 (SCL) Leonardo: 2 (SDA), 3 (SCL) Due: 20 (SDA), 21 (SCL), SDA1, SCL1