', { cookie_domain: 'auto', cookie_flags: 'max-age=0;domain=.tistory.com', cookie_expires: 7 * 24 * 60 * 60 // 7 days, in seconds }); 'Arduino' 태그의 글 목록 :: 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
728x90

자작에 미쳐살다  취미를 들이다 보면

 

어떤 특정한 동작을 하는 전자회로가 필요할 때가 있습니다 .

 

그럴 때를 대비해 구입한 것이

http://cafe.naver.com/pashiran/457 이놈이었습니다만... 가격이 비싸서 한곳에 장착해버리기엔 너무 아깝기 때문에

 

오히려 사용을 하지 못하는 문제가 있었습니다. 그렇다고 여기저기 필요할때마다 프로그램 다시해서 바꿔달기도 힘들고...

 

 

리튬이온 충전기 구글링하고 instructables 구경하던 와중에 Arduino 라는 물건을 알게 되었습니다.

 

오픈소스 하드웨어로서 avr을 기반으로 쉽게 프로그래밍하고 사용할 수 있는 물건에다 모든 소스가 다 공개되어 있고

 

결정적으로 단면기판 에칭으로 자작이 가능하다... 라는 소리에 눈이 돌아가 미친듯이 자료 탐독에 들어갔습니다.

 

 

국내에는 아직 많은 사용자가 있는 것은 아닙니다만 몇몇 안되는 블로그에서나마 상당히 충실한 자료를 구비해놓고 있어 초기접근이 편한 듯 합니다.

 

suapapa 님의 블로그 를 보고 따라하기 시작했습니다. 그야말로 A부터 Z까지(... 는 아니더라도 한 H 정도 ^^:) 상세한 설명이 되어 있어

 

이해가 쉽더군요.

 

 

 

 

이 기회를 빌어 과거 pashiran.pe.kr 운영하던 시절에 도전했다 결과물에 실망하고 접었던 PCB 다림질 에칭 을 다시 도전해봤습니다.

 

옥션에서 산 싸구려 포토용지로 거의 단박에 성공... 예전의 삽질도전기를 무색하게 만들더군요;;

 

 

 

 

살짝 눌러봤다 실패한 동판이라 자국이 남아있습니다.

 

쇠수세미로 벅벅 밀고 싹싹 닦아서 재도전.

 

 

 

 

결과물은... 생각보다 훌륭했습니다.

 

다른 분은 포토용지보다 시트지 뒷장이 훨씬 더 좋다는데 전 왜 예전에 그렇게 실패를 거듭했는지 모르겠군요;

 

포토 용지가 같이 떨어져 나와 흰색으로 전사가 됐네요.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

전사가 덜 된 부분은 네임팬으로 수정합니다. 일반 네임팬은 생각보다 굵으니 '가는 글씨용 네임팬' 을 미리 구비해 두시는 것도 좋겠습니다.

 

 

 

 

 

 

 

 

 

 

 

 

 

에칭에 관한 글은 웹에도 자료가 많으니 사진만으로 보여드리도록 하지요.

 

 

 

 

 

 

 

 

 

윗면도 전사를 해 주는것이 좋습니다. 나중에 납땜할때 참 도움되더군요.

 

드릴링이 전체 과정에서 제일 힘들지만, 저는 전동드릴이 있어서 그나마 편했습니다... 4개 만드느라 드릴날 한 만원어치를 날려먹긴 했습니다만;

 

 

 

 

 

 

 

 

 

 

 

 

거의 지름신이 강림한 수준이 되어서 한번에 만들어버린 아두이노 4형제입니다.

 

부품값이 얼마나 드는지 같이 계산해서 포스팅해보고 싶었습니다만 다른 물건을 같이 주문하느라 계산이 꼬여 관뒀습니다.

 

다음 기회에 다시 정리해보도록 하죠.

 

 

 

 

 

 

 

 

 

 

 

 

 

부품 구입처는 주로 엘레파츠, ic114를 이용했습니다. 대부분의 부품은 구하기 쉽지만 무극 전해 콘덴서(C9) 과 BC557(pnp Tr)은

 

엘레파츠에서 판매하지 않아 부득이 ic114에서 구입했습니다.

 

BC557은 다른 pnp로 대치 가능하고, 무극전해콘덴서는 일반 전해 콘덴서 2개를 극이 다르게 병렬 연결하여 꽂아도 된다고 하는군요.

 

저는 BC557 대신 KTA1270을 꽂았는데 Emmiter Collector Base 순서가 달라 다리를 꼬아 끼웠습니다.

 

 

 

 

 

 

그리곤 삽질을 거듭했습니다.

 

부트로더를 심어야 하는데... 사실 부트로더 개념도 정확히 모르겠고

 

 

ISP를 예전에 회사에서 줏어놓은 물건을 사용하려 생각하다가 나중에 자료를 읽다 보니

 

저 시리얼 포트는 프로그램 굽는곳이지 부트로더 굽는 포트가 아니더군요.

 

 

 

 

 

 

 

 

 

 

http://www.arduino.cc/en/Hacking/ParallelProgrammer

요거 따라하려다 맞는 저항이 없어서 직렬 연결중인 저항.. -_-;;;

 

결국 실패.

 

 

 

 

 

 

 

 

 

그래서 선을 따다 납땜할까 하고 데이터쉬트 읽다가 머리에 쥐날듯해서 그냥 NT-ISP 를 구입.. 했는데

 

 

 

suapapa님의 글 대로 따라하려 해봐도 영 아리송... 하고 이것저것 다 건드려 봐도 에러만 뿜는 상황속에서 이틀을 허비.

 

결국 리플로 질문했다가 답변을 받았더니 어이없는 삽질을 하고 있었다

 

리눅스 유저를 위한 글이었다는 군요.. -_-;;;;

 

 

결국 다시 소개해주신 작은태양님 글에 답이 있었는데... 문제는 저 글도 몇번을 읽었지만

 

이상하게도 처음 부분만 읽고 마는 바람에 모르고 있었던 것;;;;;

 

 

 

 

그대로 따라하니 허무하게도 몇초만에 성공..

 

 

 

 

 

 

 

실제론 무지 빠르게 파라라라락~ 하고 깜박이지만 동영상 한계상 꺼엄~뻑 하는 것처럼 보이는 LED.

 

 

 

 

728x90

'D.I.Y.' 카테고리의 다른 글

아이폰 충전&데이타 통신 케이블 만들기  (3) 2011.09.10
아이폰 독 만들기  (0) 2011.09.10
아두이노(arduino) 시작하기. 2  (0) 2011.09.10
새로운 장난감.  (0) 2011.09.10
새로산 모니터..힘들다  (0) 2011.09.10

+ Recent posts