FND 핀 배열 찾기 (udsr-2056A)

2007. 9. 3. 19:18350. 전자 실험자료

 

 

급한 독자님들께 우선 결과부터 내 놓는다면 전극 배열이 일반 FND-500, FND-507 과는 판이하게

다름을 볼수잇을 것이다.

 

빵판에 쓸 점퍼선 부터 번호순 되로 짧은것을 많이 잘라서 (35 mm정도 길이로)

 

도루코 날을 가열해서  간극이 대략 6 mm 쯤 되게 꾸부려 놓고

 

부러지지 않게 매우 천천히 식혀야 한다.이때 날을 무디게 자갈로 날을 조금씩 문질러야 다치지 않게 된다.

 

 

 고무줄로 날을 단단히 물려놓고 촛불로 날을 가열 하면서(촛불과 날 간의 높이조절을 잘 해야 그을음 없도록 거리조절)

 

뜨거운 날 위에서 점퍼선을 돌돌 2바퀴정도 굴리면 껍질이 완전 분리 되므로 따뜻할때 잡아당기면 간단히 탈피가 이루어 진다.

흔히 값비싼 빵판을 얼마못쓰고 버리게 되는데 닛퍼로 탈피한것을 몇번 쓰다보면  닛퍼자국으로 생긴 상처로 잘려진 점퍼선의 다리가  빵판 구멍에 박혀서 뽑아낼수 없게 되어 아까운 빵판을 버리게 되는 것이다.

 

 이렇게 만들어진 점퍼선의 다리 길이는 늘 일정하게 되고 ,상처가 생기지 않아 부러지는 일이 없으므로 점퍼선도 오래도록 쓸수 있으며 , 빵판도 오래 쓸수있어 여러모로 경제적이다.

또한 숙달되면 닛퍼로 탈피하는것보다 훨씬 빨리 점퍼선을 만들수 있다.

 핵심 요점은 칼날을 꾸부릴때 점퍼선을 굴리게 되는쪽을 3 mm 정도 낮게 굽혀야 굴릴때 점퍼선 끝쪽이 받침대 역할을 하게 되는 것이다.(사진은 왼손잡이용이다. 오른손 잡이는 반대로 굽혀야 한다)

 

이렇게 굽혀놓은 삐뚤어진 U자형 칼날 하나면, 이제 점퍼선 만드는데는 프로,도사급 이 될것이다.

하루만 작업 한다면 1년치를 아주 품질좋게 만들수 잇을 것이다.

 한 50개 정도는 만들어야  fnd몇개 실습해 볼수 있다.

길에 다니다가 전화선로 공사하는 곳이 보이면 달려가서 0.6 mm 선경인것 다발(보통 30가닥 이상 이다)로

자투리 조금 구해두면 단일색으로 10가지 색상의 선  으로 점퍼선을 만들기 편리하다 (70가닥 이상 인것은 흔히 단색이 아니고 2중색인것이 많으므로 단색인것을 구하도록 하자.)

이런것은 전업사에서도 쉽게구할수는 없다.

 빵판 하나에 무얼 연결 할라케도 점퍼선이 한 200 개는 준비해 둬야지 작업하기 쉽다.

 

기본적으로 갖추려면 10 색배선줄에 20 mm, 25 mm, 30 mm, 40mm, 50 mm, 70mm ,100mm정도라면

10색 x 길이별로 각 10개씩 x  7 가지의 길이 ===> 700 개의 점퍼선이 필요 하다고 하겠다.

닛퍼로 점퍼선 1000개 정도 만들려면 한달 내내 만들어야 할것이다. 죽을 지경이지.

칼날만 하나 만들어 두면 장남삼아 한시간에 50개 정도는 문제 없지.토용,일욜 2틀 이면 충분하다.

점퍼선 땜에 전전 긍긍하다가 빌려 쓰다가 ,그 비싼것 사다쓰다가 짜증 내다가 전자 그만 두기도 한다니

위의 사진 보고 한번 만들어 두면 자기것 다 만들어 두고 칼날을 임대해준 댓가로 빵판에 넘치도록 빵을 얻어 먹을수도 있겟다.

 다시한번 칼날을 구경 해 보자, 그냥보통의 캇터 날을 불에 달구어 삐뜨렁하게 꾸부려 주면 되는것을.

6 mm 정도의 U자형이면 점퍼선을 탈피하는 적당한 길이 이다.이빨을 문질러서 둔하게 해야 한다.

