Skip to content

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

License

Notifications You must be signed in to change notification settings

fabriziobertocci/async-hd44780

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

16 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

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

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published