로그인회원등록 내글장바구니주문조회현재접속자
 상품 검색








 게시판 검색





 
 
회원등록 비번분실


온라인 입금계좌
ㆍ기업은행
ㆍ219-043192-01-028
ㆍ이건영

      거래은행 바로가기
 
 Arduino Open Source
아듀이노 함수의 상세설명
작성자 avrtools™        
작성일 2008/09/02
첨부#1 LCD4BitLibrary.zip (6KB) (Down:1249)
ㆍ추천: 0  ㆍ조회: 4219   
  아듀이노 4비트 LCD (구형)
참조 : http://www.arduino.cc/playground/Code/LCD4BitLibrary
제목 : The 4-bit Arduino LCD library

문자 LCD는 8비트 인터페이스로, 데이터선이 8개 제어선이 3개로 모두 11핀의 포트를 소비한다.
작은 제어장치에서 11핀은 너무 많은 핀이므로, LCD에 표시하는 데이터선을 4개로 줄이는 목적이다. 
결국, 제어선 3핀은 줄일 수 없으므로 6~7핀의 포트로 8비트 문자 LCD를 사용할 수 있다.

아듀이노 기판은 공개된 LCD 소프트웨어를 설치방법에 따라서 아듀이노 소프트웨어에 복사해 넣고,
공개된 사용 예제를 따라서 실행코드를 만들면, 누구든지 어렵지 않게 바로 LCD에 문자를 표시할 수 있다.

아듀이노의 표준화된 하드웨어는 편리한 라이브러리와 공개소스로, 누구나 쉽게 사용할 수 있다.
 
M18-USB 기판 소개 : http://www.avrtools.co.kr/technote7/board.php?board=tnshoppublic&command=body&no=44

목적 
문자표시 LCD는 원래 데이터 8비트, 제어 3비트로 11개의 포트로 연결되는 8비트 방식이다.
그러나, LCD가  4비트 모드를 지원하므로, 데이터 4비트와 제어 3비트로 모두 7개의 포트만 사용한다.
4비트 인터페이스 방식은, 8비트 명령과 데이터를 2로 나누어 전송하는 방식이다. 

부품
HD44780을 사용하는 문자표시용 LCD로, 16자 x 2줄, 20자 x 2줄의 표준 제품을 사용할 수 있다.
백라이트가 있는 16x2 LCD는 icbank.com, findlcd.com에서 소매가격 7200원으로 구입이 가능하다.


시중에서 판매하는 문자표시용 LCD는 대부분의 사용이 가능하며, 백라이트를 가지고 있다. 
BLU의연결은 15번은 VCC에, 16번은 GND에 연결하고, LCD 뒷면의 BLU용 점퍼를 연결해 주어야 한다.
BLU 점퍼 옆에 BLU 직렬저항이 있으면 OK, 만일 RA,RK 직렬저항이 없으면 추가해야 한다.

     

LCD 모듈 연결
  1 GND  --- GND
  2 +5V  --- VCC
  3 Vadj --- 명암조정저항--- 접지
  4 RS ---- D12
  5 RW  --- GND
  6 ENB --- D2
  7 D0
  8 D1
  9 D2
 10 D3
 11 D4 --- D7
 12 D5 --- D8
 13 D6 --- D9
 14 D7 --- D10
 15 BL(-) --- GND
 16 BL(+) --- VCC
 
D12는 LCD의 RS, D2는 LCD의 E,
D7, D8, D9, D10은 LCD의 DB4~DB7로 연결.
LCD의 5번 RW 핀은 GND로 연결한다.
(D11을 LCD의 RW에  연결하였으나, 현재는 사용하지 않음)  직접 GND 한다.

LCD의 V0는 명암조절 기능이다, 가변저항을 쓰지 않거나,
가변저항의 VCC 핀은 연결은 하지 않아도 좋다.(추천)
 
LCD에 따라 470~4.7K 옴의 저항을 V0와 GND 사이에만 연결해도 된다.
잘 보이는 값을 알면 가변저항은 고정저항으로 변경해도 된다.
  
 
4 비트 LCD 라이브러리
http://www.arduino.cc/playground/uploads/Code/LCD4BitLibrary.zip
 
