The London Perl and Raku Workshop takes place on 26th Oct 2024. If your company depends on Perl, please consider sponsoring and/or attending.

NAME

HiPi::Control::LCD

VERSION

Version 0.01

SYNOPSYS

    use HiPi::Constant qw( :raspberry :pinmode :serial
        :spi :i2c :wiring :bcm2835 :mcp23017 :htv2cmd
        :htv2baudrate );
    
    use HiPi::Control::LCD qw( :cursor :hd44780 );
    use HiPi::Control::LCD::SerLCD;
    
    my $hp = HiPi::Control::LCD::SerLCD->new( { width => 16, lines => 2, backlightcontrol => 1, devicetype => 'serialrx' } );
    $hp->enable(1);
                
    $hp->backlight(25);
    $hp->clear;

    $hp->set_cursor_position(0,0);
    $hp->send_text('Raspberry Pi');

    $hp->set_cursor_position(0,1);
    $hp->send_text('SerLCD Control');

DESCRIPTION

This module is a base class for a common interface to Hitachi HD44780 displays whether driven by I2C interfaces, SerialRX interfaces or direct HD44780 access.

Modules are currently provided for:

SparkFun SerLCD serialRX interface HiPi::Control::LCD::SerLCD

HobbyTronics Version 2 Backpack (serialRX and I2C ) HiPi::Control::LCD::HTBackpackV2

METHODS

Common methods used by all HiPi::Control::LCD::xx classes.

new

    my $lcd = HiPi::Control::LCD::SerLCD->new(
      { width => 16,
        lines => 2,
        backlightcontrol => 1,
        devicetype => 'serialrx' }
    );
    
    Width & lines provide the character dimensions of the display
    
    backlightcontrol sets whether the interface should be allowed to
    control the backlight levels. For some LCDs attempting to set
    the backlight level via a serlRX or I2C interface can damage
    the LCD. Set to 0 to disable backlight control
    
    devicetype - can be serialrx or i2c depending on what your
    hardware supports.

enable $lcd->enable($bool);

Switch the LCD on / off

set_cursor_position

    $lcd->set_cursor_position($column, $row);

Set the current cursor position. $lcd->set_cursor_position(0, 0) sets the position to the leftmost column of the top row.

move_cursor_left

    $lcd->move_cursor_left();

Shift the cursor position 1 to the left

move_cursor_right

    $lcd->move_cursor_right();

Shift the cursor position 1 to the right

home

    $lcd->home();

Move the cursor to top left

clear

    $lcd->clear();

Move the cursor to top left and clear all text

set_cursor_mode

    $lcd->set_cursor_mode($mode);

Set the cursor mode. Valid values for $mode are the module constants exported under tag ':cursor'

    SRX_CURSOR_OFF 
    SRX_CURSOR_BLINK 
    SRX_CURSOR_UNDERLINE

backlight

    $lcd->$backlight($percent);

Set the backlight light level. Valid values for $percent is a number between 0 and 100

send_text

    $lcd->send_text($textstring);

Send text to be 'printed' at the current cursor position.

send_command

    $lcd->send_command($command);

Send an HD44780 command. Valid values for $command are the module constants exported under tag ':hd44780'

    HD44780_CLEAR_DISPLAY 
    HD44780_HOME_UNSHIFT
    HD44780_CURSOR_MODE_LEFT
    HD44780_CURSOR_MODE_LEFT_SHIFT
    HD44780_CURSOR_MODE_RIGHT
    HD44780_CURSOR_MODE_RIGHT_SHIFT
    HD44780_DISPLAY_OFF
    HD44780_DISPLAY_ON
    HD44780_CURSOR_OFF
    HD44780_CURSOR_UNDERLINE
    HD44780_CURSOR_BLINK
    HD44780_SHIFT_CURSOR_LEFT
    HD44780_SHIFT_CURSOR_RIGHT
    HD44780_SHIFT_DISPLAY_LEFT
    HD44780_SHIFT_DISPLAY_RIGHT

update_baudrate

    $lcd->update_baudrate($baudrate);

Update the interface baudrate to the new value.

update_geometry

    $lcd->update_geometry();

Update the interface geometry with the 'width' and 'lines' values passed in the $lcd constructor.

LICENSE

This work is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 3 of the License, or any later version.

License Note

I would normally release any Perl code under the Perl Artistic License but this module wraps several GPL / LGPL C libraries and I feel that the licensing of the entire distribution is simpler if the Perl code is under GPL too.

AUTHOR

Mark Dootson, <mdootson at cpan.org>

COPYRIGHT

Copyright (C) 2012-2013 Mark Dootson, all rights reserved.