불에 한번 달군 칼날은 돌에 슬적만 문질러도 쉽게 둔해 진다.

FND 의 전원 으로는 테스터의 1 K 옴 레인지에 놓은 저항측정단자로 부터 얻을수 잇다.

   물론 검정봉에 + 전압이 나온다는 것을 염두에 두어야 한다.

이제 만들어둔 점퍼선으로 3곳 정도를 + 에  연결하고 좀 길게만든(80 mm) 흰색 점퍼선 으로 - 에 ,반대편은 여기저기 꽂아가며 불이 켜이는가 본다 어느곳에도 불이 켜이지 않는다면 테스터 봉을 서로 반대로 꽂고 실험해서 공통전극을 찾는것이다.

그래서 FND 를 말할때 + 커먼 이냐, - 커먼 이냐 를 따지는 것이다.

각 제조사 마다 핀 배치가 다르다.

사진을 확대해보면 오른쪽 아래에서 위로 4번째가 + 전극이다.

두번째는 a 세그멘트 이다.

 

첫번째가 b 세그멘트이다.

 

왼편  아래에서 위로 두번째가 c 세그멘트 이다.

 

이렇게 하나 하나 점퍼선을 연결해가며 각 세그멘트를 찾아내면 된다.

 

  숫자 0 으로 점등되었다.

 숫자 8 로 점등 되었다.

 드디어 소숫점 (dp)까지 나타났다.

 

특히 쌍동이 일때는 두개가 핀배치가 서로 다른게 많으므로 매우 골치 아플 것이다.

처음 구입할때는 열심히 핀배치를 그려받겠지만 보관하는동안 어디론가 메모지가 달아나고

정작 사용하려면 쩔쩔 매게 될때 이런류의 실험은 반드시 필요 하게 된다.

 

이제 나머지 FND 도 실험 해 보자.

 

 

 

 

점퍼선 색갈을 유심히 본다면 한쌍의 FND 이면서도 각 세그멘트의 배치가  다름을 알수 있을 것이다.

 참고로 한마듸 한다면 점퍼선을 빵판에 납짝들어붙게 배선을 강요하는 이도 있는데

그런방법은 연구소에서 작품개발광경을 전시해서 모양 좋게 하기 위함이지

실제로 그렇게 배선 하다가는 시간만 낭비하며 점퍼선의 다리도 곧잘 부러저 실페하기 쉽고

배선을 다시 고치려 할때 뽑아내기도 여간 어려운게 아니다.

사진처럼 둥굴둥굴하게 배선해야 수정작업도 용이하고 작업속도 도 빠르고 오래 사용할수잇다.

시간이 아깝지 않겠는가. 남보다 빨리 완성시키고 빨리 수정 하고 더많이 연습하는게 중요 하다.

 

 

핀 배치도를 그린 것이다.

 

이제는 마이콤 과 연결 할 준비를 하자.

 

회로를 따라 해야 할것이다.

 

지금 보이는 것은 Dynamic 형의 구동 회로 인것 이다.

FND 의 자릿수가 많을 때는 필히 이런 형식을 써야 경제적이건 수납 공간이건 많이 절약되는, 대신

이론적으로 따저야 할곳도 몹씨 많게 된다.

 인제 케이블 연결 해야지

 

앗따라이 !  정말로 동작 하네 업카운터로 잘 돌아 가네. 전원 으로는 급한김에 휴대폰 밧테리를 ?지 .

 

 

키보드 하난 정말로 엉성 하지만

 요게 바로 손바닥 반 만한 마이콤 기판 이지

 이거 납땜한다고 20일 걸린게지.

마이콤엔 at89s51 이라는 CPU 를 ?지.

이건 롬 라이터도 필요 없고 내부에 E^2메모리도 4K 나 있어 그냥

보통의컴퓨터로 프로그램을 쓰고 지우고 참 편리하지 아쉬운건 A/D 컴버터가 없다는 점이지만 학생들이 연습하기엔 빵 한개 ?으로 살수있는 이것보다 더 좋은게 있을 까 ? 전기가 꺼저도 프로그램이 지워지지도 않고

 휴대폰 밧테리 이거 한번 충전하면 하루 5시간씩 일주일간 쓸수도 있어 작고 가볍고 너무 편리하지.

 프로그램은 물론 C++로 짠 것이지 ,

쬐끔 더 손질 해서 프로그램도 올려 야지.

 

감회가 무량 하다.

이게 사진기만 정밀하게 찍을수 있었대도 정말 작품 감 이었듸.

 

