아두이노 lcd 1602 화면 한글자문제 해결 방법
별에 별방법을 해도... 네이X 카페에 확인해봐도 답을 알수가 없었다.
분명 난
//YWROBOT //Compatible with the Arduino IDE 1.0 //Library version:1.1 #include <Wire.h> #include <LiquidCrystal_I2C.h> LiquidCrystal_I2C lcd(0x3F,16,2); // set the LCD address to 0x27 for a 16 chars and 2 line display void setup(){ lcd.init(); // initialize the lcd // Print a message to the LCD. lcd.backlight(); lcd.setCursor(3,0); lcd.print("Hello, world!"); lcd.setCursor(2,1); lcd.print("Ywrobot Arduino!"); } void loop(){ } | cs |
아두이노
1602 LCD 에서
lcd.print("hello, world!");
하는데 h 한글자만 찍힐 때는 라이브러리를 바꾸어 보세요.
예제.
#include <Wire.h>
#include <LiquidCrystal_I2C.h>
LiquidCrystal_I2C lcd(0x27,16,2);
void setup() {
// put your setup code here, to run once:
lcd.init();
lcd.backlight();
lcd.setCursor(0, 0);
lcd.print(" This stop is");
lcd.setCursor(0, 1);
lcd.print(" Akihabara");
}
void loop() {
// put your main code here, to run repeatedly:
}
저는 lcd.print 했을 때 한 글자씩만 나오기에 여러 글을 검색해보고, 아래 라이브러리를 써서 해결했습니다.
//github.com/marcoschwartz/LiquidCrystal_I2C
/*-----( Import needed libraries )-----*/
#include <Wire.h> // Comes with Arduino IDE
// Get the LCD I2C Library here:
// www.4tronix.co.uk/arduino/sketches/LiquidCrystal_V1.2.1.zip
// Move any other LCD libraries to another folder or delete them
// See Library "Docs" folder for possible commands etc.
#include <LiquidCrystal_I2C.h>
/*-----( Declare Constants )-----*/
/*-----( Declare objects )-----*/
// set the LCD address to 0x27 for a 20 chars 4 line display
// Set the pins on the I2C chip used for LCD connections:
// addr, en,rw,rs,d4,d5,d6,d7,bl,blpol
LiquidCrystal_I2C lcd(0x27, 2, 1, 0, 4, 5, 6, 7, 3, POSITIVE); // Set the LCD I2C address
/*-----( Declare Variables )-----*/
//NONE
void setup() /*----( SETUP: RUNS ONCE )----*/
{
Serial.begin(9600); // Used to type in characters
lcd.begin(20,4); // initialize the lcd for 20 chars 4 lines, turn on backlight
// ------- Quick 3 blinks of backlight -------------
for(int i = 0; i< 3; i++)
{
lcd.backlight();
delay(250);
lcd.noBacklight();
delay(250);
}
lcd.backlight(); // finish with backlight on
//-------- Write characters on the display ------------------
// NOTE: Cursor Position: (CHAR, LINE) start at 0
lcd.setCursor(0,0); //Start at character 4 on line 0
lcd.print("Hello, world!");
delay(1000);
lcd.setCursor(0,1);
lcd.print("4tronix I2C LCD"); // Print text on 2nd Line
delay(1000);
lcd.setCursor(0,2);
lcd.print("0123456789ABCDEFGHIJ"); //Print 20 characters on 3rd line
delay(1000);
lcd.setCursor(0,3);
lcd.print("4th Line of Text");
delay(8000);
// Wait and then tell user they can start the Serial Monitor and type in characters to
// Display. (Set Serial Monitor option to "No Line Ending")
/* lcd.clear();
lcd.setCursor(0,0); //Start at character 0 on line 0
lcd.print("Use Serial Mon");
lcd.setCursor(0,1);
lcd.print("Type to display"); */
}/*--(end setup )---*/
void loop() /*----( LOOP: RUNS CONSTANTLY )----*/
{
{
// when characters arrive over the serial port...
if (Serial.available()) {
// wait a bit for the entire message to arrive
delay(100);
// clear the screen
//lcd.clear();
// read all the available characters
while (Serial.available() > 0) {
// display each character to the LCD
//lcd.write(Serial.read());
}
}
}
}/* --(end main loop )-- */
/* ( THE END ) */