Pi4J / pi4j-kotlin

Kotlin DSL for Pi4J V2

Home Page:https://pi4j.com/kotlin/

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Pi4J - Kotlin

Kotlin Interface & DSL for Pi4J V2
For Pi4J V1 Kotlin Bindings, check Pi4K (no longer supported).

Awesome Kotlin Badge Maven Central License GitHub Actions build state

Documentation

Full documentation can be found on the website

Example

This is a minimal working example, make sure to check it out for full introduction and comments.

const val PIN_BUTTON = 24 // PIN 18 = BCM 24
const val PIN_LED = 22 // PIN 15 = BCM 22
var pressCount = 0

console {
  title("<-- The Pi4J Project -->", "Minimal Example project")
  pi4j {
    digitalInput(PIN_BUTTON) {
        id("button")
        name("Press button")
        pull(PullResistance.PULL_DOWN)
        debounce(3000L)
        piGpioProvider()
      }.onLow {
        pressCount++
        +"Button was pressed for the ${pressCount}th time"
      }
    }
    
    digitalOutput(PIN_LED) {
        id("led")
        name("LED Flasher")
        shutdown(DigitalState.LOW)
        initial(DigitalState.LOW)
        piGpioProvider()
      }.run {
        while (pressCount < 5) {
          +"LED ${state()}"
          toggle()
          sleep(500L / (pressCount + 1))
        }
      }
    }
  }
}

About

Kotlin DSL for Pi4J V2

https://pi4j.com/kotlin/

License:Apache License 2.0


Languages

Language:Kotlin 100.0%