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








 게시판 검색





 
 
회원등록 비번분실


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

      거래은행 바로가기
 
 Sensor Applications
아듀이노 공개소스
작성자 avrtools™        
작성일 2008/08/30
ㆍ추천: 0  ㆍ조회: 3283   
  아듀이노 POV #3
참조 : http://i.document.m05.de/?cat=9
제목 : 아듀이노 POV (persistence of vision typography with arduino)
저자 : michael zoellner - march 2006
 
POV 란 무엇인가?
POV는 문자의 표시를 지속하는 장치라는 뜻으로,
한줄의 LED를 좌우로 흔들때, LED를 시간차로 점등/소등하여 문자를 표시한다.
  

회로
5개의 LED를 아듀이노 포트에 +(Anode)를 연결하고,
20~50옴의 저항을 -(Cathod)에 연결하여 접지시킨다.
LED에 연결하는 포트는 D2, D3, D4, D5, D6 으로 5개이다.
수직축에서 점 상태로 표시되는 문자의 정의표는 배열변수로 조립하였다.
 
참조 : http://gestaltung.fh-wuerzburg.de/blogs/exint_ws06/?cat=20
제목 : 말하는 신발 (Talking Shoes)
 

사용자는 스위치를 통해, 3가지 다른 방법으로 표시하는 것이 가능하다
색상의 변경
문자의 분명한 떨림(VIBRATION)
획일적인 문자의 흐름

// 영문자의 POV 글꼴 (5X5로 공백문자를 시작으로 A 부터 Z 까지 정의한다)
int _[] = {0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0};
int A[] = {0,1,1,1,1, 1,0,1,0,0, 0,1,1,1,1};
int B[] = {1,1,1,1,1, 1,0,1,0,1, 0,1,0,1,0};
int C[] = {0,1,1,1,0, 1,0,0,0,1, 1,0,0,0,1};
int D[] = {1,1,1,1,1, 1,0,0,0,1, 0,1,1,1,0};
int E[] = {1,1,1,1,1, 1,0,1,0,1, 1,0,1,0,1};
int F[] = {1,1,1,1,1, 1,0,1,0,0, 1,0,1,0,0};
int G[] = {0,1,1,1,0, 1,0,1,0,1, 0,0,1,1,0};
int H[] = {1,1,1,1,1, 0,0,1,0,0, 1,1,1,1,1};
int I[] = {0,0,0,0,1, 1,0,1,1,1, 0,0,0,0,1};
int J[] = {1,0,0,0,0, 1,0,0,0,1, 1,1,1,1,1};
int K[] = {1,1,1,1,1, 0,0,1,0,0, 0,1,0,1,1};
int L[] = {1,1,1,1,1, 0,0,0,0,1, 0,0,0,0,1};
int M[] = {1,1,1,1,1, 0,1,1,0,0, 0,1,1,1,1};
int N[] = {1,1,1,1,1, 1,0,0,0,0, 0,1,1,1,1};
int O[] = {0,1,1,1,0, 1,0,0,0,1, 0,1,1,1,0};
int P[] = {1,1,1,1,1, 1,0,1,0,0, 0,1,0,0,0};
int Q[] = {0,1,1,1,1, 1,0,0,1,1, 0,1,1,1,1};
int R[] = {1,1,1,1,1, 1,0,1,0,0, 0,1,0,1,1};
int S[] = {0,1,0,0,1, 1,0,1,0,1, 1,0,0,1,0};
int T[] = {1,0,0,0,0, 1,1,1,1,1, 1,0,0,0,0};
int U[] = {1,1,1,1,1, 0,0,0,0,1, 1,1,1,1,1};
int V[] = {1,1,1,1,0, 0,0,0,0,1, 1,1,1,1,0};
int W[] = {1,1,1,1,0, 0,0,1,1,0, 1,1,1,1,0};
int X[] = {1,1,0,1,1, 0,0,1,0,0, 1,1,0,1,1};
int Y[] = {1,1,0,0,0, 0,0,1,0,0, 1,1,1,1,1};
int Z[] = {1,0,0,1,1, 1,0,1,0,1, 1,1,0,0,1};

int letterSpace;               // 함수에서 사용할 변수를 미리 정의한다
int dotTime;
void setup()                   // 기판의 초기화 함수

  pinMode(2, OUTPUT);   // LED를 연결한 디지털 포트를 출력으로 설정
  pinMode(3, OUTPUT);
  pinMode(4, OUTPUT);
  pinMode(5, OUTPUT);
  pinMode(6, OUTPUT); 

  letterSpace = 6;             // 문자와 문자 사이의 공백(space)을 표시하는 시간 (ms)
  dotTime = 3;                 // 수직줄의 한점(dot)을 표시하는 시간의 정의 (ms)
}

void printLetter(int letter[]) // POV에서 문자를 표시하는 함수
{
  int y;                             // POV 문자표시 함수에서만 사용하는 지역변수 (글씨꼴 5 X 5의 수직줄(ROW)를 정의) 

  for (y=0; y<5; y++) digitalWrite(y+2, letter[y]);     // 첫번째 문자를 표시한다 
  delay(dotTime); 
  for (y=0; y<5; y++) digitalWrite(y+2, letter[y+5]);   // 두번째 문자를 표시한다 
  delay(dotTime); 
  for (y=0; y<5; y++) digitalWrite(y+2, letter[y+10]);  // 세번째 문자를 표시한다
  delay(dotTime);                                               // 문자와 문자 사이는 LED를 모두 끈다
  for (y=0; y<5; y++) digitalWrite(y+2, 0);                // 수직줄을 모두 끈다 
  delay(letterSpace);                                           //  문자와 문자사이는 LED를 오래 끈다.
}

void loop()

  printLetter(N);             // ()안에 들어간 문자를 5(수직)X5(수평) 글씨꼴로 표시한다
  printLetter(E);             // ASCII 문자를 넣으면 글씨꼴이 있으므로 POV에서 5x5로 표시된다.
  printLetter(R);
  printLetter(D);
  printLetter(S);
  printLetter(_);
}

여기 까지가 원저자의 소스이다
이것이 최근 시작된 아듀이노 데시밀라로 만든 나의 첫번째 소스이다.  
나는 독일 사이트에서 복사하여 소스를 시작햇다.
코드는 작동한다, 그러나 문자가 변하지 않는 고정된 것이다.
 
결국, 나는 코드를 고치기로 확정햇다. 나에게 시작할수 잇게 동기를 부여하고,
나의 웹사이트에 소스의 게시를 허락한 Michael Zoellner씨에게 존경과 감사를 표합니다.
위의 코드는 원저자의 소스이다, LED를 어떻게 켜는지는 소스 자체에서 설명되어 있다
 
나는 같은 기능을 반복해서 만들고 삽질햇다 (saw라면 직업이 목수인가?),
결국, 2차원 배열로 변경하고 loop를 손질햇다. 연결은 똑 갇다,
작동도 같다, 다만 조금 깨끗해 졋다. 아직 어떤 계획도 없다.
솔직히 어떻게 업로드 하는지도 모른다. 이제 발목만 담갓다.

Michael이 나에게 준 도움처럼, 누군가의 시작을 돕는것을 희망한다
질문, 평가, 어려움은 mynameincludinginitial@gmail.com 으로 편지하라.
나의 코드는 다음과 같다.
 
