Skip to content

Instantly share code, notes, and snippets.

@isma44
Forked from misza222/drive_led_with_button.js
Created March 21, 2014 15:43
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save isma44/9689091 to your computer and use it in GitHub Desktop.
Save isma44/9689091 to your computer and use it in GitHub Desktop.
var fs = require('fs');
var button_gpio = 17; // maps to digital PIN5 on the board
var led_gpio = 27; // maps to digital PIN7
var fileOptions = {encoding: 'ascii'};
var exportGpio = function(gpio_nr) {
fs.writeFile('/sys/class/gpio/export', gpio_nr, fileOptions, function (err) {
if (err) { console.log("Couldn't export %d, probably already exported.", gpio_nr); }
});
};
var setGpioDirection = function(gpio_nr, direction) {
fs.writeFile("/sys/class/gpio/gpio" + gpio_nr + "/direction", direction, fileOptions, function (err) {
if (err) { console.log("Could'd set gpio" + gpio_nr + " direction to " + direction + " - probably gpio not available via sysfs"); }
});
}
var setGpioIn = function(gpio_nr) {
setGpioDirection(gpio_nr, 'in');
}
var setGpioOut = function(gpio_nr) {
setGpioDirection(gpio_nr, 'out');
}
// pass callback to process data asynchroniously
var readGpio = function(gpio_nr, callback) {
var value;
fs.readFile("/sys/class/gpio/gpio" + gpio_nr + "/value", fileOptions, function(err, data) {
if (err) { console.log("Error reading gpio" + gpio_nr); }
value = data;
callback(data);
});
return value;
};
var writeGpio = function(gpio_nr, value) {
fs.writeFile("/sys/class/gpio/gpio" + gpio_nr + "/value", value, fileOptions, function(err, data) {
if (err) { console.log("Writing " + gpio_nr + " " + value); }
});
};
exportGpio(led_gpio);
exportGpio(button_gpio);
setGpioOut(led_gpio);
setGpioIn(button_gpio);
// repeat reading/writing in a loop
setInterval(function() {
readGpio(button_gpio, function(data) {
writeGpio(led_gpio, data);
});
}, 1000);
@isma44
Copy link
Author

isma44 commented Mar 21, 2014

Button Sketch例のnode版です。
注意)ボタン用Pinは2番ではなく、5番です。(GPIO mapping)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment