@dawiidio/seesaw
v0.1.0
Published
Adafruit seesaw boards driver for node
Downloads
20
Maintainers
Readme
Seesaw
Adafruit Seesaw boards driver for Node.js
Still under heavy development, support for the rest of functionalities will be added soon.
Installation
npm i -S @dawiidio/seesaw
// or
yarn add @dawiidio/seesaw
Usage
import i2c from 'i2c-bus';
import { Seesaw, SeesawPinMode } from '@dawiidio/seesaw';
async function main() {
const address = 0x49 as const;
const bus = await i2c.openPromisified(1);
const device = new Seesaw({
bus,
address,
});
await device.detectHardware();
// software reset, could be skipped
await device.reset();
const ledPin = 15;
const adcPin = 2;
await device.pinMode(ledPin, SeesawPinMode.OUTPUT);
await device.pinMode(adcPin, SeesawPinMode.INPUT);
setInterval(async () => {
console.log('ADC >', await device.analogReadVoltage(adcPin));
await device.toggle(ledPin);
}, 1000);
}
main();
Supported functionalities
- [x] Device
- [x] Pin config
- [x] GPIO
- [x] ADC
- [ ] PWM
- [ ] UART
- [ ] Interrupts
- [ ] Eeprom
- [ ] Neopixel
- [ ] Touch buttons (may work with basic GPIO config)
Device
Reset
device software reset
await device.reset();
Pin config
import { Seesaw, SeesawPinMode } from '@dawiidio/seesaw';
//...
device.pinMode(15, SeesawPinMode.OUTPUT);
// or
device.pinMode(15, SeesawPinMode.INPUT);
// or
device.pinMode(15, SeesawPinMode.INPUT_PULLDOWN);
// or
device.pinMode(15, SeesawPinMode.INPUT_PULLUP);
GPIO
Write
const pinValue = true;
await device.digitalWrite(15, pinValue);
Read
const pinValue: boolean = await device.digitalRead(15);
Toggle
await device.toggle(15);
ADC
Read
Read raw ADC value
const adcValue: number = await device.analogRead(2); // int
Read voltage
const device = new Seesaw({
bus,
address,
adcRefVoltage: 3.3 // by default 3.3, if your Seesaw board runs on 5v set 5 here
});
// ...
// below value will be based on voltage set in the constructor settings
const adcValue: number = await device.analogReadVoltage(2); // float
Supported microcontrollers
- [x] Attiny8xx
- [x] Attiny16xx
- [x] SAMD09