', { cookie_domain: 'auto', cookie_flags: 'max-age=0;domain=.tistory.com', cookie_expires: 7 * 24 * 60 * 60 // 7 days, in seconds }); CLCD with 74HC595 :: MakerLee's Workspace
728x90

일단 닥치고 원문부터 읽어보지요.

 

http://www.suapapa.net/wordpress/?p=109&language=ko

 

 

 

 

확실히 LCD를 쓰면 남는 포트가 별로 없기에 나중에 기능을 추가할... 지는 모르겠지만 당장 포트가 아슬아슬하므로

 

기판부터 제작하기로 했습니다.

 

 

 

 

 

음? suapapa님이 만든 보드는 데이터선이 4갠데 내꺼는 8개네...

 

 

아... 이게 4bit 모드라는거를 이용해서 데이타선을 반으로 줄인다는거구나..

 

그런데 내꺼는 어떻게 줄이지 OTL

 

헤더 파일이 4bit 초기화를 시키는 것 같은데 그대로 갖다쓰고 땜질만 맞게 해 주면 되는 것 같기도 하고...

 

 

 

일단은 suapapa 님의 블로그를 참조해서 해 보려고 하는데, 잘 알지도 모르는 Arduino 보드를 간만에 다시 잡았더니

 

기억이 가물가물해서 일단 arduino 홈페이지 참조해서 기본부터 다시하기로 결정.

 

LCD 기본 레퍼런스

http://arduino.cc/en/Reference/LiquidCrystalConstructor 

 

Syntax

LiquidCrystal(rs, rw, enable, d4, d5, d6, d7) //4bit
LiquidCrystal(rs, rw, enable, d0, d1, d2, d3, d4, d5, d6, d7) //8bit

 

 

Example

#include <LiquidCrystal.h>

LiquidCrystal lcd(12, 11, 10, 5, 4, 3, 2);  //4bit 기준으로 포트를 지정했다.

void setup()
{
  lcd.print("hello, world!");
}

void loop() {}

 

 

 

 

내가 갖고 있는 LCD의 데이터쉬트를 참조하여 핀 번호를 체크.

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

GND

5V

Supply

Voltage

RS

R/W

E

 DB0

DB1

DB2

DB3

DB4

DB5

DB6

DB7

Anode

(Backlight)

K

(Backlight)

 

 

일단 DB0~DB7까지 모든 선을 다 연결하고 업로드해봤습니다.

 

 

 

 

 

 

 

 

 

 

그후 DB0~DB3을 빼고 다시 텍스트를 바꿔보니 제대로 나오는군요.

 

 

음.... 이거 첨에는 DB0~DB7 부터 무조건 다 연결해야 하는줄 알았는데 그냥 4선만 연결해도 나오는군요..

 

그렇다면 굳이 74HC595를 사용해야 할 만큼 포트가 모자라진 않는데,,, 이미 시작했으니 계속 진행해봅니다.

 

 

 

 

 

 

 

 

 

일단 LCD가 정상적으로 나오는 것을 확인했으니 suapapa님의 74HC595보드를 투입합니다.

 

 

 

 

핀이 일자형인 내 LCD 와는 달리, suapapa님은 병렬2열로 된 LCD로 만드셨기 때문에 포트의 위치가 다소 다르네요.

 

왼쪽의 3.3K 저항과 연결된 GND 핀과 그 아래의 다른 GND핀은 또 무엇인가?  하는 생각에 다시 자료를 뒤져봅니다.

 

 

suapapa님이 사용한 CLCD 의 데이터쉬트를 다시 찾아봤는데 핀 순서만 약간 다를 뿐 특별히 다른 문제는 없어 보이고

 

eagleCAD의 스키메틱을 보니 3.3k 저항은 LCD 콘트라스트를 위한 것이고 LCD의 RW 핀이 GND로 연결되는 것이군요.

 

 

 

 

 

 

 

 

재미없고 시간도 오래 걸리는 와이어링 작업이 끝났습니다.

 

사진에는 595보드의 10핀 커넥터가 실수로 반대로 꽂혀있음.

 

 

 

 