파일의압축을 풀고, arduino-0011 > hardware > libraries 안에 LCD4Bit 폴더를 통째로 넣는다.
 
 
복사된 LCD  라이브러리는 arduino-0011 > hardware > libraries > LCD4Bit > LCD4Bit.cpp 이다.

 
아듀이노 소프트웨어를 시작하고, Sketch > Import Library > LCD4Bit 를 선택한다.
  
 
File > Sketchbook > Examples > Library-LCD4Bit > LCD4Bit Example을 누른다.
 
 
사용방법

4비트 LCD 라이브러리는, 이전의 8비트 LCD 실행코드를 호환성이 있도록 수정한 것이다.
원래의 8 비트 LCD 라이브러리와 무엇이 달라졋는지 설명한다.

(1) D12는 RS, D11은 RW, D2는 Enable, D7, D8, D9, D10은 LCD의 DB4~DB7로 연결한다.
(2) LCD의 하위 4비트 데이터 DB0~DB3을 제거한다. (LCD의 데이터는 DB4 ~DB7 이다)
 
개조 방법
이 구조를 바꾸려고 라이브러리에 접근할 필요는 없다. 향상된 라이브러리는 올바르기 때문이다.
아듀이노의 핀을 바꾸려면, for (int i=DB[0]; i <= DB[3]; i++) digitalWrite(i,val_nibble & 01); 를
for (int i=0; i <= 3; i++) digitalWrite(DB[i], val_nibble & 01); 로 바꾸고
실행코드에서는, LCD4Bit lcd = LCD4Bit(1); 의 ( )안의 숫자를 1 혹은 2로 바꾸어야 한다.

사용 예
#include <LCD4Bit.h>          // 라이브러리를 부른다.
LCD4Bit lcd = LCD4Bit(1);     // LCD가 4줄 짜리이면 4를 넣는다,
 
void lcd_disp()
{
  lcd.clear();                         //  LCD의 해당 줄의 문자를 모두 지운다.
  delay(100);                         // 0.1초를 기다린다.
  lcd.printIn("arduino");           // LCD에 "arduino" 라고 문자를 표시한다
  delay(100);                         // 0.1초를 기다린다.
}

확장 기능
활발한 아이디어로 관련 기능이 추가되어 있다. 발전된 확장기능을 사용하면 편리하다.
그러나, 복사한 라이브러리를 저장할 공간을 절약하기 위해 지워도 된다.

lcd.leftScroll(20, 50);    // 표시된 20문자를 좌측으로 밀어내고, 50 ms을 대기한다.
lcd.cursorTo(2, 0);      // 2번째 줄, 첫번째 칸 (line=2, x=0)으로 커서(표시할 위치에 깜빡이는 빈문자)를 이동한다.
 
첨부된 스케치 LCD4BitLibrary.ZIP 파일을 내려받기 한다.
LCD4Bit/examples/LCD4BitExample/LCD4BitExample.pde

LCD4BitExample.pde는 arduino-0011 안에 들어 있다,
 
LCD4Bit 라이브러리 사용예
#include <LCD4Bit.h>         // 라이브러리를 부른다.
LCD4Bit lcd = LCD4Bit(1);    // 1줄표시로 4비트 LCD 실행코드를 생성한다.

char msgs[6][15] = {"apple", "banana", "pineapple", "mango", "watermelon", "pear"};  // 시험용 문자열
int NUM_MSGS = 6;

 
void setup()                       // 기판의 준비 (초기화 함수) 
{
  pinMode(13, OUTPUT);     // 작동 표시용 LED를 출력으로 설정

  lcd.init();                          // LCD 초기화
  lcd.commandWrite(0x0F);  // cursor on, display on, blink on. (이 줄은 실행 지워도 LCD는 작동된다)
}

 
void loop()                         // 무한반복 본문 (주함수)

  digitalWrite(13, HIGH);          // RUN-LED를 켠다.

  int pick = random(NUM_MSGS);   
  char* msg = msgs[pick];   // 표시할 문자열을 난수로 고른다
  
  lcd.clear();                        // LCD를 지운다
  lcd.printIn(msg);                // 선택한 문자열을 LCD에 표시한다
  delay(1000);                      // 1초를 기다린다.
  digitalWrite(13, LOW);         // RUN-LED를 끈다.
  
  for (int i=0; i<3; i++)            // 3개의 점을 LCD에 표시한다

 {
    lcd.print('.');                   // 점을 LCD에 표시한다.
    delay(100);                     // 0.1초 간격으로 표시한다.
  }

  lcd.cursorTo(2, 0);            // 2번째 줄, 첫자리에 표시를 시작한다.
  lcd.printIn("Score: 6/7");    // () 안의 "  " 안에 표시할 문자를 넣는다.  

  delay(1000);                     // 1초를 기다린다. (없어도 된다)  
  lcd.leftScroll(20, 50);          // 20 문자를 좌로 이동하고, 50ms을 기다린다(LCD가 스크롤하는 시간)

}
이 프로그램은 무료 소프트웨어로, 신체와 재산 상의 어떤 위험과 손해를 보상하지 않습니다.
이 프로그램은 GNU 무료 소프트웨어 배포규정을 따릅니다.
Free Software Foundation, Inc. 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA
  
