mirror of
https://github.com/tinygo-org/drivers.git
synced 2026-07-26 10:38:41 +00:00
f4583f5144cd671d6a9665096a5a2c56b33b0c53
Signed-off-by: Ron Evans <ron@hybridgroup.com>
TinyGo Drivers
This package provides a collection of hardware drivers for devices that can be used together with TinyGo.
Installing
go get tinygo.org/x/drivers
How to use
Here is an example in TinyGo that uses the BMP180 digital barometer:
package main
import (
"time"
"machine"
"tinygo.org/x/drivers/bmp180"
)
func main() {
machine.I2C0.Configure(machine.I2CConfig{})
sensor := bmp180.New(machine.I2C0)
sensor.Configure()
connected := sensor.Connected()
if !connected {
println("BMP180 not detected")
return
}
println("BMP180 detected")
for {
temp, _ := sensor.ReadTemperature()
println("Temperature:", float32(temp)/1000, "ºC")
pressure, _ := sensor.ReadPressure()
println("Pressure", float32(pressure)/100000, "hPa")
time.Sleep(2 * time.Second)
}
}
Currently supported devices
| Device Name | Interface Type |
|---|---|
| ADXL345 accelerometer | I2C |
| APA102 RGB LED | SPI |
| AT24CX 2-wire serial EEPROM | I2C |
| BH1750 ambient light sensor | I2C |
| BlinkM RGB LED | I2C |
| BME280 humidity/pressure sensor | I2C |
| BMP180 barometer | I2C |
| DS1307 real time clock | I2C |
| DS3231 real time clock | I2C |
| "Easystepper" stepper motor controller | GPIO |
| ESP8266/ESP32 AT Command set for WiFi/TCP/UDP | UART |
| GPS module | I2C/UART |
| HUB75 RGB led matrix | SPI |
| LIS3DH accelerometer | I2C |
| MAG3110 magnetometer | I2C |
| BBC micro:bit LED matrix | GPIO |
| Microphone - PDM | I2S/PDM |
| MMA8653 accelerometer | I2C |
| MPU6050 accelerometer/gyroscope | I2C |
| PCD8544 display | SPI |
| SHT3x Digital Humidity Sensor | I2C |
| SSD1306 OLED display | I2C / SPI |
| Thermistor | ADC |
| VL53L1X time-of-flight distance sensor | I2C |
| Waveshare 2.13" e-paper display | SPI |
| Waveshare 2.13" (B & C) e-paper display | SPI |
| WS2812 RGB LED | GPIO |
Contributing
Your contributions are welcome!
Please take a look at our CONTRIBUTING.md document for details.
License
This project is licensed under the BSD 3-clause license, just like the Go project itself.
Releases
10
Languages
Go
99.1%
Shell
0.7%