Sponsored Content
Top Forums Programming Very Basic Arduino Uno Board Testing Post 303042280 by Neo on Friday 20th of December 2019 05:51:34 AM
Old 12-20-2019
For completeness, here is the sketch I used for the 1602 demo above:


Code:
/*
  LCD Display with I2C Interface Demo
  lcd-i2c-demo.ino
  Use NewLiquidCrystal Library
  DroneBot Workshop 2018
  https://dronebotworkshop.com
  Modified by Neo December 2019
  https://www.unix.com
*/

// Include Wire Library for I2C
#include <Wire.h>
// Include NewLiquidCrystal Library for I2C
#include <LiquidCrystal_I2C.h>

// Define LCD pinout
const int en = 2, rw = 1, rs = 0, d4 = 4, d5 = 5, d6 = 6, d7 = 7, bl = 3;

// Define I2C Address - change if reqiuired
const int i2c_addr = 0x27;

LiquidCrystal_I2C lcd(i2c_addr, en, rw, rs, d4, d5, d6, d7, bl, POSITIVE);

void setup()
{

    // Set display type as 16 char, 2 rows
    lcd.begin(16, 2);

    // Print on first row
    lcd.setCursor(0, 0);
    lcd.print("Hello Neo!");

    // Wait 1 second
    delay(1000);

    // Print on second row
    lcd.setCursor(0, 1);
    lcd.print("How are you?");

    // Wait 8 seconds
    delay(8000);

    // Clear the display
    lcd.clear();
}

void loop()
{

    // Demo 1 - flash backlight
    lcd.setCursor(0, 0);
    lcd.print("Do you need unix");
    lcd.setCursor(0, 1);
    lcd.print("or linux help ??");

    delay(3000);
    lcd.clear();

    // Flash backlight 4 times
    for (int i = 0; i < 6; i++)
    {
        lcd.backlight();
        delay(250);
        lcd.noBacklight();
        delay(250);
    }

    // Turn backlight back on
    lcd.backlight();

    // Demo 2 - scroll
    lcd.setCursor(0, 0);
    lcd.print("Visit UNIX.com @");
    delay(4500);
    lcd.setCursor(0, 2);
    lcd.print("www.unix.com  ");
    delay(2500);
    // set the display to automatically scroll:
    lcd.autoscroll();
    // print from 0 to 9:
    for (int thisChar = 0; thisChar < 15; thisChar++)
    {
        lcd.print(' ');
        delay(500);
    }
    // turn off automatic scrolling
    lcd.noAutoscroll();

    // clear screen
    lcd.clear();

    //Delay
    delay(1000);
}

So fun... really... I had no idea playing with the Arduino could be so much fun.

Last edited by hicksd8; 12-20-2019 at 07:06 AM..
This User Gave Thanks to Neo For This Post:
 

8 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

Use The Terminal To Test Arduino Is Working.

Hi all... (Apologies for any typos at all.) This is a step by step _script_ to check if your Arduino is talking to your Linux or Macbook Pro computer using the Terminal... It works on at least 3 Linux flavours and now the Macbook Pro... I hope you find it useful as a simple check for... (0 Replies)
Discussion started by: wisecracker
0 Replies

2. OS X (Apple)

Arduino Diecimila Board Access...

This is a very simple starter DEMO to access Arduino Diecimila Board for the Macbook Pro 13" OSX 10.7.5... A potentiometer is connected between 5V and Gnd with the wiper connected to ANALOG IN 0 on the Arduino. This was adjusted to give the Ms and Ls as seen... I now have DC in for this... (0 Replies)
Discussion started by: wisecracker
0 Replies

3. OS X (Apple)

Semi-Automatic Arduino Detection.

I am working on a semi-auto detection idea for Arduino for the Scope project. It does require a little user intervention but minimal. It works by just responding to two on screen prompts to unplug and plug Arduino into a USB port. There are two versions and both work perfectly well and give... (3 Replies)
Discussion started by: wisecracker
3 Replies

4. Programming

Arduino-cli - Uploading to Unknown Chinese Arduino Boards using the Arduino Command Line Interface

In my further exploration of Arduino, today I decided to install the arduino-cli on my mac today. https://github.com/arduino/arduino-cli I followed the instructions for macOS but when I got to this part: arduino-cli board list I got the dreaded "Unknown" Fully Qualified Board Name... (1 Reply)
Discussion started by: Neo
1 Replies

5. Programming

More Arduino Stuff...

HI all... (Apologies for any typos.) To add to Neo's Arduino subject matter I have decided to upload this in ".zip" format. Ignore "*.info" files these are AMIGA icons only and also the "HAM" drawer as these are photos in ancient AMIGA HAM modes. I have noticed that there are current... (6 Replies)
Discussion started by: wisecracker
6 Replies

6. Programming

Chinese Arduino UNO Clones - The Wavgat versus the generic UNO R3 Clone - The Winner Is?

Waiting for more fun Ardunio parts from AliExpress, I decided to test two cheap Chinese Arduino UNO clones. The Arduino UNO R3 (CH340G) MEGA328P The Wavgat UNO R3 (CH340G) MEGA328P Both of these Chinese Ardunio clones sell for about $3 USD, delivered to your door. The bottom line is... (0 Replies)
Discussion started by: Neo
0 Replies

7. Programming

