fabriziobertocci / async-hd44780

An asynchronous javascript library to control a LCD based on the Hitachi HD44780 controller

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

async-hd44780

An asynchronous javascript library to control a LCD based on the Hitachi HD44780 controller.

The Hitachi HD44780 is an alphanumeric dot matrix LCD controller developed by Hitachi that was (and still) commonly used in various alphanumeric displays like the following:

This project is based on the Python code from the Adafruit_Python_CharLCD. It is ported to node.js and uses the James Barrel's rpi-gpio library for low-level GPIO access.

The code is entirely asynchronous and best suited for JS project where you cannot block the main event loop. It extensively make use of the Async library to ensure the correct sequence of operations.

Getting Started

npm install async-hd44780

Usage

Example:

var async = require('async');
var lcd = require('async-hd44780');

// Install signal handler to do a clean shutdown
process.on('SIGINT', () => {
    setImmediate(() => {
        // Invokes finalizer after pending I/O operations complete
        lcd.finalize( () => { process.exit(0) });
    }
});

async.series([
    (next) => { lcd.initialize(undefined, next); },
    (next) => { lcd.printLine("  Hello World!  ", 0, next); },
    (next) => { lcd.printLine("================", 1, next); },
]);

If you are having problems try enabling debugging by setting the environment variable DEBUG to a comma-separated list of modules to debug (or the special wildcard * to enable all module to print debug info). Example:

$ DEBUG=async-hd44780,rpi-gpio node ./lcd-test.js

About

An asynchronous javascript library to control a LCD based on the Hitachi HD44780 controller

License:MIT License


Languages

Language:JavaScript 100.0%