#!perl
#
# Simple LCD demonstration script
#
use Device::BCM2835::LCD;
$foo = Device::BCM2835::LCD->new();
print "Display init: B+ GPIO map, default pins, 20 x 4 screen\n";
$foo->init(
pin_rs => RPI_GPIO_P1_24,
pin_e => RPI_GPIO_P1_23,
pin_d4 => RPI_GPIO_P1_07,
pin_d5 => RPI_GPIO_P1_11,
pin_d6 => RPI_GPIO_P1_13,
pin_d7 => RPI_GPIO_P1_15,
RPI_PIN => V1,
Display => 2004
);
#$foo->debug(1);
$foo->ClearDisplay;
print "PutMsg/SetPos:\n";
$foo->PutMsg("Device::BCM2835::LCD");
$foo->SetPos( 2, 0 );
$foo->PutMsg("version 0.02");
$foo->SetPos( 4, 0 );
$foo->PutMsg("Bignum demo in ");
for ( $i = 9 ; $i > 0 ; $i-- ) {
$foo->SetPos( 4, 15 );
$foo->PutMsg($i);
sleep(1);
}
print "Clear display:\n";
$foo->ClearDisplay;
print "Set cursor to home position:\n";
$foo->SetPos( 1, 0 );
print "Loading Bignum font CGRAM chars:\n";
$foo->PutMsg("Loading custom");
$foo->SetPos( 2, 0 );
$foo->PutMsg("CGRAM characters");
$foo->LoadCGRAM;
$foo->delay(1000);
print "Bignums:\n";
for ( $i = 0 ; $i < 10 ; $i++ ) {
$foo->ClearDisplay;
$foo->cmd(0x81);
$foo->BigNum( 0, $i );
$foo->delay(500);
}
print "reset display:\n";
$foo->delay(500);
$foo->ClearDisplay;
$foo->cmd(0x81);
print "Bignum+chars:\n";
for ( $k = 0 ; $k < 100 ; $k++ ) {
$num = "00" . $k;
$j = substr( $num, -3, 3 );
$foo->BigNum( 0, 0 );
$foo->BigNum( 1, substr( $j, 0, 1 ) );
$foo->BigNum( 2, substr( $j, 1, 1 ) );
$foo->BigNum( 3, substr( $j, 2, 1 ) );
$foo->SetPos( 1, 17 );
$foo->PutMsg($j);
$foo->delay(25);
}
$foo->ClearDisplay;
$foo->delay(100);
print "Alternate big/small chars:\n";
for ( $i = 0 ; $i < 10 ; $i++ ) {
$foo->BigNum( 0, $i );
$foo->BigNum( 1, $i );
$foo->BigNum( 2, $i );
$foo->BigNum( 3, $i );
$foo->BigNum( 4, $i );
$foo->delay(250);
$foo->SetPos( 1, 0 );
$foo->PutMsg( "$i" x 80 );
$foo->delay(250);
$foo->ClearDisplay;
$foo->delay(5);
}
print "Clear display:\n";
$foo->ClearDisplay;
$foo->SetPos( 1, 0 );
$foo->PutMsg("LCD demo complete.");
print "flash screen:\n";
for ( $i = 0 ; $i < 10 ; $i++ ) {
$foo->cmd(8);
$foo->delay(300);
$foo->cmd(12);
$foo->delay(300);
}
print "Demo complete.\n";