// 영문(alphabet) 글꼴(font)의 정의
int _[3][5] = {{0,0,0,0,0}, {0,0,0,0,0}, {0,0,0,0,0}};
int A[3][5] = {{0,1,1,1,1}, {1,0,1,0,0}, {0,1,1,1,1}};
int B[3][5] = {{1,1,1,1,1}, {1,0,1,0,1}, {0,1,0,1,0}};
int C[3][5] = {{0,1,1,1,0}, {1,0,0,0,1}, {1,0,0,0,1}};
int D[3][5] = {{1,1,1,1,1}, {1,0,0,0,1}, {0,1,1,1,0}};
int E[3][5] = {{1,1,1,1,1}, {1,0,1,0,1}, {1,0,1,0,1}};
int F[3][5] = {{1,1,1,1,1}, {1,0,1,0,0}, {1,0,1,0,0}};
int G[3][5] = {{0,1,1,1,0}, {1,0,1,0,1}, {0,0,1,1,0}};
int H[3][5] = {{1,1,1,1,1}, {0,0,1,0,0}, {1,1,1,1,1}};
int I[3][5] = {{1,0,0,0,1}, {1,1,1,1,1}, {1,0,0,0,1}};
int J[3][5] = {{1,0,0,0,0}, {1,0,0,0,1}, {1,1,1,1,1}};
int K[3][5] = {{1,1,1,1,1}, {0,0,1,0,0}, {0,1,0,1,1}};
int L[3][5] = {{1,1,1,1,1}, {0,0,0,0,1}, {0,0,0,0,1}};
int M[3][5] = {{1,1,1,1,1}, {0,1,1,0,0}, {0,1,1,1,1}};
int N[3][5] = {{1,1,1,1,1}, {1,0,0,0,0}, {0,1,1,1,1}};
int O[3][5] = {{0,1,1,1,0}, {1,0,0,0,1}, {0,1,1,1,0}};
int P[3][5] = {{1,1,1,1,1}, {1,0,1,0,0}, {0,1,0,0,0}};
int Q[3][5] = {{0,1,1,1,1}, {1,0,0,1,1}, {0,1,1,1,1}};
int R[3][5] = {{1,1,1,1,1}, {1,0,1,0,0}, {0,1,0,1,1}};
int S[3][5] = {{0,1,0,0,1}, {1,0,1,0,1}, {1,0,0,1,0}};
int T[3][5] = {{1,0,0,0,0}, {1,1,1,1,1}, {1,0,0,0,0}};
int U[3][5] = {{1,1,1,1,1}, {0,0,0,0,1}, {1,1,1,1,1}};
int V[3][5] = {{1,1,1,1,0}, {0,0,0,0,1}, {1,1,1,1,0}};
int W[3][5] = {{1,1,1,1,0}, {0,0,1,1,0}, {1,1,1,1,0}};
int X[3][5] = {{1,1,0,1,1}, {0,0,1,0,0}, {1,1,0,1,1}};
int Y[3][5] = {{1,1,0,0,0}, {0,0,1,0,0}, {1,1,1,1,1}};
int Z[3][5] = {{1,0,0,1,1}, {1,0,1,0,1}, {1,1,0,0,1}};
int rightarrow[3][5] = {{1,0,0,0,1}, {0,1,0,1,0}, {0,0,1,0,0}};
int leftarrow[3][5] = {{0,0,1,0,0}, {0,1,0,1,0}, {1,0,0,0,1}};

int letterSpace;    // 수직줄과 수직줄 사이의 빈공간을 표시(LED를 끈다)하는 시간
int dotTime;        // 수직줄의 점을 표시하는 시간

void setup()        // 기판의 준비 , 5개의 포트를 출력으로 설정한다. 
{
  pinMode(2, OUTPUT);           // LED를 연결할 포트를 출력으로 설정(포트의 방향을 전환)
  pinMode(3, OUTPUT);
  pinMode(4, OUTPUT);
  pinMode(5, OUTPUT);
  pinMode(6, OUTPUT);        
 
  letterSpace = 10;                    // 수직줄의 문자와 문자 사이의 LED 소등시간은 10ms  
  dotTime = 5;                          // 수직줄의 한점을 표시하는 LED 점등시간은 5ms
}
 
void printLetter(int letter[3][5])  // 문자를 표시하는 함수, x는 수평(column)이고 y는 수직(row)이다.
{
  int y;              // y를 증가시키면, 표시할 수직선 위의 점 위치를 변경한다 
  int x;              // x를 증가시키면, 바로 우측의 수직줄을 표시한다.
  for (x=0; x<3; x++)
 {
   for (y=0; y<5; y++) digitalWrite(y+2, letter[x][y]);
   delay(dotTime);
   for (y=0; y<5; y++) digitalWrite(y+2, 0);
  }
  delay(letterSpace);          // 공백을 표시하는 시간 (문자와 문자 사이)
}

