https://github.com/niklauslee/servo
Kaluma library to control servo motors
https://github.com/niklauslee/servo
kaluma motor servo
Last synced: 7 months ago
JSON representation
Kaluma library to control servo motors
- Host: GitHub
- URL: https://github.com/niklauslee/servo
- Owner: niklauslee
- License: mit
- Created: 2022-02-17T09:57:33.000Z (over 3 years ago)
- Default Branch: main
- Last Pushed: 2022-02-17T11:05:34.000Z (over 3 years ago)
- Last Synced: 2025-01-21T17:30:38.859Z (9 months ago)
- Topics: kaluma, motor, servo
- Language: JavaScript
- Homepage:
- Size: 49.8 KB
- Stars: 2
- Watchers: 2
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# Servo
Kaluma library to control servo motors. It uses PWM internally, so the servo should be wired to a PWM-capable pin.
# Wiring
Here is a wiring example with SG90.
| Raspberry Pi Pico | SG90 |
| ----------------- | ---- |
| VBUS | + |
| GND | - |
| GP15 | IN |
# Install
```sh
npm install https://github.com/niklauslee/servo
```# Usage
Here is an example:
```js
const {Servo} = require('servo');
const servo = new Servo();// attach to GP15
servo.attach(15);// Turn from 0 to 180 by 10 degrees
for (let i = 0; i <= 180; i = i+10) {
servo.write(i);
delay(500);
}
```# API
## Class: Servo
### new Servo()
Create an instance of Servo class.
### attach(pin[, min, max, period])
- **`pin`** `` A pin for control.
- **`min`** `` Pulse width in microseconds for the minimum degree (e.g. 0 angle). Default: `544`.
- **`max`** `` Pulse width in microseconds for the maximum degree (e.g. 180 angle). Default: `2400`.
- **`period`** `` Period in microseconds. Default: `20000`.Attach the instance to a PWM pin.
If you want to use multiple servo motors, you need to check [PWM slices and channels](https://docs.kaluma.io/boards/raspberry-pi-pico#pwm).
### detach()
Detach the instance from the PWM pin;
### write(angle)
- **`angle`** ``
Move the servo as the angle (0 ~ 180).
### read()
- **Return** ``
Returns the current angle of the servo (0 ~ 180).