bicolor-bargraph v0.1.0
bicolor-bargraph
Johnny-Five component for an Adafruit Bi-Color 24 Bargraph
Install
$ npm i johnny-five bicolor-bargraph
Requirements
- Node.js v6.x or newer
Example
The following naive example shows how a CPU load indicator (updating every second) can be created for a Raspberry Pi.
- When the load is light, a handful of green LEDs will display
- When the load is moderate, these green LEDs will display, as well as yellow ones
- When the load is heavy, you get green + yellow + red
The bar graph has 24 bars; thusly the colored sections are each of size 8.
'use strict';
const percent = require('cpu-percent');
const j5 = require('johnny-five');
const raspi = require('raspi-io');
const bargraph = require('bicolor-bargraph');
function color(i) {
if (i > 16) {
return bargraph.GREEN;
} else if (i > 8) {
return bargraph.YELLOW;
}
return bargraph.RED;
}
new j5.Board({
io: new raspi(),
repl: false
}).on('ready', () => {
const bar = bargraph();
percent((err, value) => {
if (err) {
throw err;
}
// invert numbers to change "direction"
const pct = Math.round(24 * (100 - value) / 100);
const [cols, values] = [[], []];
for (let i = 0; i < 24; i++) {
cols.push(i);
values.push(pct <= i ? color(i) : bargraph.OFF);
}
// sets many LEDs at once in a single I2C write
bar.leds(cols, values);
});
});
I'm Calling This "Usage"
Other methods are available, similarly to the Led.Matrix component:
on()
: enable component (happens automatically upon instantiation)off()
: disable componentclear()
: turn all LEDs offbrightness(value)
: 0-100blink(value)
: blink at 2 HZ, (0x02
), 1 HZ (0x04
), or 0.5 HZ (0x06
). Default is no blinking (0x00
)led(bar, value)
: Control an individual bar, wherevalue
is a color (see constants below)
The module exports class BicolorBargraph
if you want it, but its default export is a factory function.
It exports constants RED
, GREEN
, YELLOW
, and OFF
to help with the colors.
It should support multiple devices, but I don't have multiple devices to test.
The module supports some options via the factory function or constructor, but probably best to leave them be.
Prior Art
This module is based on:
License
Copyright 2017 Christopher Hiller. Licensed Apache-2.0
7 years ago