Lv. 54 (수석보연구원) 30,421 납
40%
Exp. 29,599/30,250 | 40%
회원가입 ID/PW 찾기
AA


안녕하세요... 오늘은 햇빛 뜨면서 폭우가 내리는 날이네요..;;

 

요즘 마이크로 마우스 를 만들고 있는데요;...

 

센서부분에서 막혀서 질문드립니다..

 

일단 발광 적외선 다이오드 (CL-1L5R)  6개로 발광 센서 부분을 만들었고

 

적외선이 나오는 것을 핸폰 카메라로 확인하였습니다..

 

그리고 수광 다이오드 (ST-1KLA) 6개를 사용하여 수광 센서 부분을

 

만들었는데요.. AD7828  이란 칩을 사용하여  수광에서 받는 빛의 양을

 

ADC하여 LCD 에 나타내려고 합니다. (AD7828 을 제어하는 다리 23,24,25 를 포트 F 에 연결하였습니다.) 

 

그런데 AD7828  의 ADC결과 다리 8에서 22 를

 

포트 B( 그림을 잘못 표시했네요;;) 에 연결시켜서 그 결과를 LCD  에 나타냈는데요;;

 

항상 No.7 즉 (1111 1111) 만 나오게 됩니다..;

 

제가 짠 코드를 첨부하고 일단 메인부분만 살펴보면


int main(void)
{
   while(1)
   {
  u08 n;
  DDRD=0xff;
  DDRB=0x00;
  
  DDRF=0xff;
  PORTF=0x00;
  temp1=PINB;
  delay_5ms();
  lcd_init();
  delay_5ms();
 
 
  compare(temp1);
  cmd_write(0x80);
  for(n=0;n<9;n++)
  {
    data_out(table[n]);
  }
 
  delay_5ms();
  delay(20000);
   delay(20000);
   delay(20000);
   delay(20000);
   delay(20000);
   delay(20000);
  
  PORTF|=0x10;
  
  for(;PORTF<128;PORTF+=16)
  {
   DDRB=0x00;
   temp2=PINB;
   compare(temp2);
   delay_15ms();
   cmd_write(0xc0);
   for(n=0;n<9;n++)
   {
     data_out(table[n]);
   }
 
 
    
 
    delay(20000);
    delay(20000);
    delay(20000);
    delay(20000);
    delay(20000);
    delay(20000);
     }
     delay_15ms();
    }
 
 
 return 0;
}

 

이런 식으로 짯습니다.. PINB의 값을 비교하여  table[n]에

 

다른 문자를 넣어주어  lcd 에 나타내도록 하였습니다..

 

 

수광 다이오드 뒤에 그냥  LED 를 달았더니 적외선을 쏘일때

 

빛이 나타나지 않더군요;; 그럼 잘못된 것인가요?

 

저항이 커서 안나오는 것 아닐까요;;

 

수광센서가 동작하게 끔 하려면 무엇을 바꿔줘야 할지 궁금합니다..;;

