80 lines
2.2 KiB
JavaScript
80 lines
2.2 KiB
JavaScript
var LCDPLATE, lcd;
|
|
LCDPLATE = require('adafruit-i2c-lcd').plate;
|
|
lcd = new LCDPLATE(1, 0x20);
|
|
var index = 0;
|
|
|
|
// create some custom characters
|
|
lcd.createChar(1, [2, 3, 2, 2, 14, 30, 12, 0])
|
|
lcd.createChar(2, [0, 1, 3, 22, 28, 8, 0, 0])
|
|
lcd.createChar(3, [0, 14, 21, 23, 17, 14, 0, 0])
|
|
lcd.createChar(4, [31, 17, 10, 4, 10, 17, 31, 0])
|
|
lcd.createChar(5, [8, 12, 10, 9, 10, 12, 8, 0])
|
|
lcd.createChar(6, [2, 6, 10, 18, 10, 6, 2, 0])
|
|
lcd.createChar(7, [31, 17, 21, 21, 21, 21, 17, 31])
|
|
|
|
//demo content
|
|
var demo = [{
|
|
color: lcd.colors.RED,
|
|
message: 'test backlight\n color: RED \x01'
|
|
}, {
|
|
color: lcd.colors.GREEN,
|
|
message: 'test backlight\n color: GREEN \x02'
|
|
}, {
|
|
color: lcd.colors.BLUE,
|
|
message: 'test backlight\n color: BLUE \x03'
|
|
}, {
|
|
color: lcd.colors.YELLOW,
|
|
message: 'test backlight\n color: YELLOW \x04'
|
|
}, {
|
|
color: lcd.colors.TEAL,
|
|
message: 'test backlight\n color: TEAL \x05'
|
|
}, {
|
|
color: lcd.colors.VIOLET,
|
|
message: 'test backlight\n color: VIOLET \x06'
|
|
}, {
|
|
color: lcd.colors.WHITE,
|
|
message: 'test backlight\n color: WHITE \x07'
|
|
}, {
|
|
color: lcd.colors.WHITE,
|
|
message: 'now try pressing\n some buttons!'
|
|
}
|
|
|
|
]
|
|
|
|
// show button state on lcd and console
|
|
function displayButton(state, button) {
|
|
lcd.clear();
|
|
lcd.message('Button: ' + lcd.buttonName(button) + '\nState: ' + state);
|
|
console.log(state, lcd.buttonName(button));
|
|
}
|
|
|
|
//show hello world in red
|
|
lcd.backlight(lcd.colors.RED);
|
|
lcd.message('Hello World!\nLoading demo...');
|
|
|
|
//start demo, loop over the demo content.
|
|
var demoInterval = setInterval(function() {
|
|
if (index < 8) {
|
|
//show demo content
|
|
lcd.clear();
|
|
lcd.backlight(demo[index].color);
|
|
lcd.message(demo[index].message);
|
|
} else {
|
|
//end of demo
|
|
clearInterval(demoInterval);
|
|
|
|
//register events to show button press/release
|
|
lcd.on('button_change', function(button) {
|
|
console.log('button_change', lcd.buttonName(button));
|
|
});
|
|
|
|
lcd.on('button_down', function(button) {
|
|
displayButton('pressed', button);
|
|
});
|
|
|
|
lcd.on('button_up', function(button) {
|
|
displayButton('released', button);
|
|
});
|
|
}
|
|
index++;
|
|
}, 1000);
|