AVRTOOLS™
   
  0
9999
윗글 아듀이노 멜로디 연주
아래글 아듀이노 가변저항
    N         제목    글쓴이 작성일 조회 추천
판매상품의 사용설명서는 다른 자료실에,,, avrtools™ 2011/08/30 (화) 1414 0
23 LCD 문자표시 (신형) avrtools™ 2012/04/12 (목) 2028 0
22 아듀이노 멜로디 연주 avrtools™ 2008/08/22 (금) 3376 0
21 아듀이노 4비트 LCD (구형) avrtools™ 2008/09/02 (화) 4219 0
20 아듀이노 가변저항 avrtools™ 2008/08/26 (화) 3030 0
19 직렬 데이터 이동(shift) 출력 avrtools™ 2012/04/10 (화) 1653 0
18 디지털 신호의 펄스폭을 측정하는 함수 avrtools™ 2012/04/10 (화) 1899 0
17 EEPROM 읽기, 쓰기 함수 avrtools™ 2012/04/10 (화) 2203 0
16 변수의 크기 avrtools™ 2012/04/10 (화) 1547 0
15 플레시 메모리에 상수를 저장하고 읽는 함수 avrtools™ 2012/04/10 (화) 1804 0
14 소프트웨어 Serial 함수 avrtools™ 2012/04/10 (화) 1736 0
13 아듀이노 터치스위치 [3] avrtools™ 2008/08/11 (월) 4042 0
12 아듀이노 shiftOut avrtools™ 2008/09/10 (수) 3276 0
11 아듀이노 스위치와 LED점등 avrtools™ 2008/08/13 (수) 4509 0
10 아듀이노의 주파수 출력 함수 avrtools™ 2009/10/20 (화) 2656 0
9 One Button Switch Library avrtools™ 2012/03/09 (금) 1777 0
8 아듀이노 논리연산 avrtools™ 2008/08/26 (화) 2915 0
7 아듀이노 PS2 키보드 읽기 avrtools™ 2008/09/10 (수) 3965 0
6 아듀이노 가로채기 함수 avrtools™ 2008/08/23 (토) 3092 0
5 아듀이노 전용명령 avrtools™ 2008/09/16 (화) 3858 0
4 아듀이노 PWM 출력과 타이머1 전용명령 avrtools™ 2008/08/19 (화) 3475 0
3 8비트 포트의 단일비트 조작방법 avrtools™ 2010/10/30 (토) 2296 0
2 직렬포트에서 문자를 받아 숫자 int로 저장 avrtools™ 2012/04/08 (일) 1628 0
1 직렬통신포트의 초기화 avrtools™ 2012/04/06 (금) 1416 0
1

바구니 : 0
 보관함 : 0
오늘뷰 : 0
HOME   |   회사소개   |   제휴안내   |   회사위치   |   서비스이용 약관   |   개인정보 보호정책   |   사이트맵
17015 경기도 용인시 기흥구 동백중앙로16번길 16-25, 508호. 전화 : 031-282-3310
사업자 등록번호 : 697-47-00075 / 대표 : 이건영 / 업태 : 제조업 / 종목 : LED조명, LED전원, 제어장치.
개인정보 관리책임자 : 홈페이지 관리자 . Copyright ⓒ2016 아크레즈 (ACLEDS INC.)
HOME TOP PREVNEXT 0 0 0