아래 사진은 , 윗쪽꺼 보고 내가 만든 아랫쪽 꺼

 나선을 직각으로 굽히는 공구

 HDD 뚜껑이 바로 인두 걸이로 안성마춤 ,?이 AL 판대기 구멍에 꽂처서 과열방지에 큰 도움

 납땜은 작은 실납뭉치 6개나 썼다우, 붙는것 보다는 흘리는게 너무 많아서

 EN 단자 VPP 단자 처리에 고심고심 Writing할때 함 다시 볼 양으로 약간 미완성 인채로 동작시킴

 키보드 아랫쪽

 간단해 ?는 키보드 3번이나 뜯어 고친다고 동패턴 많이 떨어저 나감

 ?테리도 큰 문제중 하나.덩치 크고 수명 짧고

 회로는 수십번 고처대고 ,배선하면서 회로 그리며 교본과 더러 틀리는곳 땜시 고생 무진 애썼따.

 

아직  기

            사

                작

                    성

                        중    입니다.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

다음은 4자리수 FND 속에서 LED 한알 만 으로 한줄로 주 - ㄱ 달리는 " FND점등공전 프로그램 " 이다. 

 

 

//========================================
// FND-L-race
//07-9-07
//========================================

 

//====================

// 전역 선언 하기

//====================
#include    //    a   ,  b  ,  c  , d   , e  ,  f  : 아래의 16진수가 가르키는  led 의 배열위치
code unsigned char font[]={0xfe,0xfd,0xfb,0xf7,0xef,0xdf};   // LED 를 점등할 폰트 라는 배열
void P0dw(void);        // LED 를 아래로 내려가며 점등하는 함수 :  a->b->c             순서로

void P0up(void);         //  LED 를 위로 올라가며 점등  하는 함수 :   d->e->f              순서로
void P1r(void);           //  FND 를 오른쪽으로 가며 선택하는 함수 :   F3->F2->F1        순서로
void P1l(void);           //  FND 를 왼쪽으로 가면서 선택하는 함수 :          F2<-F1<-F0  순서로
int k,m,n;
void delay(int i)                                
{
 while(i--);               //하나의 LED가 점등해서 꺼질때 까지의 클럭 횟수
}

//============================================================

//   메인함수 실행하기

//============================================================
void main(void)
{
 do{

 for(k=0 ;k<4 ;k++)
 { 
  delay(30000) ;         // 30000클럭 동안 대기하며 그동안에는 다른함수를 받지 않음
  P0=0xff ;                 // 커먼 애노드형의 FND 를 쓰므로 모든 LED에 1을 주면 불이 꺼진다.
  if(P1=P0=0xfe) P0dw();  // FND선택번호와 LED점등번호가 같은 0 x f e 일때는LED를 내림차순 점등
  P1l();                          // FND 를 왼쪽으로 가면서 선택하는 함수 호출
  if(P1=P0=0xf7) P0up();   // FND선택번호와 LED점등번호가 같은 0 x f 7 일 때는LED를 오름차순 점등
  P1r();                         // FND 를 오른쪽으로 가면서 선택하는 함수 호출
 }
  }while(1);                  // 메인함수 무한반복
}                   //메인함수 프로그램  끝

//==========================================================

//            LED를 내림차순 점등하기 실행

//==========================================================
void P0dw(void)                                       
{                            

 for(m=0;m<3;m++)   //0번째,1번째,2번째   LED  점등순서    
 {                          //  a  ,    b   ,   c
 P0=font[m];           // 0xfe,   0xfd,  0xfb    점등할 LED 는 a,b,c 순서로 폰트배열에서 취해옴
 delay(30000);       
 P0=0xff;                 // LED 는 매번 켤때마다 30000클럭 유지하고는 꺼 버린다.
 }
 k++;                      // 메인 함수로 돌아갈때는 K카운터를 하나 증가시켜 놓는다.
}   //내림차순 끝

//===========================================================

//   오름차순 점등 실행하기

//===========================================================
void P0up(void)
{                           // 3  ,  4  ,  5      LED 점등순서
 for(n=3;n<6;n++)     //0xf7,0xef,0xdf    점등할 LED 는 d,e,f 순서로 폰트배열에서 취해옴
 {                          //  d     e     f
 P0=font[n];
 delay(30000);
 P0=0xff;
 }
 k++;
}   // 오름차순 끝

//=======================================================

//    FND 를 오른쪽으로 가며 선택하기

