2021. 7. 16. 11:19
아두이노
https://github.com/johnrickman/LiquidCrystal_I2C
하고 아두이노를 껐다킨다
#include<Wire.h>
#include<LiquidCrystal_I2C.h>
LiquidCrystal_I2C lcd(0x27,16,2); //기기에 따라 27이 아닌 3F이다.
//LiquidCrystal_I2C lcd(0x27,20,4); //2004의 경우
void setup()
{
lcd.init();
lcd.backlight();
lcd.setCursor(0,0);
lcd.print("Hello, world!");
lcd.setCursor(0,1);
lcd.print("LCD Test");
}
글씨가 안보인다고? 뒷면의 십자나사홈을 돌려서 밝기를 조절해준다
너무 밝으면 백그라운드까지 밝아져서 안보이고 너무 어두우면 글씨가 안 나온다
그래도 안 보이면 위의 27을 3F로 바꿔준다
3.3v로 해도 보이지만 너무 흐리므로 5v로 넣어주자
Due의 경우 SCL을 21번에 SDA를 20번으로 사용한다
//가운데 정렬
void LCDPrintCenter(String message,int width)
{
int iMax=(width/2)-message.length()/2;
for(int i=0;i<iMax;i++)
{
message=' '+message;
}
for(int i=message.length();i<width;i++)
{
message=message+' ';
}
lcd.print(message);
}
//왼쪽 정렬
void LCDPrintLeft(String message,int width)
{
int iMax=width-message.length();
for(int i=0;i<iMax;i++)
{
message=message+' ';
}
lcd.print(message);
}
//오른쪽 정렬
void LCDPrintRight(String message,int width)
{
int iMax=width-message.length();
for(int i=0;i<iMax;i++)
{
message=' '+message;
}
lcd.print(message);
}
//예제
lcd.setCursor(0,0);
String message="Unknown";
switch(mode)
{
case Start:
message="Start";
break;
case Loop:
message="Loop";
break;
}
int lcdWidth=20;
//왼쪽정렬
LCDPrintLeft(message,lcdWidth);
//가운데정렬
LCDPrintCenter(message,lcdWidth);
글씨 바꿀때 해당 라인을 초기화할 필요가 있을경우
'아두이노' 카테고리의 다른 글
아두이노 키보드 (0) | 2021.08.28 |
---|---|
아두이노 헤더 예제 (0) | 2021.07.15 |
자주쓰는 아두이노 코드 모음 (0) | 2021.06.21 |