LCD 명령어 이해하기 목차 재료준비 및 브레드 보드 배선 구성하기 LCD 명령어 이해 및 기본 실습 응용 작품 만들기
준비물 준비하기 아두이노 보드 (SPL-Duino V2 초보자용 보드) USB 케이블 서보 모터, 토양습도센서, PSD 거리 센서 브레드보드 실습 키트
브레드보드 배선 구성하기 전원 연결 아래 그림과 같이 브레드 보드를 연결해줍니다.
브레드보드 배선 구성하기 센서 연결 lcd 모듈을 아래와 같이 연결하여 줍니다. lcd 모듈 : I2C번핀에 연결 파란색 - 파란색 노란색 – 노란색 검은색 – 빨간색 빨간색 – 검은색
브레드보드 배선 구성하기 센서 연결 토양습도 센서를 아래 그림과 같이 연결해줍니다. 토양습도 센서 : A1핀에 연결 노란색 – 파란색 빨간색 – 빨간색 검은색 – 검은색
브레드보드 배선 구성하기 센서 연결 PSD 거리 센서까지 연결해줍니다.
브레드보드 배선 구성하기 4핀 LCD 모듈 준비하기 디지털 센서 LCD 모듈로 화면에 숫자와 글자를 표기해줍니다. LCD의 경우 I2C핀을 사용합니다. 파란색 선은 I2C에서 SCL에 연결되며 SCL은 아날로그 5번 핀과 동일합니다. 노란색 선은 I2C에서 SDA에 연결되며 SDA는 아날로그 4번 핀과 동일합니다.
브레드보드 배선 구성하기 3핀 토양습도 센서 준비하기 디지털 센서 토양습도 센서는 아날로그 핀을 사용하는 아날로그 센서입니다. 이름 그대로 토양의 습도를 측정하는 센서입니다. 센서 선(s)으로 센서의 데이터 값을 읽고 쓰고 합니다. 토양습도 센서의 경우 아날로그 핀을 사용합니다. 빨간색 선은 V (Voltage)를 의미합니다. 검정색 선은 G (GND)를 의미합니다.
LCD 모듈 이해하기 LCD 모듈 LCD 모듈 - I2C 핀을 사용합니다. 화면에 글자 및 숫자가 표기가 가능합니다. 단순 글자를 디스플레이뿐 아니라 센서의 값을 실시간으로 읽어 드릴 수 있습니다.
LCD 모듈 이해하기 LCD 모듈 lcd.begin(); - lcd를 시작하기 위한 명령어입니다. setup에 최초로 선언합니다. lcd.print("Hello"); - lcd의 출력 명령어 입니다. Serial.print(); 명령어와 기본 사용법은 동일합니다. 문자 그대로 출력을 할 때는 큰따옴표(“”)를 사용합니다. 변수를 출력하고자 할 때는 따옴표를 쓰지 않습니다. lcd.clear(); - lcd의 화면을 지우는데 사용합니다. lcd.setCursor(0,1); - lcd의 커서의 위치를 조정 하는 명령어 입니다. 첫 번째 수는 x의 위치고 두 번째 수는 y의 위치입니다. x y
LCD 모듈 이해하기 LCD 모듈 lcd.home(); - lcd의 커서를 처음으로 되돌립니다. lcd.createChar(0,배열이름); - 만든 배열을 가지고 와 특수문자를 만들어 저장해주는 명령어입니다. 첫 번째 입력수는 저장할 번호의 수입니다. 0~15까지 총 16개의 값을 저장 할 수 있습니다. 두 번째 입력값은 만든 특수문자의 변수 이름입니다. 직접적인 출력 명령어가 아닌 메모리에 저장을 해주는 명령어입니다. lcd.write(0); - lcd.createChar에서 저장한 문자를 불러와주는 명령어 입니다. lcd.createChar가 문자를 저장하면 lcd.write로 불러와 출력을 합니다.
LCD 모듈 이해하기 LCD 모듈 lcd.blink(); - 커서를 깜박거리는 명령어입니다. lcd.noBlink(); - 커서 깜박임을 없애는 명령어 입니다. lcd.backlight(); - lcd의 백라이트를 켜는 명령어입니다. lcd.noBacklight(); - lcd의 백라이트를 끄는 명령어입니다. lcd.backlight(); lcd.noBacklight();
LCD 모듈 이해하기 LCD 모듈 #include <Wire.h> #include <LiquidCrystal_I2C.h> LiquidCrystal_I2C lcd(0x27,16,2); void setup(); void loop(); void setup() { ns_stick.begin(); lcd.init(); //LCD 창에 헬로월드를 출력합니다. lcd.print("HelloWorld"); //백라이트를 켜줍니다. lcd.backlight(); } void loop()
LCD 모듈 이해하기 LCD 모듈 #include <Wire.h> lcd에 출력을 위한 기본적인 #include <LiquidCrystal_I2C.h> NS_Rainbow ns_stick = NS_Rainbow(8,2); LiquidCrystal_I2C lcd(0x27,16,2); void setup() { lcd.begin(); lcd.print("HelloWorld"); lcd.backlight(); } void loop() lcd에 출력을 위한 기본적인 소스입니다. 좌측 소스를 업로드하여 lcd를 관찰하여 봅니다.
LCD 모듈 이해하기 LCD 모듈 #include <Wire.h> lcd에 출력을 위한 기본적인 #include <LiquidCrystal_I2C.h> NS_Rainbow ns_stick = NS_Rainbow(8,2); LiquidCrystal_I2C lcd(0x27,16,2); void setup() { lcd.begin(); lcd.print("HelloWorld"); lcd.backlight(); } void loop() lcd에 출력을 위한 기본적인 소스입니다. 좌측 소스를 업로드하여 lcd를 관찰하여 봅니다.
LCD 모듈 이해하기 LCD 모듈 #include <Wire.h> lcd의 백라이트를 점멸하는 소스입니다. #include <LiquidCrystal_I2C.h> LiquidCrystal_I2C lcd(0x27,16,2); void setup() { lcd.begin(); lcd.backlight(); } void loop() delay(1000); lcd.clear(); lcd.print("on"); lcd.noBacklight(); lcd.print("off"); lcd의 백라이트를 점멸하는 소스입니다. loop()에서 lcd를 사용할 때 lcd.clear();를 사용하지 않을 시 loop반복에 의해 문자가 계속 누적됩니다.
LCD 모듈 이해하기 LCD 모듈 #include <Wire.h> lcd의 백라이트를 점멸하는 소스입니다. #include <LiquidCrystal_I2C.h> LiquidCrystal_I2C lcd(0x27,16,2); void setup() { lcd.begin(); lcd.backlight(); } void loop() delay(1000); lcd.clear(); lcd.print("on"); lcd.noBacklight(); lcd.print("off"); lcd의 백라이트를 점멸하는 소스입니다. loop()에서 lcd를 사용할 때 lcd.clear();를 사용하지 않을 시 loop반복에 의해 문자가 계속 누적됩니다.
LCD 모듈 이해하기 거리 감지기 실시간으로 lcd모듈에 psd 센서값을 불러오도록 합니다. #include <Wire.h> #include <LiquidCrystal_I2C.h> LiquidCrystal_I2C lcd(0x27,16,2); void setup() { lcd.begin(); lcd.backlight(); } 기본 세팅값을 우선 입력합니다.
LCD 모듈 이해하기 거리 감지기 void loop() 본문에 입력하는 소스입니다. { lcd.clear(); int a0 = analogRead(0); lcd.print(a0); delay(500); } 본문에 입력하는 소스입니다. 아날로그 0번 값을 0.5초마다 읽어 드립니다. 읽을 때마다 그 값을 lcd에 표시합니다. loop반복이 진행 될 때마다 lcd.clear();를 실행하게 됩니다. lcd.clear();를 실행함으로써 이전에 있던 센서 값이 지워지고 다시 새로운 센서 값을 lcd에 표시하게 됩니다.
토양 습도 센서 이해하기 토양 습도 센서 토양 습도 센서 아날로그 핀을 이용하는 센서입니다. 주로 화분에 습도를 체크할 때 사용합니다.
토양 습도 센서 이해하기 토양 습도 센서 void loop(); void setup() 좌측 소스를 이용하여 토양 습도 센서의 { Serial.begin(57600); } void loop() int a1 = analogRead(1); Serial.println(a1); delay(1000); 좌측 소스를 이용하여 토양 습도 센서의 센서값의 변화를 확인합니다.
토양 습도 센서 이해하기 토양 습도 센서 #include <Wire.h> #include <LiquidCrystal_I2C.h> LiquidCrystal_I2C lcd(0x27,16,2); void setup() { lcd.begin(); lcd.backlight(); } void loop() lcd.clear(); int a1 = analogRead(1); lcd.print(a1); delay(500); psd센서와 마찬가지로 토양 습도 센서를 lcd에 실시간으로 값을 모니터링 할 수 있게 합니다. 이 방법을 이용하여 화분의 습도 상태를 컴퓨터 없이 lcd모듈로 수치를 확인 할 수 있습니다.
응용 작품 만들기 실습 미션) psd 센서를 이용하여 속도를 측정하는 장치를 만드십시오. lcd에 속도에 대한 결과값(거리 시간 속도)을 표시하도록 하십시오. 대상 대상 결과값 출력 속도 측정 구간
응용 작품 만들기 코드 예시 실습 #include <Wire.h> #include <LiquidCrystal_I2C.h> LiquidCrystal_I2C lcd(0x27,16,2); float timer=0; int first_sp = 0; int last_sp = 0; float sp = 0; void setup() { lcd.begin(); lcd.backlight(); } void loop() int a0 = analogRead(0); lcd.clear(); lcd.print(a0); if(300<a0 && 500>a0) first_sp = a0; while(1) timer++; if(a0 >=500) last_sp=a0; sp = (last_sp-first_sp)*1000/timer; lcd.home(); lcd.print("Dis="); lcd.print(last_sp-first_sp); lcd.setCursor(7,0); lcd.print("Time="); lcd.print(timer/1000); lcd.setCursor(0,1); lcd.print("Speed="); lcd.print(sp); delay(3000); delay(1);