opengpio
Version:
A performant c++ based general purpose GPIO controller for linux devices. OpenGPIO is written using libgpiod, line & chip based abstractions.
76 lines (61 loc) • 1.99 kB
text/typescript
import { NanoPi_NEO3, Edge } from '../src';
// const watch = NanoPi_NEO3.watch(NanoPi_NEO3.bcm.GPIO3_B0, Edge.Both);
// watch.on('event', (value) => {
// console.log('Event', value);
// });
// setTimeout(() => {
// watch.stop();
// }, 5000);
// setInterval(() => {
// console.log(1);
// }, 1000);
const pwm = NanoPi_NEO3.pwm(NanoPi_NEO3.bcm.GPIO3_B0, 0.11, 50);
// let freq = 1;
// setInterval(() => {
// freq += 1;
// pwm.setFrequency(freq);
// }, 2000)
// Write a fit function that fits a number between -1 and 1 to 0.05 and 0.1
// function fit(number: number, fromMin = -1, fromMax = 1, toMin = 0.05, toMax = 0.1) {
// // Ensure the input number is within the [-1, 1] range
// if (number < -1) {
// number = -1;
// } else if (number > 1) {
// number = 1;
// }
// // Map the number to the desired range
// const fromRange = fromMax - fromMin;
// const toRange = toMax - toMin;
// const normalizedNumber = (number - fromMin) / fromRange;
// const mappedNumber = normalizedNumber * toRange + toMin;
// return mappedNumber;
// }
// setTimeout(() => {
// pwm.setDutyCycle(0.071);
// }, 5000);
setTimeout(() => {
let dutyCycle = 0.06;
let direction = 1;
setInterval(() => {
dutyCycle += direction * 0.0001;
if (dutyCycle >= 0.1) {
dutyCycle = 0.1;
direction = -1;
} else if (dutyCycle <= 0.04) {
dutyCycle = 0.04;
direction = 1;
}
console.log(dutyCycle);
pwm.setDutyCycle(dutyCycle);
}, 50);
}, 5000);
// Go from 0 to 1 in 10 steps and back to 0 in 10 steps continuously
// const pin = NanoPi_NEO3.output(NanoPi_NEO3.bcm.GPIO3_B0);
// let value = false;
// setInterval(() => {
// pin.value = value;
// value = !value;
// }, 1000)
// NanoPi_NEO3.set(27, false);
// const watchWorker = NanoPi_NEO3.watch(27, Edge.Rising, (value) => {});
// const pwm = NanoPi_NEO3.pwm(27, 0.1, 50);