Dies ist eine alte Version des Dokuments!
TP-Mitglieder:
1. Interessen für Workshops im kommenden Jahr 2018 zum Thema unten bekunden durch Einfügen von "[* [Name] [Anmerkung]]" - jeder Weitere kann einen Stern etc. hinzufügen 2. Bitte ergänzen mit Details und Links
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