void loop()                       // 무한반복 주함수
{
  printLetter(H);                 // 표시할 문자를 ()안에 넣어서, LED를 점등하는 함수를 부른다
  printLetter(E);                 // 영문자 글꼴이 정의되어 있으므로 ASCII 코드 1개로 함수를 호출한다.
  printLetter(L);
  printLetter(L);
  printLetter(O);
  printLetter(_);
  printLetter(W);
  printLetter(O);
  printLetter(R);
  printLetter(L);
  printLetter(D);
  printLetter(_);                    // _는 공백(space) 이다.
}

펌 자료를 게시할 때는, 원저자와 참조사이트를 표시하는 습관을 기릅시다.
참조 : http://gestaltung.fh-wuerzburg.de/blogs/exint_ws06/?cat=20
저자 : mynameincludinginitial@gmail.com

이 프로그램은 무료 소프트웨어로, 신체와 재산 상의 어떤 위험과 손해를 보상하지 않습니다.
이 프로그램은 GNU 무료 소프트웨어 배포규정을 따릅니다.
Free Software Foundation, Inc. 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA
 
 AVRTOOLS™
   
윗글 아듀이노 AVR-ISP 만들기
아래글 아듀이노 POV #2
    N         제목    글쓴이 작성일 조회 추천
61 비접점식 QTouch 방식 근접검출 스위치 leeky 2016/01/21 (목) 487 0
60 Arduino 고속 오실로스코프 #3 avrtools™ 2012/03/29 (목) 17510 0
59 아날로그 8ch 데이터 로거 avrtools™ 2012/03/29 (목) 2653 0
58 Arduino DMX512 송신기 제작 avrtools™ 2012/03/15 (목) 2749 0
57 nRF24L01 무선모듈의 사용방법 avrtools™ 2012/03/07 (수) 5490 0
56 초음파 거리 측정기의 제작 avrtools™ 2011/09/18 (일) 4592 0
55 3축 가속도 센서 ADXL335 avrtools™ 2011/09/09 (금) 3143 0
54 Arduino Uno USBserial 펌웨어의 변경 avrtools™ 2011/08/27 (토) 2815 0
53 Arduino MIDI의 소개 avrtools™ 2011/08/19 (금) 3173 0
52 Arduino 고속 Oscillo Scope #2 avrtools™ 2011/08/12 (금) 2798 0
51 Arduino Uno 및 USB2serial Uno의 소개 [2] avrtools™ 2011/07/30 (토) 3043 0
50 Arduino IDE에서 AVRISP-mkII 사용방법 avrtools™ 2010/10/22 (금) 7631 0
49 아듀이노 초음파 거리측정 및 응용 avrtools™ 2010/03/14 (일) 3962 0
48 M328-USB의 비밀 온도센서 avrtools™ 2010/01/02 (토) 3398 0
47 M168-mini로 만드는 USBasp avrtools™ 2009/10/10 (토) 4996 0
46 OBDuino ISO9141 소스의 설명 avrtools™ 2009/10/08 (목) 3928 0
45 아듀이노 0017 업그레이드 avrtools™ 2009/08/18 (화) 3459 0
44 Arduino 0015 업그레이드 avrtools™ 2009/06/01 (월) 3158 0
43 CC2500 Zigbee RF Modem #1 [4] avrtools™ 2008/11/20 (목) 6315 0
42 아듀이노 소프트웨어 Ver 0012 avrtools™ 2008/09/23 (화) 3823 0
41 Arduino 소프트웨어 설치방법 avrtools™ 2008/08/31 (일) 5341 0
40 아듀이노 PC 카메라 제작 avrtools™ 2008/10/28 (화) 6940 0
39 아듀이노 AVR-ISP V2의 제작 [6] avrtools™ 2008/10/22 (수) 7902 0
38 아듀이노 J1850-PWM 스캐너 avrtools™ 2008/10/15 (수) 4356 0
37 아듀이노 MPGduino의 제작 avrtools™ 2008/10/11 (토) 4616 0
36 아듀이노 OBD-II PID 처리함수 avrtools™ 2008/10/12 (일) 5243 0
35 아듀이노 OBD-II PID 송수신 함수 avrtools™ 2008/10/09 (목) 9312 0
34 아듀이노 ODB-II 스캐너 제작 [9] avrtools™ 2008/10/04 (토) 16506 0
33 아듀이노 AC전원 THD 측정 [2] avrtools™ 2008/09/30 (화) 6442 0
32 아듀이노 소프트방식 16Bit ADC avrtools™ 2008/09/23 (화) 5327 0
31 아듀이노 초음파 모듈의 제작. avrtools™ 2008/09/22 (월) 4588 0
30 아듀이노 Wii 프로세싱 avrtools™ 2008/09/20 (토) 3939 0
29 아듀이노 초음파 거리측정 avrtools™ 2008/09/20 (토) 5814 0
28 아듀이노 8x5 초소형 전광판 avrtools™ 2008/09/11 (목) 4421 0
27 아듀이노 4선식 터치패널 avrtools™ 2008/09/10 (수) 4469 0
26 아듀이노 2색 8x8 LED avrtools™ 2008/09/10 (수) 4652 0
25 아듀이노 24x6 LED 전광판 avrtools™ 2008/09/10 (수) 5178 0
24 아듀이노 8x8 LED 프로세싱 avrtools™ 2008/09/10 (수) 3935 0
23 아듀이노 32x16 RGB 전광판 avrtools™ 2008/09/06 (토) 13439 0
22 아듀이노 맥박검출기 avrtools™ 2008/09/03 (수) 9154 0
21 아듀이노 적외선 거리센서 avrtools™ 2008/09/01 (월) 5631 0
20 아듀이노 DMX 수신장치 [7] avrtools™ 2008/08/31 (일) 6482 0
19 아듀이노 AVR-ISP 만들기 avrtools™ 2008/08/30 (토) 3973 0
18 아듀이노 POV #3 avrtools™ 2008/08/30 (토) 3283 0
17 아듀이노 POV #2 avrtools™ 2008/08/30 (토) 3091 0
16 AVR 병렬포트 굽기장치 avrtools™ 2008/08/30 (토) 4949 0
15 아듀이노 DMX 송신기 avrtools™ 2008/08/28 (목) 4910 0
14 아듀이노 부트로더의 개조 [1] avrtools™ 2008/08/28 (목) 5593 0
13 아듀이노 병렬포트 굽기장치 avrtools™ 2008/08/26 (화) 4026 0
12 아듀이노 POV #1 avrtools™ 2008/08/26 (화) 3319 0
11 아듀이노 MIDI 드럼 leeky 2008/08/24 (일) 4533 0
10 아듀이노 SD/MMC 카드 avrtools™ 2008/08/24 (일) 9564 0
9 아듀이노 MIDI 플륫 avrtools™ 2008/08/24 (일) 3395 0
8 아듀이노 RGB LED avrtools™ 2008/08/23 (토) 4825 0
7 아듀이노 USB 오실로스코프 [2] leeky 2008/08/21 (목) 6201 0
6 가속도계 ADXL202 응용소스 avrtools™ 2008/08/20 (수) 4688 0
5 아듀이노 가속도센서 avrtools™ 2008/08/18 (월) 4633 0
4 아듀이노 RC서보 제어 avrtools™ 2008/08/17 (일) 4984 0
3 아듀이노 910-ISP 만들기 avrtools™ 2008/08/16 (토) 4508 0
2 아듀이노 온도센서, XBee 송수신 avrtools™ 2008/08/15 (금) 7204 0
1 아듀이노 기본명령 avrtools™ 2008/08/07 (목) 6312 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