You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
84 lines
2.0 KiB
84 lines
2.0 KiB
/* |
|
LiquidCrystal Library - Hello World |
|
|
|
Demonstrates the use a 16x2 LCD display. The LiquidCrystal |
|
library works with all LCD displays that are compatible with the |
|
Hitachi HD44780 driver. There are many of them out there, and you |
|
can usually tell them by the 16-pin interface. |
|
|
|
This sketch prints "Hello World!" to the LCD |
|
and shows the time. |
|
|
|
The circuit: |
|
* LCD RS pin to digital pin 12 |
|
* LCD Enable pin to digital pin 11 |
|
* LCD D4 pin to digital pin 5 |
|
* LCD D5 pin to digital pin 4 |
|
* LCD D6 pin to digital pin 3 |
|
* LCD D7 pin to digital pin 2 |
|
* LCD R/W pin to ground |
|
* 10K resistor: |
|
* ends to +5V and ground |
|
* wiper to LCD VO pin (pin 3) |
|
|
|
Library originally added 18 Apr 2008 |
|
by David A. Mellis |
|
library modified 5 Jul 2009 |
|
by Limor Fried (http://www.ladyada.net) |
|
example added 9 Jul 2009 |
|
by Tom Igoe |
|
modified 22 Nov 2010 |
|
by Tom Igoe |
|
|
|
This example code is in the public domain. |
|
|
|
http://www.arduino.cc/en/Tutorial/LiquidCrystal |
|
*/ |
|
|
|
// include the library code: |
|
|
|
#include <AP_Common.h> |
|
#include <AP_Math.h> |
|
#include <AP_Param.h> |
|
#include <AP_Progmem.h> |
|
|
|
#include <AP_HAL.h> |
|
#include <AP_HAL_AVR.h> |
|
|
|
#include "LCrystal.h" |
|
|
|
#if CONFIG_HAL_BOARD == HAL_BOARD_APM2 |
|
const AP_HAL::HAL& hal = AP_HAL_AVR_APM2; |
|
#elif CONFIG_HAL_BOARD == HAL_BOARD_APM1 |
|
const AP_HAL::HAL& hal = AP_HAL_AVR_APM1; |
|
#endif |
|
|
|
// initialize the library with the numbers of the interface pins |
|
LiquidCrystal lcd(8, 9, 4, 5, 6, 7); |
|
|
|
void setup() { |
|
/* pin 54 is A0 on the mega */ |
|
hal.gpio->pinMode(54, GPIO_INPUT); |
|
// set up the LCD's number of columns and rows: |
|
lcd.begin(16, 2); |
|
// Print a message to the LCD. |
|
lcd.print("hello, world!"); |
|
} |
|
|
|
void loop() { |
|
// set the cursor to column 0, line 1 |
|
// (note: line 1 is the second row, since counting begins with 0): |
|
lcd.setCursor(0, 1); |
|
// print the number of seconds since reset: |
|
lcd.print(hal.scheduler->millis()/1000); |
|
|
|
|
|
lcd.setCursor(8, 1); /* Halfway over second row */ |
|
if (hal.gpio->read(54)) { |
|
lcd.print("high"); |
|
} else { |
|
lcd.print("low "); |
|
} |
|
} |
|
|
|
AP_HAL_MAIN();
|
|
|