댓글 3
  • No Profile
    덥긴 하네요

    일단 회로에서 의문점이 수광 저항 캐패시터 저항 ad7828로 들어가는데요.. 왜 이러케 하신거죠??


    PORTF|=0x10;
      
      for(;PORTF<128;PORTF+=16)
      {

    이런 문장이 잇는데요 제기억에는 PORTF는 읽기로는 사용이 안되므로 위와 같이 하면 안될꺼 같습니다(가물가물)

    변수를 하나 지정하셔서

    unsigned port_f;
    for(port_f = 0x10;port_f<128;port_f+=16)
    {
    PORTF = portt_f;
    }
    이런식으로 해주는게 좋겠습니다.


    adc칩을 제어하는데 PORTD와 PORTB를 섞어서사용햇네요..

    실제로는 어떻게 구현하셨는지..ㅡㅡ; PORTB에 데이터선을 물리셨다면 전부 PORTB로 바꾸세요-_-;;

    한번쯤 입력과 출력 프로세싱 부분을 나눠서 생각해보세요.


    PORT랑 회로도랑 확인도 해보시구요

    그다음에 테스트 하심이..좋을듯 하네요
  • No Profile
    글쓴이 아우슈비츠 07.09.08 19:47 댓글 좋아요 0 싫어요 0
    친절한 답변 감사드립니다 ^^~

    아.. ad7828 칩을 쓰게 된건.. 회로도를 얻게 되었는데 수광뒤에 달려있게 되어있드라구요.. 이 칩.. 아무데도 팔지 않아서

    청계천에서 2만원이나 하는 것을 중고로 구입해서 쓰게 되었습니다..;; ATMEGA128 을 쓰는데요.. 이 칩에서 ADC하는

    방법을 모르겠드라구요..또 비싼 칩을 쓰면 더 정확한 adc가 이뤄지지 않을까 생각했구요;;

    PORT B 에는 AD7828 을 거쳐서 나온 ADC 결과 값 을 연결시켰습니다..

    PORT D 에는 LCD 와 연결시켜주었구요..

    PORT E 부분에는 모터부를 연결시켰습니다. 스텝모터에 SLA7026 을 사용했구요..

    마지막 PORT F  부분에는 (모듈로 된것을 사서 4포트만 쓸수 있드라구요..)

    AD7828 제어에 필요한 23,24,25(A2,A1,A0) 번 다리와 연결 했는데 PORT F 6,5,4 번 다리를 연결했습니다..

    또 여쭤보고 싶은건.. AD7828 을 사용하는데 있어서.. 제가 지금 사용하고 있는 핀은..

    1~6번 까지의 수광다이오드와 연결된 입력 부분과. 8~11과 19~22 까지의 출력부분(PORT B와 연결)

    23,24,25 핀의 AD7828 제어 , 15 Vcc(5V) 16 GND 부분, 26번의 Vdd(5V)

    그리고 12번과 18번 핀을 GND에 연결하였습니다..

    이외에 또 연결해야하는 다른 핀이 있는지요??.. DATASHEET을 보면 .. 26번 Vdd 를 연결할때 캐패시터 2개를

    같이 연결하는 그림이 나오는데 그렇게 연결을 해야하는 건가요?

    그냥 이대로 돌리면 LCD 에 같은 글자만 뜹니다.. 즉 ADC가 제대로 이루어지지 않는다는 뜻이지요..;;;

    자꾸질문해서 죄송합니다.. 친절한 답변 감사드리구요..

    즐거운하루 되시길..!

  • No Profile

    일단 avr에 있는 adc 사용하는게 훨씬 편하구요 왜냐하면 결선도 없고 단지 레지스터만 설정하게 되면 되기때문입니다.


    그리고 비싸다고 좋은건 아닙니다..청계천 아저씨가 비싸게 판게 아닐런지요. 2만원은 좀 비싸다고 보는데요...

    8비트 adc에 10khz 샘플링인데요...(약간 고속이긴 하지만) avr adc는 분해능이 10비트라서 더 정밀하겠죠 7824보다는 느리겠지만요



    수광 센서 쪽 회로는 제가 올려놓은 아크마 라인트레이서의 회로도쪽을 한번 보시고 응용해서 하시면 되구요



    26번 vdd는 데이터쉬트 그림처럼 병렬로 연결해주시면 됩니다.(노이즈 제거)

    정말 중요한걸 연결안하셨군요


    10번 /RD, 16 /CS 핀도 연결해서 제어를 해줘야합니다.

    칩 셀렉트와 읽기 신호를 위한 핀이구요 ADC값을 읽기 위해서는 이 핀에 클럭 신호를 만들어 주고 값을 읽어와야합니다.


    아니면 마이크로 프로세서의 메모리맵 포트에 물려서 간단히 사용하는 방법도 있습니다. 이때는 님께서 램이 달린 모듈을 구입하신거 같기에 이를 고려해서 회로를 설계해야합니다..

    전 이칩을 써보진 않았지만 데이터 쉬트에도 MC6800과 메모리맵으로 물려서 사용하는 ㅇ예가 나와있군요//


    응용해보시면 좋을듯하군요( 근데 굳이 이 칩을 이용하는 이유가;; 싸고 흔한것도 많은데요///




하드웨어 설계 및 개발에 대하여 개발자들이 자유롭게 토론하는 공간입니다.
- Q&A, 자유주재 토론, 관련 정보 공유
- 분야 : 마이크로프로세서 응용, 전기/전자(아날로그/디지털) 회로 설계, C/C++ 프로그래밍, 펌웨어,
         PCB Artwork, 트러블슈팅 등 하드웨어 설계에 관한 전반인 내용
※ 게시글에 맞는 분류를 선택하여 글을 작성해 주시면 쾌적한 사이트 운영에 많은 도움이 됩니다.
※ 하드웨어 인사이트는 회원들간의 거래정보를 게재할 뿐이지, 그 어떤 책임과 의무도 가지지 않습니다.

search
번호 분류 제목 글쓴이 조회 수 날짜
14 구인구직 HOT사람인 - 월급 1000만원 프로젝트, 프로그래머 모집 쭈니닷 5049 2012.06.18
13 구인구직 HOT(주)엑스큐어넷 - 소프트웨어 개발자(프로그래머) 채용 쭈니닷 4916 2012.06.12
12 구인구직 HOT(주)시뮬라인 - 기술개발본부 소프트웨어 팀 신입/경력사원 채용공고 쭈니닷 5477 2012.06.11
11 구인구직 HOT㈜엔써즈 - 시스템엔지니어 신입사원 모집 쭈니닷 6351 2012.06.08
10 구인구직 HOT㈜고우넷 - unix 엔지니어 채용 콘마개마 3834 2012.06.05
9 구인구직 HOT전액무료 자바(java)기반 하이브리드 프레임웍개발 안드로이드 개발교육과정 cocoa13 3390 2012.05.14
8 구인구직 HOT[교육부담 0%] 이공계 전액무료 하이브리드 앱 개발자 취업확정자 교육연수과정 cocoa13 4064 2012.05.01
7 구인구직 HOT[전액무료교육] 구로디지털 단지 자바개발 업체 채용확정자 취업교육” 안드로이드 개발 및 프로젝트 과정 cocoa13 3628 2012.04.30
6 구인구직 HOT[전액무료과정] 웹디자이너 양성교육 비주얼 컨텐츠 디자인 과정 안내 cocoa13 4623 2012.04.26
5 구인구직 HOTPOWER설계 및 하드웨어 경력자 찾아요. 박우종 4997 2012.03.07
4 구인구직 HOT회로수리 및 수땜, ECO작업등 필요하시면 연락주세요. 세윤파파 8655 2012.01.27
3 구인구직 HOT실력있는 펌웨어 엔지니어를 모집합니다. JamesHan 8114 2011.12.27
2 구인구직 HOT(주)로벤 연구소에서 연구원을 모집합니다. maddog 6495 2011.11.10
1 구인구직 HOT[급구] PCB 설계 경력자 & H/W 및 펌웨어 엔지니어 모집 용가리3 13447 2010.12.23
Prev 1 ... 5 6 7 8 9 10 11 12 13 14 Next
  • 인생의 최고 불행은 인간이면서 인간을 모르는 것이다.
    - 파스칼
  • * 납포인트 정보 *
  • 글 작성 : 3
  • 댓글 작성 : 1
  • 내 글이 추천받음 : 1
저작권법에 위배되는 콘텐츠는 등록 불가하며, 저작물에 대한 권리는 저작자에게 있습니다.
Copyright 2006-2021 © hardwareis.com, All rights reserved.