//=======================================================
void P1r(void)
{
 P1=0xf7 ;   // P1에는 FND 를 구동하는 TR 들의 베이스를 선택 : 1 1 1 1   0 1 1 1 즉 F3가 선택 시작점
 P0=0xfe ;   // 3 개의 FND에서  LED  a 만 점등하면서  FND의 자리를 오른쪽으로 선택해 간다.
 delay(30000) ;
 P1=0xff ;
 P1=0xfb;       // 1 1 1 1    1 0 1 1  즉 F 2  가 선택 됨
 P0=0xfe;
 delay(30000);
 P1=0xff;
 P1=0xfd;       // 1 1 1 1   1 1 0 1   즉 F 1   이 선택됨
 P0=0xfe;
 delay(30000);
 P1=0xff;
}   //오른쪽으로 이동 끝

//=============================================================

//  FND 를 왼쪽으로 가면서 선택하기

//=============================================================
void P1l(void)
{
 P1=0xfe ;   //FND 중에서 F0 가 왼쪽으로 옮겨가는 시작점
 P0=0xf7 ;   // 이번에는 1 1 1 1     0 1 1 1  이므로 LED 의 d 만  점등 하면서 왼쪽으로 자리를 이동한다.
 delay(30000);
 P1=0xff;
 P1=0xfd; 
 P0=0xf7;
 delay(30000);
 P1=0xff;
 P1=0xfb;
 P0=0xf7;
 delay(30000);
 P1=0xff;
}    //    왼쪽으로 이동 끝

 

 

 

/* 원래는 짧게 짰지만 어쩐 일인지 SHIFT 함수랑,배열 함수가 P1포트에서는 듣지를 않아  길어?다.

 

해설 붙이며 편집하다 보니 프로그램이 자꾸 부분적으로 삭제되는 곤란이 생겨 검증을 시도 해얄지 ??

 

내일 쯤 지나면 또 말짱 도루묵으로 죄다 잊어 질것이다.

그런 이유로 치매 예방을 위해 거추장스런 안경끼고 이렇게 안깐힘을 쓰는 것이다.

 

올여름 내내 잦은 비로 씨앗장사를 통째로 빼먹고는 이렇게 C++연구로 장족의 발전을 꾀 하고 잇지만 시장바닥이 그리워 안달이 날 지경 이다.

엉뚱한곳에 신경을 너무 ?다 보니 ... 하도 안뵌지 오래라 내 고객 얼굴 다 까먹었다.

 

젊음 들아 나이 차고 넘치기 전에 죽을 기를 쓰고 공부를 해야 ,내처럼 늙어 고생 안느니라 ! */

 

 

참고로 해설편집 없이 원본을 그냥 복사해붙인것을 아래에 내 놓는다.

 //========================================
// fnd-l-race
//07-9-07
//========================================
#include
code unsigned char font[]={0xfe,0xfd,0xfb,0xf7,0xef,0xdf};
void P0dw(void);
void P0up(void);
void P1r(void);
void P1l(void);
int k,m,n;
void delay(int i)                                
{
 while(i--);
}
void main(void)
{
 do{

 for(k=0;k<4;k++)
 { 
  delay(30000);
  P0=0xff;
  if(P1=P0=0xfe) P0dw();
  P1l();
  if(P1=P0=0xf7) P0up();
  P1r(); 
 }
  }while(1);
}
void P0dw(void)
{                       //  a    b    c
 for(m=0;m<3;m++)    //0xfe,0xfd,0xfb      
 {                   //  0    1    2
 P0=font[m];
 delay(30000);
 P0=0xff;
 }
 k++;
}
void P0up(void)
{                        // d    e    f
 for(n=3;n<6;n++)     //0xf7,0xef,0xdf
 {                    // 4    5    6
 P0=font[n];
 delay(30000);
 P0=0xff;
 }
 k++;
}
void P1r(void)
{
 P1=0xf7;
 P0=0xfe; 
 delay(30000);
 P1=0xff;
 P1=0xfb; 
 P0=0xfe;
 delay(30000);
 P1=0xff;
 P1=0xfd;
 P0=0xfe;
 delay(30000);
 P1=0xff;
}
void P1l(void)
{
 P1=0xfe;
 P0=0xf7; 
 delay(30000);
 P1=0xff;
 P1=0xfd; 
 P0=0xf7;
 delay(30000);
 P1=0xff;
 P1=0xfb;
 P0=0xf7;
 delay(30000);
 P1=0xff;