applyDigitalLeds()
Gibt die zuvor mit setDigitalLed() definierten Farbwerte auf dem mit initDigitalLeds() ausgewähltem Pin aus.
applyDigitalLeds()
setDigitalLed(ledNr:byte, r:byte, g:byte, b:byte)
Setzt den Farbwert (RGB) des ausgewählten digitalen LEDs.
setDigitalLed(0, 50, 255, 10)
initDigitalLeds(pinNr:byte, ledsCount:byte, ledType:byte)
Initialisiert das ausgewählte pin so, dass eine definierte Anzahl digitale LEDs (z.B. NeoPixels) vom gewünschten Typ gesetzt werden können.
LED types:
C_LED_TYPE_WS2812
C_LED_TYPE_WS2812B
C_LED_TYPE_WS2812B_MINI
C_LED_TYPE_WS2813
C_LED_TYPE_WS2814
C_LED_TYPE_SK6812
initDigitalLeds(C_PIN_01, 12, C_LED_TYPE_WS2812B)
getI2CByteAddrSize()->byte
Gibt die im Moment verwendete Datentyp-Grösse der byteAddr zurück.
setI2CByteAddrSize(size:byte)
Setzt die bei I2C-Funktionen verwendete Datentyp-Grösse der byteAddr. Diese ist meist 1 (0… 255), kann bei bestimmten Geräten aber auch 2 (0… 65535) sein.
checkI2CAddress(slaveAddr:byte)->bool
Gibt true zurück, wenn ein Gerät mit definierter slaveAddr gefunden wurde und sonst false.
setPWMDutyCycleResolution(res:byte)
Setzt die verwendete PWM-Auflösung: 0… 20bit (Default: 12bit)
setPWMDutyCycleResolution(12)
setPWMFrequency(freq:long)
Setzt die verwendete PWM-Frequenz: 10… 9765 Hz (13bit) oder 19… 19531 Hz (12bit) oder 38… 39062 Hz (11bit) usw. (Default: 500Hz)
setPWMFrequency(1000)
writePWM(pinNr:byte, dutyCycleValue:long)
Gibt auf dem ausgewählten GPIO ein PWM-Signal mit 500Hz und definiertem dutyCycle-Wert von 0 (0%) bis 4096 (100% bei 12bit) aus.
writePWM(C_PIN_01, 2048) # 50%
writeDAC(pinNr:byte, value:byte)
Nur Oxocard-Connect
Gibt auf dem ausgewählten GPIO (C_PIN_02 oder C_PIN_03) ein analoges Spannungssignal zwischen 0 (0) und 3.3V (255) aus.
writeDAC(C_PIN_02, 127)
setI2CReadBufferIndex(index:int)
Setzt den internen readBufferIndex auf den gewünschten Wert.
Dies erlaubt es ein zuvor gelesener Wert noch einmal zu lesen.
readI2C(0x4C, 0x0D, 6) # accel raw X, Y & Z axis
xRaw = getI2CInt()
setI2CReadBufferIndex(0)
xRaw = getI2CInt()
yRaw = getI2CInt()
zRaw = getI2CInt()
getI2CLong()->long
Gibt ein zuvor mit readI2C() gelesener Long zurück.
Der interne readBufferIndex wird um 4 erhöht.
getI2CInt()->int
Gibt ein zuvor mit readI2C() gelesener Integer zurück.
Der interne readBufferIndex wird um 2 erhöht.
getI2CByte()->byte
Gibt ein zuvor mit readI2C() gelesenes Byte zurück.
Der interne readBufferIndex wird um 1 erhöht.
readI2C(slaveAddr:byte, byteAddr:int, size:int)
Liest eine beliebige Anzahl Bytes (size) eines definierten I2C-Slaves (7bit slaveAddr) und Registers (byteAddr).
Wenn byteAddr -1 ist, wird nach der Übertragung der slaveAddr direkt gelesen.
Mit den getI2C-Funktionen können anschliessend die gelesenen Daten zurückgegeben werden.
readI2C(0x4C, 0x0D, 6) # accel raw X, Y & Z axis
xRaw = getI2CInt()
yRaw = getI2CInt()
zRaw = getI2CInt()
readI2CLong(slaveAddr:byte, byteAddr:int)->long
Liest ein Long (4 Bytes) eines definierten I2C-Slaves (7bit slaveAddr) und Registers (byteAddr).
Wenn byteAddr -1 ist, wird nach der Übertragung der slaveAddr direkt gelesen.
ir = readI2CLong(0x52, 0x0A) # IR value (3 bytes + 1 unused)
ir = ir & 0x00FFFFFF # Maskierung der ersten 3 bytes
readI2CInt(slaveAddr:byte, byteAddr:int)->int
Liest ein Integer (2 Bytes) eines definierten I2C-Slaves (7bit slaveAddr) und Registers (byteAddr).
Wenn byteAddr -1 ist, wird nach der Übertragung der slaveAddr direkt gelesen.
readI2CInt(0x4C, 0x0D) # accel raw X axis (16bit)
readI2CByte(slaveAddr:byte, byteAddr:int)->byte
Liest ein Byte eines definierten I2C-Slaves (7bit slaveAddr) und Registers (byteAddr).
Wenn byteAddr -1 ist, wird nach der Übertragung der slaveAddr direkt gelesen.
readI2CByte(0x4C, 0x18) # accel ID => 164
writeI2C(slaveAddr:byte, byteAddr:int, size:int, data:byte[])
Schreibt eine beliebige Anzahl Bytes (size) eines definierten I2C-Slaves (7bit slaveAddr) und Registers (byteAddr).
data = [0x11, 0x22, 0x33]
writeI2C(0x2C, 0x05, 3, data)
writeI2CLong(slaveAddr:byte, byteAddr:int, data:long)
Schreibt ein Long (4 Bytes) eines definierten I2C-Slaves (7bit slaveAddr) und Registers (byteAddr).
writeI2CLong(0x2C, 0x05, 0x42133742)
writeI2CInt(slaveAddr:byte, byteAddr:int, data:int)
Schreibt ein Integer (2 Bytes) eines definierten I2C-Slaves (7bit slaveAddr) und Registers (byteAddr).
writeI2CInt(0x2C, 0x05, 0x1337)
writeI2CByte(slaveAddr:byte, byteAddr:int, data:byte)
Schreibt ein Byte eines definierten I2C-Slaves (7bit slaveAddr) und Registers (byteAddr).
writeI2CByte(0x4C, 0x08, 0x13) # accel sample rate = 100Hz
readADC(pinNr:byte, nSamples:long)->int
Liest den analogen Wert (analog analogRead) von entweder pinNr 32 oder 33 mehrere Male (nSamples) und bildet einen Durchschnittswert.
Die eingestellte Referenzspannung beträgt ~2600mV (11dB Dämpfung).
Der zurückgegebene Wert bewegt sich zwischen 0 und 4095 (12bit).
readADC(32, 100)
readADC(33, 1000)
readGPIO(pinNr:byte)->bool
Liest den Zustand eines zuvor als INPUT(_PULLUP/DOWN) initialisierten GPIOs (analog digitalRead).
initGPIO(32, INPUT_PULLDOWN)
readGPIO(32) # false (0)
readGPIO(32) # true (1) wenn mit 3.3V verbunden
writeGPIO(pinNr:byte, state:bool)
Setzt den Zustand eines zuvor als OUTPUT initialisierten GPIOs (analog digitalWrite).
initGPIO(32, OUTPUT)
writeGPIO(32, 1) # HIGH
writeGPIO(32, 0) # LOW
initGPIO(pinNr:byte, mode:byte)
Initialisiert das gewählte GPIO (analog pinMode) mit einem der folgenen Modi:
OUTPUT
INPUT
INPUT_PULLUP
INPUT_PULLDOWN
Verfügbare pinNr-Konstanten:
C_PIN_01 (20*)
C_PIN_02 (25*)
C_PIN_03 (26*)
C_PIN_04 (32)
C_PIN_05 (33)
C_PIN_06 (34*)
C_PIN_07 (35*)
C_PIN_MISO (8)
C_PIN_MOSI (5)
C_PIN_SCK (7)
C_PIN_SDA (21*)
C_PIN_SCL (22*)