suapapa 님의 소스를 그대로 복사&붙여넣기 하고 업로드 했더니....

 

 

 

 

 o: In function `__static_initialization_and_destruction_0':
C:\Users\pashiran\Desktop\arduino-0013\work\Hello_CLCD595\applet/Hello_CLCD595.cpp:34: undefined reference to `CLCD595::CLCD595(unsigned char, unsigned char, unsigned char)'


o: In function `loop':
C:\Users\pashiran\Desktop\arduino-0013\work\Hello_CLCD595\applet/Hello_CLCD595.cpp:16: undefined reference to `CLCD595::clear()'


C:\Users\pashiran\Desktop\arduino-0013\work\Hello_CLCD595\applet/Hello_CLCD595.cpp:19: undefined reference to `CLCD595::putStr(char*)'


o: In function `setup':
C:\Users\pashiran\Desktop\arduino-0013\work\Hello_CLCD595\applet/Hello_CLCD595.cpp:11: undefined reference to `CLCD595::init()'


Couldn't determine program size: C:\Users\pashiran\Desktop\arduino-0013\hardware/tools/avr/bin/avr-size: 'C:\Users\pashiran\Desktop\arduino-0013\work\Hello_CLCD595\applet\Hello_CLCD595.hex': No such file


avrdude: can't open input file C:\Users\pashiran\Desktop\arduino-0013\work\Hello_CLCD595\applet\Hello_CLCD595.hex: No such file or directory
avrdude: write to file 'C:\Users\pashiran\Desktop\arduino-0013\work\Hello_CLCD595\applet\Hello_CLCD595.hex' failed

 

 

에러가 매우 많이 나옵니다.

 

아... 헤더파일을 복사해놓질 않았;;

 

 

다운받은 후 옮기려고 보니.... 어느 폴더로 넣어야 하지? @_@ㅋ;;;;;;;;;;

 

 

examples 파일들을 참조하여 hardware\libraries\CLCD595 폴더를 만들고 파일들을 넣은 후 다시 시도해 보았습니다.

 


 CLCD595.cpp:25:1: warning: "bitWrite" redefined
 In file included from C:\Users\pashiran\Desktop\arduino-0013\hardware\cores\arduino/WProgram.h:10,
                 from /CLCD595.h:17,
                 from CLCD595.cpp:13:
 C:\Users\pashiran\Desktop\arduino-0013\hardware\cores\arduino/wiring.h:91:1: warning: this is the location of the previous definition

 Binary sketch size: 4348 bytes (of a 7168 byte maximum)


 


업로드가 되긴 하는데 bitwrite 가 재정의되었다는 경고문이 나온다.

 

파일 두개에서 이중으로 정의되었다는 예기인 듯 한데...

 

하여간 업로드되긴 했는데 LCD는 나오질 않으니 문제로군요...

 

 

 

 

 

그러다가 3.3K 저항에 연결된 핀(LCD 콘트라스트 조정하는)이 제 LCD에서는 GND에 직결되어야 선명하게 나온다는 것을 생각하고

 

점퍼를 날려봤습니다.

 

 

사각박스가 나오긴 하지만 그래도 글자는 안나오네요....

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

경고문이 생각나서 CLCD595.cpp 의 해당 부분을 잠시 죽여놓고 다시 업로드 해 본 후

 

그래도 안되서 wiring.h 의 bitwrite 부분을 죽여놓고 업로드 해봤는데... 그래도 안됩니다.

 

 

 

 

음.... 이걸 고생하면서 해결할 것인가 아니면 그냥 DB4~DB7 만 연결해서 쓸것인가가 문제로군요...

 

 

 

 

 

 

 

 

 

728x90

'Completed > 전기 자전거' 카테고리의 다른 글

설계는 거의 끝났습니다.  (0) 2011.09.18
자전거 진행상황.  (5) 2011.09.18
Arduino 부트로더 심기....실패  (0) 2011.09.18
Arduino를 추가해 볼까...  (0) 2011.09.18
충전기 케이스 #3  (0) 2011.09.18

+ Recent posts