1
0
Fork 0
mirror of https://github.com/kou029w/megabit.git synced 2025-02-07 17:38:37 +00:00
megabit/src/pca9685.ts

51 lines
829 B
TypeScript
Raw Normal View History

2020-02-07 12:34:43 +09:00
import Device from "@chirimen/pca9685";
import { WritableDevice } from "./Device";
2020-02-07 13:58:09 +09:00
import { I2C, i2c } from "./i2c";
2020-02-07 12:34:43 +09:00
type Channel =
| 0
| 1
| 2
| 3
| 4
| 5
| 6
| 7
| 8
| 9
| 10
| 11
| 12
| 13
| 14
| 15;
/**
* @param minPulse sec
* @param maxPulse sec
* @param angleRange deg
*/
export function pca9685(
2020-02-07 13:58:09 +09:00
bus: I2C = i2c(),
2020-02-07 12:34:43 +09:00
address: number = 0x40,
channel: Channel = 0,
minPulse?: number,
maxPulse?: number,
angleRange?: number
): WritableDevice<number> {
const device = new Device(bus, address);
return {
/** @param angle deg */
async write(angle: number): Promise<void> {
if (device.i2cSlave == null) {
await device.init(minPulse, maxPulse, angleRange, false);
}
await device.setServo(channel, angle);
}
};
}
export default pca9685;