11. 아두이노를 이용한 Text LCD 제어 - 스마트 폰으로 제어하는 아두이노 -.

Slides:



Advertisements
Similar presentations
마이크로 시스템 1 선 덕 한선 덕 한 lecture7. LCD 구동. 마이크로 시스템 2 강의 목표 현재 디스플레이 장치로써 가장 널리 사용되어지는 LCD 을 프로세서 에서 어떻게 제어 하는지 알아본다.
Advertisements

1 모터 (Motors) 김원웅. 2 모터 (Motor) □ 모터 응용분야 □ Desktop PC 의 DVD ROM, HDD □ 러닝머신, 전동드릴, 선풍기 등 전력에 의해서 뭔가가 움직이 는 분야에는 거의 모두 모터가 사용 □ 우리가 배울 모터의.
D I D (Digital Information Display)
패러럴 포트를 이용한 Text LCD 제어 6월 17일 허정수 나선웅.
컴퓨터정보공학과 권춘우 ARDUINO (센서활용프로그래밍/ICT융합실무) - 3 Digit 7 Segment LED - RGB LED(3 Color) - LCD 디스플레이.
아두이노 활용 SW코딩 시작하기 아두이노 소개 개발툴 다운로드 USB 드라이버 설치하기 개발툴 실행하기
LCD를 활용한 특수문자 표시 및 알람 시계 만들기
PIC는 우리의 친구 한국정보통신대학교 디지털미디어연구소.
PIC는 우리의 친구 한국정보통신대학교 디지털미디어연구소.
2015년 2학기 PULSE 4 전자물리실험 09 - Servo Motor 제어 - DSU 메카트로닉스 융합공학부 -
컴퓨터 응용과 3학년 1반 조장 : 최형근 조원 : 조민희
목차 한국기술교육대학교 강사: 김 영 준 ㈜헬로앱스 1일차 아두이노 제어 실습
컬러 LED바 이해하기 목차 재료준비 및 브레드 보드 배선 구성하기 컬러 LED바 이해 및 프로그램 실습 응용 작품 만들기.
CHAPTER 1. INTRODUCTION.
10장 주변장치 (PIO) Slide 1 (of 28).
RnA DISPLAY 구동 Clcd 구동 Made by Bonobonobono.
Arduino와 Led를 이용하여 Wearable Display 만들기
아두이노 프로그래밍 5일차 – Part2 지그비 통신 강사: 김영준 목원대학교 겸임교수
1. 아두이노란 무엇인가? - 스마트 폰으로 제어하는 아두이노 -.
Watch VHDL을 이용한 다용도 시계 다른 사람의 지적 재산권을 침해 하지 않았다..
12. 아두이노와 센서를 이용한 제어 - 스마트 폰으로 제어하는 아두이노 -.
Text LCD control.
윤성우의 열혈 C 프로그래밍 윤성우 저 열혈강의 C 프로그래밍 개정판 Chapter 02. 프로그램의 기본구성.
AVR - Chapter 15 황 지 연.
LCD 명령어 이해하기 목차 재료준비 및 브레드 보드 배선 구성하기 LCD 명령어 이해 및 기본 실습 응용 작품 만들기.
고등용 LED를 이용한 재미있는 표현.
Input/Output Control.
제 3 장 아두이노 무조건 따라하기 - 스마트 폰으로 제어하는 아두이노 -.
Ticket Dispenser Technical Manual
AVR - Chapter 2 황 지 연.
LCD를 활용한 탁상 시계 만들기 재료준비 및 브레드 보드 배선 구성하기 LCD를 활용한 탁상 시계 만들기 응용 작품 만들기
아두이노 프로그래밍 2일차 – Part4 아날로그 키패드 활용하기 강사: 김영준 목원대학교 겸임교수.
6장. LCD 사용하기.
캡스톤 물리 음성 인식을 통한 무드 등 지금은 6시 55분 조.
아두이노 프로그래밍 (응용과정) 3일차 – Part2 LCD 활용하기 강사: 김영준 목원대학교 겸임교수.
아두이노 프로그래밍 2일차 – Part2 PSD 거리센서 강사: 김영준 목원대학교 겸임교수.
아두이노 프로그래밍 2일차 – Part2 PSD 거리센서 강사: 김영준 목원대학교 겸임교수
9. 아두이노를 이용한 FND 제어 - 스마트 폰으로 제어하는 아두이노 -.
2015년 2학기 PULSE 4 전자물리실험 10 – 조도 센서와 소리 발생 - DSU 메카트로닉스 융합공학부 -
컴퓨터의 기초 제 2강 - 변수와 자료형 , 연산자 2006년 3월 27일.
8051 IO-PORT 정보통신•컴퓨터 공학부 송명규
아두이노 프로그래밍 1일차 – Part4 값출력 및 디지털 읽기 강사: 김영준 목원대학교 겸임교수
2015년 2학기 PULSE 4 전자물리실험 09-Servo Motor 제어 - DSU 메카트로닉스 융합공학부 -
패러럴 포트를 이용한 Text LCD 제어 6월 17일 허정수 나선웅.
아두이노 프로그래밍 (응용과정) 3일차 – Part2 LCD 활용하기 강사: 김영준 목원대학교 겸임교수
8. 아두이노를 이용한 아날로그 제어 - 스마트 폰으로 제어하는 아두이노 -.
4. 아두이노로 LED 제어하기 - 스마트 폰으로 제어하는 아두이노 -.
15. STEP 모터 제어 - 스마트 폰으로 제어하는 아두이노 -.
이행점검/현장점검관리.
센서값 전송하기 WiFi 시리얼 보드 활용가이드 김영준 헬로앱스 (
Fflush 사용이유 및 방법 [이유] 키보드에서 입력된 내용은 입력버퍼에 저장되었다가 Enter 키가 들어오면 프로그램으로 전달됨 이 때 입력버퍼에 있는 Enter 키도 프로그램으로 전달됨 그러므로 아래와 같은 프로그램에서 문자 하나를 입력해도 Enter키도 입력된 것으로.
ST 모드 활용하기 WiFi 시리얼 보드 활용가이드 김영준 헬로앱스 (
ST모드에서 데이터 읽기 및 제어하기 WiFi 시리얼 보드 활용가이드 김영준 헬로앱스 (
클라우드 서버로 데이터 전송하기 WiFi 시리얼 보드 활용가이드 김영준 헬로앱스 (
샤를의 법칙 과학 1 학년 1 학기 5.분자의 운동 >풍선도 추우면 움추러드나(4/4) ) 단원명
체크포인트 가정 내 일어나는 사고에 대해 알아보고 사고예방을 위해 주의한다. | 예방법 장소별 사고 – 방과 거실 1 2 높은 곳 에 물건 두지 않기! 날카로운 모서리는 천으로 씌우기!
LCD.
싼타페(DM)-배선 타입(운전석) 백색 : 운전석 도어핀 8.회색/흑색 : 상시전원(+12V ) 1.흑색 : 차량어스(GND)
주차권 발행기(바코드).
차량차단기 설치 설명서
아두이노 프로그래밍 4일차 – Part1 모바일 로봇 강사: 김영준 목원대학교 겸임교수
성공적인 입사지원서 작성법 제이비커리어 교육수석 소 은 선.
아두이노 프로그래밍 Lecture #
Tone 명령어 이해하기 목차 재료준비 및 브레드 보드 배선 구성하기 Tone 명령어 기본 및 프로그램 이해 응용 작품 만들기.
아날로그일까? 디지털일까? -사용자 경험 기반 디지털 기술을 활용한 반응하는 액자 만들기-
아두이노 서보로봇 제어 (블루투스 스마트폰 조종) -03차시-
C.
4 LED 출력 LED 점멸 LED 밝기 조절 RGB LED로 색상 표현하기 FND 제어 4-digit FND 제어 Dot matrix 제어 Dot matrix를 이용한 애니메이션.
3. Arduino 실습 – 아날로그 입력(1) 아날로그 입력 – 먼지 센서 먼지 센서 개요 먼지 센서 특징 먼지 검출 센서
Presentation transcript:

11. 아두이노를 이용한 Text LCD 제어 - 스마트 폰으로 제어하는 아두이노 -

강의개요 Text LCD는 LCD화면에 정해진 형태의 문자를 정해진 개수만큼 표시할 수 있도록 만들어진 LCD 디스플레이 장치 간단한 문자 표시가 필요한 각종 임베디드 장치들에서 널리 사용 Text LCD는 실생활에 매우 많이 사용되고 있는 주변장치

11.1 Text LCD(Character LCD)

11.2 아두이노의 Text LCD 제어 함수 아두이노는 Text LCD를 쉽게 제어하기 위하여 LCD 모듈에 문자 등을 표시하기 위하여 Text LCD 라이브러리 함수들을 기본 제공 Text LCD 라이브러리 함수들을 사용하려면 "LiquidCrystal.h"를 스케치에 포함 시켜 작성 필요 LiquidCrystal의 라이브러리 참고 ttp://arduino.cc/en/Reference/LiquidCrystalPrint #include “LiquidCrystal.h”

함수 내 용 LCD 제어 설정 LCD 제어 선과 제어 연결 핀 설정 1 LiquidCrystal lcd( ) 데이터 4bit: LiquidCrystal lcd(RS, E, D4, D5, D6, D7) 데이터 8bit: LiquidCrystal lcd(RS, RW, E, D0, D1, D2, D3, D4, D5, D6, D7) 2 begin( ) LCD의 종류 설정 3 lcd.begin(cols, rows) 연결된 LCD의 가로(칸)과 세로(줄) 입력 4 clear( ) LCD 화면을 모두 삭제하고, 커서의 위치를 첫 위치(0,0)로 이동 5 home( ) 커서의 위치를 첫 위치(0,0)로 이동 6 setCursor( ) 커서의 위치를 설정한 위치로 이동 7 lcd.setCursor(x, y) 가로(x)와 세로(y) 위치를 설정 8 write( ) LCD에 글자를 출력 : lcd.write(data) 사용 9 print( ) LCD에 숫자나 문자열을 출력 10 cursor( ) LCD 화면에 커서(_) 표시 11 noCursor( ) LCD 화면에 커서 감추기 12 blink( ) LCD 화면의 커서를 깜빡임. 13 noBlink( ) LCD 화면의 커서를 깜빡이지 않음 14 display( ) LCD 화면의 내용 표시 15 noDisplay( ) LCD 화면의 내용 사라지게 함 16 scrollDisplayLeft( ) LCD 화면의 내용을 왼쪽으로 한 칸 이동 17 scrollDisplayRight( ) LCD 화면의 내용을 오른쪽으로 한 칸 이동 18 autoscroll( ) LCD 화면이 자동으로 스크롤(이동) 19 noAutoscroll( ) LCD 화면이 자동으로 스크롤(이동) 금지 20 leftToRight( ) LCD 화면에 표시되는 글자가 왼쪽에서 오른쪽 방향으로 출력 21 rightToLeft( ) LCD 화면에 표시되는 글자가 오른쪽에서 왼쪽 방향으로 출력 22 createChar( ) LCD 모듈의 사용자 정의 문자 생성

Text LCD 모듈의 설정 LiquidCrystal lcd()함수 사용 일반적으로 데이터 비트에 따라 4bit 인터페이스와 8bit 인터페이스가 가장 많이 사용 4bit 인터페이스와 8bit 인터페이스는 Text LCD에 문자를 나타내기 위하여 각각 4bit와 8bit의 데이터가 사용되는 것을 의미 RS : 레지스터 선택으로 값이 "0"이면 명령이고, 값이 "1"이면 데이터 의미 E : 값이 "1"이면 LCD 사용 가능 D0~D7 : 데이터 선 4bit 인터페이스 LiquidCrystal lcd(RS, E, D4, D5, D6, D7) 8bit 인터페이스 LiquidCrystal lcd(RS, RW, E, D0, D1, D2, D3, D4, D5, D6, D7)

Text LCD 인터페이스 4bit 인터페이스의 경우 8bit 인터페이스의 경우 Text LCD 모듈 제어핀 데이터 핀 RS RW E D0 D1 D2 D3 D4 D5 D6 D7 아두이노 보드 연결 12 GND 11 5 4 3 2 LiquidCrystal lcd() LiquidCrystal lcd(12, 11, 5, 4, 3, 2) Text LCD 모듈 제어핀 데이터 핀 RS RW E D0 D1 D2 D3 D4 D5 D6 D7 아두이노 보드 연결 38 40 42 22 24 26 28 30 32 34 36 LiquidCrystal lcd() LiquidCrystal lcd(38, 40, 42, 22, 24, 26, 28, 30, 32, 34, 36)

UNO보드와 Text LCD 모듈 연결

예제 11.1 Text LCD 모듈에 "Hello, World!" 출력하기 주요개념 Text LCD 라이브러리 함수 사용 "LiquidCrystal.h"를 스케치에 포함 LiquidCrystal lcd( )함수로 LCD 모듈의 제어선의 연결 핀을 설정 LCD를 초기화 lcd.begin( )함수로 연결된 LCD의 가로(칸)과 세로(줄) 설정 lcd.print()함수로 원하는 문자 출력

예제 11.1의 스케치 #include <LiquidCrystal.h> Text LCD 라이브러리 함수 사용 선언 LiquidCrystal lcd(12, 11, 5, 4, 3, 2); LCD 연결 설정 void setup() { lcd.begin(16, 2); lcd.print("Hello, World!"); } 16칸 2줄 LCD 초기화 문자열 출력 void loop() {

예제 11.2 LCD 모듈에 문자 출력하기 Text LCD 모듈에 함수를 이용하여 출력하기 깜박임을 멈추고, 커서를 감추기 LCD 모듈에 숫자 0부터 10까지 0.2초 간격으로 출력하기 LCD 모듈에 표시된 글자를 1초 간격으로 3번 깜빡이기 LCD 모듈에 표시된 글자를 1초 간격으로 3번 오른쪽 이동하기

예제 11.2의 주요개념 아두이노 TEXT LCD 함수의 커서제어 같은 위치에서 숫자가 표시되게 하기 : lcd.home() 커서 나타내기 : lcd.cursor()함수 커서 사라지기 : lcd.noCursor()함수 커서 깜박이기 : lcd.blink()와 lcd.noBlink() 같은 위치에서 숫자가 표시되게 하기 : lcd.home() 오른 쪽으로 이동 : lcd.scrollDisplayRight()함수 왼쪽으로 이동 : lcd.scrollDisplayLeft()함수

예제 11.2의 스케치1 #include <LiquidCrystal.h> Text LCD 라이브러리 함수 사용 선언 LiquidCrystal lcd(12, 11, 5, 4, 3, 2); LCD 연결 설정 void setup() { lcd.begin(16, 2); } 16칸 2줄 LCD 초기화 void loop() { loop함수 시작 lcd.print("Cursor ON-Blink"); lcd.cursor(); lcd.blink(); delay(3000); lcd.clear(); "Cursor ON-Blink"출력 커서 보이기 깜빡이기 3초 지연 LCD화면 지우기 lcd.print("Cursor OFF"); lcd.noBlink(); lcd.noCursor(); 깜박임 정지 커서 감추기

예제 11.2의 스케치2 for (int i=0; i<=10; i++) { lcd.home(); lcd.print("No : "); lcd.print (i); delay(200); } 0.5초 간격으로 숫자를 0 부터 10까지 출력 for (int i=0; i<3; i++) { lcd.noDisplay(); delay(1000); lcd.display(); LCD 모듈 표시된 글자를 1초간격으로 3번 깜빡임 for (int i=0; i<3; i++){ lcd.scrollDisplayRight(); delay(500); LCD 모듈에 표시된 글자를 3번 오른쪽으로 이동 lcd.scrollDisplayLeft(); 왼쪽으로 이동 lcd.clear(); LCD 화면 지우기 loop함수 끝

예제 11.2의 실행

예제 11.3 LCD 모듈에 사용자 정의문자 출력하기 Text LCD 모듈에 임의 형태 문자를 만들어 출력 주요개념 lcd.createChar()함수 사용하여 새로운 문자를 특수 문자로 정의

예제 11.3의 스케치 #include <LiquidCrystal.h> Text LCD 라이브러리 함수 사용 선언 LiquidCrystal lcd(12, 11, 5, 4, 3, 2); LCD 연결 설정 byte smiley[8] = {B00000, B01010, B10101, B00000, B00100, B10001, B01110, B00000}; 정의된 문자의 2진 데이터 void setup() { lcd.createChar(0, smiley); lcd.begin(16, 2); lcd.write(byte(0)); } 0번 문자에 정의된 문자 지정 16칸 2줄 LCD 초기화 0번 문자 출력 void loop() {

11.3 HBE-MCU-Multi의 TEXT LCD 모듈 16문자*2라인의 표시부를 가지며, 표시부 상단에 커넥터가 위치하며, LCD에는 Backlight 기능이 포함

예제 11.4 LCD 모듈에 문자 출력하기

예제 11.4의 주요개념 Text LCD 함수를 사용하기 위하여 스케치의 첫줄은 lcd관련 헤더 파일을 include "LiquidCrystal lcd(RS, RW, E, D0, D1, D2, D3, D4, D5, D6, D7);" 사용 Text LCD의 데이터 신호와 제어신호에 사용될 DIGITAL 핀들을 설정하고, Text LCD 함수 이름을 설정 제어 신호 RS, RW, E에 각각 핀 38, 40, 42번 할당 데이터 신호 D0~D7에 각각 핀 22, 24, 26, 28, 30, 32, 34, 36번을 순서대로 할당 LiquidCrystal lcd(38,40,42,22,24,26,28,30,32,34,36); Text LCD 모듈 제어핀 데이터 핀 RS RW E D0 D1 D2 D3 D4 D5 D6 D7 LiquidCrystal() 아두이노 보드 연결 38 40 42 22 24 26 28 30 32 34 36

" lcd.begin(16, 2);" setup() 구문에서 사용되는 Text LCD 모듈이 16x2이므로, Text LCD의 가로와 세로 크기를 정의 스케치 구조 아두이노를 실행하였을 때, Text LCD의 커서를 첫째 줄 제일 좌측으로 이동시켜 실행하기 위하여 "lcd.setCursor(0, 0);"를 설정 "lcd.write()" 함수를 사용하여 문자를 한 글자씩 출력 TEXT LCD 커서의 위치를 (3,1) 위치로 옮기기 위하여, "lcd.setCursor(3,1);" 설정 "lcd.print();" 함수를 이용하여 "MCU World !!"라는 문자열을 TEXT LCD의 현재 커서 위치에 출력

예제 11.4의 스케치 #include <LiquidCrystal.h> "LiquidCrystal.h" 파일 include LiquidCrystal lcd(38,40,42,22,24,26,28,30,32,34,36); TextLCD모듈의 rs, rw, enable, d0, d1, d2, d3, d4, d5, d6, d7 순으로 핀 설정 void setup() { lcd.begin(16, 2); LCD의 가로와 세로 길이 선언(16x2 LCD) lcd.setCursor(0, 0); (0,0)에 커서의 위치 지정 lcd.write('H'); lcd.write('e'); lcd.write('l'); lcd.write('o'); 한 글자씩 LCD에 출력 lcd.setCursor(3, 1); (3,1)에 커서의 위치 지정 lcd.print("MCU World !!"); l문자열을 LCD에 출력 } void loop() {

연습과제 예제 11.2를 스위치 입력으로 기능을 선택하여 동작하도록 수정하라. 예제 11.2를 스마트 폰의 블루트스 기능으로 선택하여 동작하도록 수정하라. LCD 화면에 아날로그 소자인 가변저항(VR)과 광센서(CDS)의 값을 입력 받아 출력하는 프로그램을 작성합니다.

연습과제 베이스 보드의 LCD 모듈에 사용자 정의 문자를 이용하여 아래 글씨를 출력합니다.