intval3/tests/gpio.js

46 lines
908 B
JavaScript

'use strict'
const Gpio = require('onoff').Gpio
const btn = Gpio(5, 'in', 'both')
console.log('Watching input on GPIO 05')
let saveTime = 0
let active = false
btn.watch((err, val) => {
const NOW = +new Date()
/* Button + 10K ohm resistor */
/* 1 = open */
/* 0 = closed */
if (err) {
return console.error(err)
}
console.log(`Release switch val: ${val}`)
if (val === 1) {
console.log('open')
} else if (val === 0) {
console.log('closed')
}
if (val === 0) {
if (saveTime === 0) {
saveTime = NOW
active = true //maybe unncecessary
}
} else if (val === 1) {
if (active) {
if (NOW - saveTime > 100) {
console.log('Started Frame')
} else if (NOW - saveTime > 1000) {
console.log('Started Sequence')
}
console.log(`Release closed for ${NOW - saveTime}`)
saveTime = 0
active = false
}
}
})
/*setInterval(() => {
console.log(btn.readSync())
}, 1000)*/