Arduino UNIX Time - Syncing Computer UNIX Time to Arduino Time with Python

Just finished a quick Python script to send the current unix time over to the Arduino from macOS, so in the absence of GPS or some other way to get the unix timestamp (epoch time) to the Arduino, I can get my macOS and Arduino UNO synced to within a second. Normally, when the Arduino starts... (9 Replies)
Discussion started by: Neo
9 Replies

8. Programming

Basic Arduino UNO Bluetooth Testing with the BLE 4.0 (CC2541, MLT-BT04 IC)

Here is a sketch to do basic testing for the Arduino UNO and the MLT-BT04. This BLE module works with IOS (iPhone) and I'll add some details on my IOS testing with an iPhone in a follow-up post. For now, here is the basic BLE (HM-10) sketch for the Arduino UNO: /* Arduino test-code... (7 Replies)
Discussion started by: Neo
7 Replies
Config::Model::models::LCDd::hd44780(3pm)		User Contributed Perl Documentation		 Config::Model::models::LCDd::hd44780(3pm)

NAME
Config::Model::models::LCDd::hd44780 - Configuration class LCDd::hd44780 VERSION
version 2.021 DESCRIPTION
Configuration classes used by Config::Model generated from LCDd.conf Elements ConnectionType Select what type of connection. See documentation for types.Optional. Type uniline. default: '4bit'. Port Port where the LPT is. Usual value are: 0x278, 0x378 and 0x3BC. Optional. Type uniline. default: '0x378'. Device Device of the serial interface Optional. Type uniline. upstream_default: '/dev/lcd'. Speed Bitrate of the serial port (0 for interface default)Optional. Type uniline. default: '0'. Keypad If you have a keypad connected. You may also need to configure the keypad layout further on in this file.Optional. Type uniline. default: 'no'. Contrast Set the initial contrast (bwctusb and lcd2usb) Optional. Type integer. upstream_default: '500'. Brightness Set brightness of the backlight (lcd2usb only) Optional. Type integer. upstream_default: '0'. OffBrightness Optional. Type uniline. default: '0'. Backlight If you have a switchable backlight.Optional. Type uniline. default: 'no'. OutputPort If you have the additional output port ("bargraph") and you want to be able to control it with the lcdproc OUTPUT command. Optional. Type uniline. default: 'no'. Lastline Specifies if the last line is pixel addressable (yes) or it controls an underline effect (no). Optional. Type enum. choice: 'yes', 'no'. upstream_default: 'yes'. Size Specifies the size of the LCD. In case of multiple combined displays, this should be the total size.Optional. Type uniline. default: '20x4'. vspan For multiple combined displays: how many lines does each display have. Vspan=2,2 means both displays have 2 lines.Optional. Type uniline. default: '2,2'. ExtendedMode If you have an HD66712, a KS0073 or another 'almost HD44780-compatible', set this flag to get into extended mode (4-line linear).Optional. Type uniline. default: 'yes'. LineAddress In extended mode, on some controllers like the ST7036 (in 3 line mode) the next line in DDRAM won't start 0x20 higher. Optional. Type uniline. upstream_default: '0x20'. CharMap Character map to to map ISO-8859-1 to the LCD's character set (hd44780_koi8_r, hd44780_cp1251, hd44780_8859_5 and upd16314 are possible if compiled with additional charmaps)Optional. Type enum. choice: 'hd44780_default', 'hd44780_euro', 'ea_ks0073', 'sed1278f_0b', 'hd44780_koi8_r', 'hd44780_cp1251', 'hd44780_8859_5', 'upd16314'. upstream_default: 'hd44780_default'. DelayMult If your display is slow and cannot keep up with the flow of data from LCDd, garbage can appear on the LCDd. Set this delay factor to 2 or 4 to increase the delays. Default: 1.Optional. Type uniline. default: '2'. KeepAliveDisplay Some displays (e.g. vdr-wakeup) need a message from the driver to that it is still alive. When set to a value bigger then null the character in the upper left corner is updated every <KeepAliveDisplay> seconds. Default: 0.Optional. Type uniline. default: '0'. RefreshDisplay If you experience occasional garbage on your display you can use this option as workaround. If set to a value bigger than null it forces a full screen refresh <RefreshDiplay> seconds. Default: 0.Optional. Type uniline. default: '5'. DelayBus You can reduce the inserted delays by setting this to false. On fast PCs it is possible your LCD does not respond correctly. Default: true.Optional. Type uniline. default: 'true'. KeyMatrix_4_1 If you have a keypad you can assign keystrings to the keys. See documentation for used terms and how to wire it. For example to give directly connected key 4 the string "Enter", use: KeyDirect_4=Enter For matrix keys use the X and Y coordinates of the key: KeyMatrix_1_3=Enter. Optional. Type uniline. default: 'Enter'. KeyMatrix_4_2 Optional. Type uniline. default: 'Up'. KeyMatrix_4_3 Optional. Type uniline. default: 'Down'. KeyMatrix_4_4 Optional. Type uniline. default: 'Escape'. SEE ALSO
o cme perl v5.14.2 2012-11-09 Config::Model::models::LCDd::hd44780(3pm)
All times are GMT -4. The time now is 03:07 AM.
Unix & Linux Forums Content Copyright 1993-2022. All Rights Reserved.
Privacy Policy