NeoPixel RGB LED Module
Nim wrapper for libDaisy NeoPixel support (WS2812B). This module uses the Adafruit Seesaw I2C bridge (e.g. NeoTrellis).
Note: This is NOT for direct GPIO control of WS2812B LEDs. For direct control, you would need a different driver (currently not in libDaisy).
Usage Example:
import nimphea import nimphea/dev/neopixel var neopixel: NeoPixelI2C var config: NeoPixelI2CConfig # Configure defaults (I2C1, 400kHz, 16 LEDs) config.transport_config.periph = I2C_1 config.transport_config.speed = I2C_400KHZ config.transport_config.scl = D11() config.transport_config.sda = D12() config.numLEDs = 16 neopixel.init(config) # Set first pixel to red neopixel.setPixelColor(0, 255, 0, 0) neopixel.show()
Types
NeoPixelI2C {.importcpp: "daisy::NeoPixelI2C", byref.} = object
- Source Edit
NeoPixelI2CConfig {.importcpp: "daisy::NeoPixel<daisy::NeoPixelI2CTransport>::Config", bycopy.} = object transport_config* {.importcpp: "transport_config".}: NeoPixelI2CTransportConfig type_flags* {.importcpp: "type".}: uint16 numLEDs* {.importcpp: "numLEDs".}: uint16 output_pin* {.importcpp: "output_pin".}: int8
- Source Edit
NeoPixelI2CTransportConfig {.importcpp: "daisy::NeoPixelI2CTransport::Config", bycopy.} = object periph* {.importcpp: "periph".}: I2CPeripheral speed* {.importcpp: "speed".}: I2CSpeed scl* {.importcpp: "scl".}: Pin sda* {.importcpp: "sda".}: Pin address* {.importcpp: "address".}: uint8
- Source Edit
NeoPixelResult {.importcpp: "daisy::NeoPixel<daisy::NeoPixelI2CTransport>::Result", size: 4.} = enum NEO_OK = 0, NEO_ERR = 1
- Source Edit
Consts
NEO_KHZ400 = 0x0100'u16
- Source Edit
NEO_KHZ800 = 0x0000'u16
- Source Edit
Procs
proc clear(this: var NeoPixelI2C) {.importcpp: "#.Clear()", header: "dev/neopixel.h", ...raises: [], tags: [], forbids: [].}
- Source Edit
proc defaultConfig(): NeoPixelI2CConfig {....raises: [], tags: [], forbids: [].}
- Source Edit
proc getPixelColor(this: var NeoPixelI2C; n: uint16): uint32 {. importcpp: "#.GetPixelColor(@)", header: "dev/neopixel.h", ...raises: [], tags: [], forbids: [].}
- Source Edit
proc init(this: var NeoPixelI2C; config: NeoPixelI2CConfig): NeoPixelResult {. importcpp: "#.Init(@)", header: "dev/neopixel.h", ...raises: [], tags: [], forbids: [].}
- Source Edit
proc newNeoPixelI2CConfig(): NeoPixelI2CConfig {. importcpp: "daisy::NeoPixel<daisy::NeoPixelI2CTransport>::Config()", constructor, header: "dev/neopixel.h", ...raises: [], tags: [], forbids: [].}
- Source Edit
proc newNeoPixelI2CTransportConfig(): NeoPixelI2CTransportConfig {. importcpp: "daisy::NeoPixelI2CTransport::Config()", constructor, header: "dev/neopixel.h", ...raises: [], tags: [], forbids: [].}
- Source Edit
proc numPixels(this: var NeoPixelI2C): uint16 {.importcpp: "#.NumPixels()", header: "dev/neopixel.h", ...raises: [], tags: [], forbids: [].}
- Source Edit
proc setBrightness(this: var NeoPixelI2C; b: uint8) {. importcpp: "#.SetBrightness(@)", header: "dev/neopixel.h", ...raises: [], tags: [], forbids: [].}
- Source Edit
proc setPixelColor(this: var NeoPixelI2C; n: uint16; color: uint32) {. importcpp: "#.SetPixelColor(@)", header: "dev/neopixel.h", ...raises: [], tags: [], forbids: [].}
- Source Edit
proc setPixelColor(this: var NeoPixelI2C; n: uint16; r, g, b, w: uint8) {. importcpp: "#.SetPixelColor(@)", header: "dev/neopixel.h", ...raises: [], tags: [], forbids: [].}
- Source Edit
proc setPixelColor(this: var NeoPixelI2C; n: uint16; r, g, b: uint8) {. importcpp: "#.SetPixelColor(@)", header: "dev/neopixel.h", ...raises: [], tags: [], forbids: [].}
- Source Edit
proc show(this: var NeoPixelI2C) {.importcpp: "#.Show()", header: "dev/neopixel.h", ...raises: [], tags: [], forbids: [].}
- Source Edit