로그인 | 회원가입 | 주문 조회
총 10,743개의 질문이 있습니다.
번호 제목 작성자 등록일 조회
4593 답변완료듀얼렌즈 Co2센서모듈 (SH-300-ND)에 관한 질문입니다. 김병호 2010-02-17 1,446
Co2센서모듈(SH-300-ND)과 습도센서모듈(USB245-SHT) 이 두개 모듈을 AVR MEGA 128보드에 (AB-M128-B)에 연결하려고 하는데 어떻게 연결해야 하는지 방법을 알려주세요. 빠른 답변 부탁드립니다. 혹시 연결 시에 필요한 부품이나 그런게 있으면 그 모델명도 상세히 첨부해주시면 감사드리겠습니다
관리자 답변 NEWTC · 2010-02-17
안녕하세요? 고객님, 저희 뉴티씨를 이용하여 주셔서 감사합니다. CO2 센서나 습도 센서는 본사의 제품이 아니어서, 정확한 사용법은 센서 데이터 시트를 참고하여 연결하셔야 할 것 같습니다. CO2 센서는 찾아보니, CN1 커넥터에 GND, VCC, AnalogDataOut(0~3V)가 있는 것 같네요. VCC전압을 확인하여, 해당 전압에 연결하여 주고, Analog Data는 F 포트에 연결하여 ADC 하여 받으면 될 것 같네요. 사용하시려는 습도 센서는 자세한 설명을 찾을 수 없어서, 설명해 드리기 어렵습니다. 그 제품 판매 회사로 해당 커넥터들의 세부 스펙을 받으셔서, 디지탈 타입이면, 포트에 연결하여 사용하시거나, 아날로그 데이터로 나오면, ADC 포트인 F 포트로 연결하여 사용하시기 바랍니다. ADC사용법은 강좌->AVR 강좌의 초초보 강좌나 ADC 강좌를 참고 바랍니다. 수고하세요. >Co2센서모듈(SH-300-ND)과 습도센서모듈(USB245-SHT) 이 두개 모듈을 > >AVR MEGA 128보드에 (AB-M128-B)에 연결하려고 하는데 > >어떻게 연결해야 하는지 방법을 알려주세요. > >빠른 답변 부탁드립니다. > >혹시 연결 시에 필요한 부품이나 그런게 있으면 그 모델명도 상세히 첨부해주시면 > >감사드리겠습니다
4592 답변완료at91sam7s 시리즈에서요 이상현 2010-02-16 1,379
1. R314 0옴이던데 이부분은 그냥 선으로 연결하면 되는건가요? 2. usb쪽에 쇼트키 다이오드 쓰셧는데 그건 다른걸로 대체 못하나요? 대체한다면 용량은? 3. AM_JTAG에서 R312 부분에 N.C라고 되어있는데 이 부분은 몇 옴짜리를 써야되나요?
관리자 답변 NEWTC · 2010-02-17
안녕하세요 >1. R314 0옴이던데 이부분은 그냥 선으로 연결하면 되는건가요? 선으로 연결해도 무방합니다. >2. usb쪽에 쇼트키 다이오드 쓰셧는데 그건 다른걸로 대체 못하나요? 대체한다면 용량은? 선으로 연결해도 무방합니다. >3. AM_JTAG에서 R312 부분에 N.C라고 되어있는데 이 부분은 몇 옴짜리를 써야되나요? N.C. 는 not connection 연결을 안하다는 뜻입니다. 수고하세요 >1. R314 0옴이던데 이부분은 그냥 선으로 연결하면 되는건가요? >2. usb쪽에 쇼트키 다이오드 쓰셧는데 그건 다른걸로 대체 못하나요? 대체한다면 용량은? >3. AM_JTAG에서 R312 부분에 N.C라고 되어있는데 이 부분은 몇 옴짜리를 써야되나요?
4591 답변완료DC모터 컨트롤러 봉세연 2010-02-16 1,431
라인트레이서 키트에 있는 DC모터 구동보드를 직접 만들고 싶은데요.. 그 재료중에 DC모터 컨트롤러(9개 핀달린 긴거)는 따로 파는 게 아닌가요??
관리자 답변 NEWTC · 2010-02-16
안녕하세요? 고객님, 저희 뉴티씨를 이용하여 주셔서 감사합니다. 라인트레이서 중에서 조립품을 이용하시면 좋을 것 같네요. 직접 떔을 해가는 제품이고, 저렴하게 이용이 가능합니다. 본사에서는 부품별로 별도로 판매하고 있지는 않습니다. 라인트레이서용 부품을 한데 묶어서 한꺼번에 조립용 킷트에 판매하고 있습니다. 수고하세요. >라인트레이서 키트에 있는 >DC모터 구동보드를 직접 만들고 싶은데요.. >그 재료중에 DC모터 컨트롤러(9개 핀달린 긴거)는 따로 파는 게 아닌가요??
4590 답변완료안녕하십니까. 딜레이 질문 했던 학생입니다. 김동규 2010-02-16 1,358
혼자 유추해 내려고 계산도 여러번 해보고 했는데.... 조금 어렵네요... 다시 한번 질문 올리겠습니다. for(i=0; i<1000; i++){ for(i=0; i<677; i++){ } } 저렇게 1초라고 하셨는데...제가 변형 해서 사용해 보려고 이리저리 유추 해봤는데...음 for문이 4클럭이고...4*1000*4*677 * (1/16000000) = 0.677 이라고 나오는데 제가 계산 한게 틀린것인가요....
관리자 답변 NEWTC · 2010-02-16
안녕하세요 C 문장으로 클럭 사이클이 유추하기가 어렵습니다. for문이 4사이클이라고는 하지만 처음 for문으로 들어가고 변수 지정등.... for문에서 for문으로 들어갈때... 저런곳에 소용되는 시간들이 있습니다. c문장 보다는 asm 이.. asm 보다는 타이머가 정확합니다. 수고하세요 >혼자 유추해 내려고 계산도 여러번 해보고 했는데.... >조금 어렵네요... >다시 한번 질문 올리겠습니다. > >for(i=0; i<1000; i++){ > for(i=0; i<677; i++){ > } >} > >저렇게 1초라고 하셨는데...제가 변형 해서 사용해 보려고 이리저리 유추 해봤는데...음 >for문이 4클럭이고...4*1000*4*677 * (1/16000000) = 0.677 이라고 나오는데 제가 계산 한게 >틀린것인가요.... > >
4589 답변완료AD-USBISP V02 에서 89S52 연결이 안됩니다.. 이종민 2010-02-16 1,357
안녕하세요^^ 새해 복 많이 받으세요 AD-USBISP V02 를 사용중입니다.. 89S52를 연결 하려고 하는데 안됩니다.. 신호선 6줄만 연결 되어 있습니다. Reset 단에는 5.1k 저항 gnd 되어 있습니다. Cap 은 달지 않고 있습니다..(Reset signal 이 AVR 과 반대 인가 봅니다..) AVR Studio 1.5 사용중 입니다. Connecting 누르고 Platform : STK500 or AVRISP Port : Auto 선택하여 Connect... 버튼 클릭하면 download 창으로 넘어 갑니다. Device.. : AT89S52 Programming Mode : ISP mode 로 선택 되어저 있습니다.. 녹색 LED 깜빡일때 89S52 연결하고 전원 넣고 Read Signature 하면 읽어 오지 못하고 에러 뜹니다... 장치관리자의 포트에 Prolific USB to Serial Comm Port(COM2) 떠있습니다. 무었을 어떻게 해야 하는지요..
관리자 답변 NEWTC · 2010-02-16
안녕하세요 타겟보드가 어떻것을 사용하고 있나요? >AVR Studio 1.5 사용중 입니다. 1,5버젼이 없는것로 알고있습니다. 지금보통 사용하시는 AVR Studio 는 4.12~4.17 사이 입니다. 다시 버젼 확인해 보시고요. 8051은 reset 풀다운 입니다. avr 과는 반대입니다. Read Signature를 하시면 0x1e 0x52 0x06 라고 나와야 정상입니다. ISP에 문제가 있어 보입니다. AD-USBISP를 사용하시는 버젼이 V02 이시면 저희쪽으로 보내시어 AD-USBISP 점검 및 수리 그리고, V03버전의 펌웨어 업데이트를 받아 보시길 바랍니다. 수고하세요 >안녕하세요^^ >새해 복 많이 받으세요 > >AD-USBISP V02 를 사용중입니다.. >89S52를 연결 하려고 하는데 안됩니다.. >신호선 6줄만 연결 되어 있습니다. >Reset 단에는 5.1k 저항 gnd 되어 있습니다. >Cap 은 달지 않고 있습니다..(Reset signal 이 AVR 과 반대 인가 봅니다..) > >AVR Studio 1.5 사용중 입니다. >Connecting 누르고 >Platform : STK500 or AVRISP >Port : Auto 선택하여 Connect... 버튼 클릭하면 download 창으로 넘어 갑니다. >Device.. : AT89S52 >Programming Mode : ISP mode 로 선택 되어저 있습니다.. > >녹색 LED 깜빡일때 89S52 연결하고 전원 넣고 >Read Signature 하면 읽어 오지 못하고 에러 뜹니다... > >장치관리자의 포트에 Prolific USB to Serial Comm Port(COM2) >떠있습니다. > >무었을 어떻게 해야 하는지요.. >
4588 답변완료usb isp v03을 사용중인데요. 주성탁 2010-02-16 1,328
avr이 아닌 다른 pic에 다운로드하는데 usb isp v03을 사용할수 있는지요? 포니프로같은 외부 프로그램에서는 동작을 안하는지 궁금합니다.
관리자 답변 NEWTC · 2010-02-16
안녕하세요 usb isp v03 는 avr 및 atmel의 일부 8051만 다운로드가 가능합니다. 당연히 pic 다운로드가 안됩니다. 그리고, ponyprog라는 툴은 usb isp v03 를 지원하지 않습니다. 수고하세요 >avr이 아닌 다른 pic에 다운로드하는데 >usb isp v03을 사용할수 있는지요? >포니프로같은 외부 프로그램에서는 동작을 안하는지 >궁금합니다.
4587 답변완료DC 모터 구동 모듈(Single 4A) 사용하기 위해 필요한 라인들... 이승철 2010-02-15 1,313
이 모듈 구동하기 위해서 10핀 케이블이랑 파워 2핀만 있으면 구동가능한가요?
관리자 답변 NEWTC · 2010-02-16
안녕하세요? 고객님, 저희 뉴티씨 제품을 이용하여 주셔서 감사합니다. 본사의 AVR이나 ARM, 8051, FPGA 등이 꼽혀 있는 메인 보드도 있어야 합니다. 거기서, 명령을 내려야 겠지요. 수고하세요. >이 모듈 구동하기 위해서 >10핀 케이블이랑 >파워 2핀만 있으면 구동가능한가요?
4586 답변완료led 점등할려고 합니다 박영재 2010-02-15 1,336
AB-M128-B 보드와AM-TL8을 이용하여 PORTA 에 led 점등할려고 합니다 AM-TL8 의 예제소스에서 #include <iom128v.h> #include <macros.h> void port_init(void) { PORTA = 0x00; DDRA = 0xFF; PORTB = 0x00; DDRB = 0x00; PORTC = 0x00; DDRC = 0x00; PORTD = 0x00; DDRD = 0x00; PORTE = 0x00; DDRE = 0x00; PORTF = 0x00; DDRF = 0x00; PORTG = 0x00; DDRG = 0x00; } int main(void) { init_devices(); while(1){ PORTA = 0x01; delay(1000); PORTA = 0x02; delay(5000); PORTA = 0x04; delay(1000); PORTA = 0x08; delay(5000); PORTF = 0x10; delay(1000); PORTF = 0x20; delay(1000); } } void delay(int n) { volatile int i,j; for(i=1;i<n;i++) { for(j=1;j<600;j++); } } 이렇게하여 점등을 하였습니다 그런데 여기에서 PORTA = 0x01 를 DO 로 PORTA = 0x02 를 RE 로 PORTA = 0x04 를 MI PORTA = 0x08 를 FA PORTA = 0x10 를 SO PORTA = 0x20 를 LA 의 문자로 취환하여 적을려고 하는데 즉 DO; delay(1000); RE; delay(5000); MI; delay(1000); FA; delay(5000); SO; delay(1000); LA; delay(1000); 이렇게입니다 그래서 선행처리를 아래와같이선언하고 아래와같이 고쳐서 해보았는데 #include <iom128v.h> #include <macros.h> #define DO PORTA = 0x01 // PORTA = 0x01을 DO로 취환 #define RE PORTA = 0x02 // PORTA = 0x02을 RE로 취환 #define MI PORTA = 0x04 #define FA PORTA = 0x08 #define SO PORTA = 0x10 #define LA PORTA = 0x20 void port_init(void) { PORTA = 0x00; DDRA = 0xFF; PORTB = 0x00; DDRB = 0x00; PORTC = 0x00; DDRC = 0x00; PORTD = 0x00; DDRD = 0x00; PORTE = 0x00; DDRE = 0x00; PORTF = 0x00; DDRF = 0x00; PORTG = 0x00; DDRG = 0x00; } int main(void) { init_devices(); while(1){ DO; delay(1000); RE; delay(5000); MI; delay(1000); FA; delay(5000); SO; delay(1000); LA; delay(1000); } } void delay(int n) { volatile int i,j; for(i=1;i<n;i++) { for(j=1;j<600;j++); } } 를 컴파일하여 다운로드했는데 않되는군요 어떻게고쳐야할지 부탁합니다 요점은 PORTA = 0x01 을 다른 간단한 문자로 취환하고 싶습니다
관리자 답변 NEWTC · 2010-02-16
안녕하세요? 괄호로 묶어 보세요~ #define LA (PORTA = 0x20) 현재 테스트 할 수 있는 환경이 안되는 곳이라서, 테스트 할 수는 없지만, 될 것 같네요. 수고하세요. >AB-M128-B 보드와AM-TL8을 이용하여 PORTA 에 led 점등할려고 합니다 >AM-TL8 의 예제소스에서 > >#include <iom128v.h> >#include <macros.h> > >void port_init(void) >{ > PORTA = 0x00; > DDRA = 0xFF; > PORTB = 0x00; > DDRB = 0x00; > PORTC = 0x00; > DDRC = 0x00; > PORTD = 0x00; > DDRD = 0x00; > PORTE = 0x00; > DDRE = 0x00; > PORTF = 0x00; > DDRF = 0x00; > PORTG = 0x00; > DDRG = 0x00; >} > > >int main(void) >{ > > init_devices(); > > while(1){ > > > PORTA = 0x01; > delay(1000); > PORTA = 0x02; > delay(5000); > PORTA = 0x04; > delay(1000); > PORTA = 0x08; > delay(5000); > PORTF = 0x10; > delay(1000); > PORTF = 0x20; > delay(1000); > > } > >} > > >void delay(int n) >{ > volatile int i,j; > for(i=1;i<n;i++) > { > for(j=1;j<600;j++); > } >} > >이렇게하여 점등을 하였습니다 >그런데 여기에서 > > > > PORTA = 0x01 를 DO 로 > PORTA = 0x02 를 RE 로 > PORTA = 0x04 를 MI > PORTA = 0x08 를 FA > PORTA = 0x10 를 SO > PORTA = 0x20 를 LA 의 문자로 취환하여 적을려고 하는데 즉 > > DO; > delay(1000); > RE; > delay(5000); > MI; > delay(1000); > FA; > delay(5000); > SO; > delay(1000); > LA; > delay(1000); >이렇게입니다 > >그래서 선행처리를 아래와같이선언하고 아래와같이 고쳐서 해보았는데 > > >#include <iom128v.h> >#include <macros.h> >#define DO PORTA = 0x01 // PORTA = 0x01을 DO로 취환 >#define RE PORTA = 0x02 // PORTA = 0x02을 RE로 취환 >#define MI PORTA = 0x04 >#define FA PORTA = 0x08 >#define SO PORTA = 0x10 >#define LA PORTA = 0x20 >void port_init(void) >{ > PORTA = 0x00; > DDRA = 0xFF; > PORTB = 0x00; > DDRB = 0x00; > PORTC = 0x00; > DDRC = 0x00; > PORTD = 0x00; > DDRD = 0x00; > PORTE = 0x00; > DDRE = 0x00; > PORTF = 0x00; > DDRF = 0x00; > PORTG = 0x00; > DDRG = 0x00; >} > > >int main(void) >{ > > init_devices(); > > while(1){ > > > DO; > delay(1000); > RE; > delay(5000); > MI; > delay(1000); > FA; > delay(5000); > SO; > delay(1000); > LA; > delay(1000); > > } > >} > > >void delay(int n) >{ > volatile int i,j; > for(i=1;i<n;i++) > { > for(j=1;j<600;j++); > } >} > >를 컴파일하여 다운로드했는데 않되는군요 >어떻게고쳐야할지 부탁합니다 >요점은 PORTA = 0x01 을 다른 간단한 문자로 취환하고 싶습니다 >
4585 답변완료안녕하십니까. 딜레이 질문좀 드리겠습니다. 김동규 2010-02-13 1,459
코드비전에서 딜레이 헤더파일이나 다른 분들이 쓰시는 딜레이를 보면 ms or us로 어느정도 시간이 정확하게 맞게 사용 하시는거 같습니다. icc에는 딜레이를 직접만들어서 사용하는데 정확한 시간을 알기가 어려운것 같습니다. 그래서 제가 공부좀 하다가 for문의 경우 4클럭을 차지 한다고 알고 있습니다. 그래서 포문에 포문을 계속 줘서 딜레이를 조절 해보고 싶습니다. 아트메가 128을 사용하고 크리스탈은 16메가 헤르츠 입니다. 그렇다면 16클럭을 흘린다면 1마이크로 세컨드가 지난다고 생각하고 있습니다. void dellay(int n){ volatile int i1, j1, j2, j3; for(i1=1; i1<n; i1++) { //4클럭 for(j1=1; j1<4; j1++){ //4클럭 for(j2=1; j2<4; j2++){ //4클럭 for(j3=1; j3<4; j3++); //4클럭 } } } } 함수를 위와같이 정의 할시 16클럭이 지나가는 것인가요...아니면 64클럭이 지나가는 것인가요? 어떤분이 코드비전에서 딜레이를 만들어 놓으신걸 봤는데 의미없이 클럭을 사용하는 명령어... #asm volatile(""); #asm volatile(""); //4클럭 을 사용하는 분이 계시는거 같은데....icc에서는 명령어가틀려서 사용할수가 없었습니다. 그래서 포문 네개로 만들어봤는데...가능 한것인가요.... icc에는 저렇게 의미없이 클럭을 사용하는 명령어가 없나요?
관리자 답변 NEWTC · 2010-02-14
안녕하세요? 고객님, asm(""); 이렇게 쓰면 될 것 같습니다. 그리고, for(i=0;i<1000;i++){ for(i=0;i<677;i++){ } } 이렇게 하면 ICCAVR에서 대략 1초가 되더군요. 그리고, 아무 함수나 만들어서, 아무것도 안하는 함수를 하나 실행하면, 20us 걸립니다. delay로 정확한 딜레이 시간을 만드는 것은 중간에 끼어드는 인터럽트 루틴 등에 따라서, 시간이 달라지게 됩니다. 따라서, 꼭 필요하다면, 타이머로 시간을 만들어 사용하는 것이 좋겠습니다. 수고하세요. >코드비전에서 딜레이 헤더파일이나 다른 분들이 쓰시는 딜레이를 보면 >ms or us로 어느정도 시간이 정확하게 맞게 사용 하시는거 같습니다. >icc에는 딜레이를 직접만들어서 사용하는데 정확한 시간을 알기가 어려운것 같습니다. > >그래서 제가 공부좀 하다가 >for문의 경우 4클럭을 차지 한다고 알고 있습니다. 그래서 포문에 포문을 계속 줘서 딜레이를 조절 해보고 싶습니다. > > > >아트메가 128을 사용하고 크리스탈은 16메가 헤르츠 입니다. > >그렇다면 16클럭을 흘린다면 1마이크로 세컨드가 지난다고 생각하고 있습니다. > >void dellay(int n){ > volatile int i1, j1, j2, j3; > for(i1=1; i1<n; i1++) { //4클럭 > for(j1=1; j1<4; j1++){ //4클럭 > for(j2=1; j2<4; j2++){ //4클럭 > for(j3=1; j3<4; j3++); //4클럭 > > } > > } > } > } > > >함수를 위와같이 정의 할시 16클럭이 지나가는 것인가요...아니면 64클럭이 지나가는 것인가요? > >어떤분이 코드비전에서 딜레이를 만들어 놓으신걸 봤는데 의미없이 클럭을 사용하는 명령어... >#asm volatile(""); #asm volatile(""); //4클럭 >을 사용하는 분이 계시는거 같은데....icc에서는 명령어가틀려서 사용할수가 없었습니다. 그래서 포문 네개로 만들어봤는데...가능 한것인가요.... > >icc에는 저렇게 의미없이 클럭을 사용하는 명령어가 없나요?
4584 답변완료스위치 보드 입력 문의 원호천 2010-02-12 1,402
사용제품 : KD-128Rro, AM-TS8 사용컴파일러 : WinAVR20100110, AVR Studio 4.0 안녕하세요? 귀사의 제품을 구입하여 여러가지 테스트를 해보던 중 이상한 점이 발견되어 질의드립니다. 먼저, 테스트 환경은 아래와 같습니다. 1. 포트 D에 스위치 보드 AM-TS8을 연결 2. 8개의 스위치를 각각 눌렀을 때 FND의 첫번째에 숫자가 1~8까지 표시 (ex. 세번째 스위치를 눌렀을 때 FND의 첫번째에 3이 표시됨) 그런데, 포트 D의 설정을 DDRD = 0x00으로 설정하면 스위치 입력이 제대로 되지 않습니다. 이상한 것은 DDRD=0xFF으로 설정하면 제대로 작동이 잘 된다는 것입니다. 아래 소스를 첨부합니다. #include <avr/io.h> //딜레이 함수 설정 void Delay_us(unsigned char time_us) { register unsigned char i; for(i = 0; i < time_us; i++) { asm volatile(" PUSH R0 "); asm volatile(" POP R0 "); asm volatile(" PUSH R0 "); asm volatile(" POP R0 "); asm volatile(" PUSH R0 "); asm volatile(" POP R0 "); } } void Delay_ms(unsigned int time_ms) { register unsigned int i; for(i = 0; i < time_ms; i++) { Delay_us(250); Delay_us(250); Delay_us(250); Delay_us(250); } } int main(void) { DDRA = 0xFF; //FND에 숫자를 표시하기 위한 출력 설정 DDRC = 0xFF; //FND on을 위한 출력 설정 DDRD = 0x00; //포트 D의 모든 비트를 입력으로 설정 //이렇게 설정하면 스위치가 제대로 입력되지 않습니다. int i; i = 0; PORTC = 0x0E; //FND의 첫번째만 사용 PORTA = 0x3F; //이 부분도 약간 이상합니다. FND에 초기에 0을 표시하도록 했는데 처음 실행하면 6이 표시됩니다. while(1) { //스위치 입력에 따른 i값 설정 //스위치의 반복입력을 막기 위한 딜레이 함수호출 if(PIND & 0b10000000){i=1;Delay_ms(150);} if(PIND & 0b01000000){i=2;Delay_ms(150);} if(PIND & 0b00100000){i=3;Delay_ms(150);} if(PIND & 0b00010000){i=4;Delay_ms(150);} if(PIND & 0b00001000){i=5;Delay_ms(150);} if(PIND & 0b00000100){i=6;Delay_ms(150);} if(PIND & 0b00000010){i=7;Delay_ms(150);} if(PIND & 0b00000001){i=8;Delay_ms(150);} //값에 따른 FND에 숫자 표시 switch(i) { case 1 : PORTA = 0x06; break; case 2 : PORTA = 0x5B; break; case 3 : PORTA = 0x4F; break; case 4 : PORTA = 0x66; break; case 5 : PORTA = 0x6d; break; case 6 : PORTA = 0x7d; break; case 7 : PORTA = 0x27; break; case 8 : PORTA = 0x7F; break; } } } 분명이 입력 선언은 DDRD = 0x00이 맞는데 왜 이런 현상이 발생할까요? 혹시 내부 풀업저항때문일까 의문의 들어 SFIOR = 0x40를 선언해봤는데도 상황은 똑같습니다. 그리고 질문이 하나 더 있는데요, AM-TS8 스위치 보드를 포트 E에 연결한 후 AVR Studio에서 다운로드하면, ISP Mode Error이 발생(첨부파일 참조)하는데 이건 왜 그런 것인지요?
관리자 답변 NEWTC · 2010-02-12
안녕하세요? 고객님, 저희 뉴티씨 제품을 이용하여 주셔서 감사합니다. PORTD에는 UART1의 RXD1, TXD1이 각각 D2, D3로 배치되어 있으며, KD-128PRO 킷트의 AM-128PRO 모듈의 MAX3232에 연결되어 있습니다. 이것으로 영향을 받을 수 있구요. 또한,D0, D1에는 I2C의 SCL, SDA를 위하여 각각 저항들에 연결되어 풀업된 것처럼 되어 있습니다. 따라서, DS1307 관련된 회로들의 영향을 받을 수 있습니다. 아마 그래서, 스위치 입력이 안 되는 것일 겁니다. 고객님처럼 불편을 겪는 고객님들을 위하여, 본사에서 준비한 보드가 AVR MEGA 128 개발보드(소형) AB-M128-B 입니다. 이 보드를 이용하면, 위에서 생기는 문제들은 전혀 없이 사용하실 수 있습니다. 포트만 쫙 뽑아 놓았으니까요. 현재 가지고 계신 KD-128PRO 보드는 여러가지가 달려 있고, 기본적인 포트들이 뽑혀 있어서, 출력용으로는 모든 포트를 별 문제 없이 사용이 가능하지만, 입력으로 사용시에는 주의할 포트들이 일부 있습니다. 회로를 참고하셔서 사용하시구요. ATMEGA128의 각포트 및 핀들의 다음 특징들도 참고하시면 좋습니다. 기본적으로 모든 포트는 GPIO로 사용이 가능하다. 하지만, 마다 각각 기능이 있어서, 사용시에 주의가 필요한데, 일반적으로 주의할 사항을 몇가지 기록하여 보았다. G포트 : 외부 메모리 사용시에 사용되는 제어신호인 /WR, /RD, ALE를 주의한다. 외부 메모리로 동시에 사용시에 이 부분과 GND 사이에 만약 커패시터가 연결된 회로를 구성하게 되면, 외부 메모리 억세스에 실패할 가능성이 높다. 따라서, 이 경우 이 핀들과 GND 사이에 커패시터를 연결하지 않도록 주의한다. F 포트 : ADC 용으로 사용 가능하다. ADC 할 때는 만약 외부 전압으로 AREF를 쓴다면, external AREF에 연결되는 전압을 꼭 센서의 출력 범위와 맞춰 주도록 한다. 그래야만 정밀한 결과를 얻을 수 있다. 또한, AVCC, internal 2.56V ref 전압도 사용이 가능한데, 이 경우 AREF가 외부 DC 전압에 고정되어 있다면, 선택할 수 없으므로, 반드시 이 경우 AREF는 연결하지 않아야 한다. 또한, 이 경우에는 AREF와 GND 사이에 커패시터를 하나 달아주는 것이 노이즈를 막아주는 역할을 한다. 퓨즈 비트의 JTGAEN를 Enable(0) 해 놓을 경우 JTAG 핀들에 해당하는 핀들인 이 포트의 D4~D7이 사용 불가하니, 주의 바란다. 그래서, 본사에서는 출시하는 모든 포트를 사용하기 위하여 퓨즈비트를 JTAGEN이 disable(1)로 되어 있다. E포트 : D0, D1 이 각각 RXD0, TXD0 기능도 하도록 되어 있다. 따라서, UART0를 초기화 하게 되면, D0, D1이 각각 평상시에 High 로 전압이 올라가 있게 된다. 즉, 이 경우 포트로 사용 이 불가하다. 따라서, 이 경우 왜 이 핀들이 출력이 항상 High로만 나오는가 고민하지 않기 바란다. D포트 : D2, D3가 각각 RXD1, TXD1 기능도 하도록 되어 있다. 따라서, UART1을 초기화 하게 되면, D0, D1이 각각 평상시에 High 로 전압이 올라가 있게 된다. 즉, 이 경우 포트로 사용이 불가하다. 따라서, 이 경우 왜 이 핀들이 출력이 항상 High로만 나오는가 고민하지 않기 바란다. B 포트 : PB1의 SCK 핀은 매우 민감한 클럭 핀이다. SPI 통신을 할 때, 특히 민감하게 반응한다. 따라서, 이 선을 SPI로 사용할 때는 꼭 가장 가까운 곳에 디바이스를 위치하게 해야 하면, 그렇게 하기 어렵다면, PCB 캐드 작업 시에 바깥쪽으로 그라운드와 연결된 GUART Line을 양쪽 및 반대면 PCB에 생성하여 그 선을 따라가면서 싸 주어서, 노이즈가 끼지 못하도록 해 주어야 한다. 높은 정도의 속도와 정밀도가 필요한 경우에 이렇게 반드시 해 주어야 한다. 4층 정도로 만들어서, 반대면에서의 노이즈를 GND 판으로 막아주는 것도 좋겠다. 또한, SCK 핀이 있는 PB1와 GND 사이에 커패시터가 회로적으로 연결되게 되면, 클럭이 커패시터로 인하여 떨지 못하게 되어서, SCK를 사용하기 어렵게 되므로, 주의한다. 어쩔 수 없이 커패시터를 써야 할 사용할 상황이거나 다른 회로를 이 핀에 부가하여야 한다면, 반드시 PB1에서 1k옴 정도의 직렬 저항을 하나 거친 후에 커패시터를 쓰거나 다른 회로를 부가 하여 쓰도록 한다. 이렇게 하지 않으면, ISP 다운로딩 자체에도 문제가 생길 수 있다. 이런 경우를 종종 보아 왔으며, 반드시 주의하여 방지하도록 한다. 또한, AVR은 전압에 매우 민감하다. TTL Level의 5V 전압을 사용하는 AVR 시리즈의 경우 4.5~5.5V 까지만 정상동작하며, 그 이상의 전압을 가하게 되면, 경우에 따라 바로 망가지게 될 수도 있으며, 오래 지속될 경우, 고장이 나기도 하는 데, 이 고장의 경우 고장 부위에 따라서 동작 자체는 잘 되지만, ISP 다운로딩이 안되는 문제가 발생하기도 한다. 또한, 일부 핀이 동작이 안 되거나, 동작은 되지만, AVR칩에서 열이 많이 나는 고장이 생기기도 한다. 이러한 경우, 어느 정도 시간이 지나면 어떤 상황으로 진행될 지 보장할 수 없는 상황이 되므로, 반드시 칩을 교체하는 것이 좋다. 8비트 프로세서 중에서 AVR의 많은 기능과 메모리를 잘 활용하고 싶다면, 안정된 회로를 전원부 설계를 하는 것이 필수적인데, 시스템에 따라서 열이 나도 되는 지, 열이 안나야 하는 지, 제품 생산 가격은 얼마선에서 시스템을 설계해야 하는 지에 따라서, 전원부 회로 설계가 달라지겠다. 수고하세요. >사용제품 : KD-128Rro, AM-TS8 >사용컴파일러 : WinAVR20100110, AVR Studio 4.0 > >안녕하세요? 귀사의 제품을 구입하여 여러가지 테스트를 해보던 중 이상한 점이 발견되어 질의드립니다. >먼저, 테스트 환경은 아래와 같습니다. >1. 포트 D에 스위치 보드 AM-TS8을 연결 >2. 8개의 스위치를 각각 눌렀을 때 FND의 첫번째에 숫자가 1~8까지 표시 >(ex. 세번째 스위치를 눌렀을 때 FND의 첫번째에 3이 표시됨) > >그런데, 포트 D의 설정을 DDRD = 0x00으로 설정하면 스위치 입력이 제대로 되지 않습니다. >이상한 것은 DDRD=0xFF으로 설정하면 제대로 작동이 잘 된다는 것입니다. >아래 소스를 첨부합니다. > >#include <avr/io.h> > >//딜레이 함수 설정 >void Delay_us(unsigned char time_us) >{ register unsigned char i; > for(i = 0; i < time_us; i++) > { asm volatile(" PUSH R0 "); > asm volatile(" POP R0 "); > asm volatile(" PUSH R0 "); > asm volatile(" POP R0 "); > asm volatile(" PUSH R0 "); > asm volatile(" POP R0 "); > } >} >void Delay_ms(unsigned int time_ms) >{ register unsigned int i; > for(i = 0; i < time_ms; i++) > { Delay_us(250); > Delay_us(250); > Delay_us(250); > Delay_us(250); > } >} > >int main(void) >{ > DDRA = 0xFF; //FND에 숫자를 표시하기 위한 출력 설정 > DDRC = 0xFF; //FND on을 위한 출력 설정 > DDRD = 0x00; //포트 D의 모든 비트를 입력으로 설정 > //이렇게 설정하면 스위치가 제대로 입력되지 않습니다. > > int i; > i = 0; > > PORTC = 0x0E; //FND의 첫번째만 사용 > PORTA = 0x3F; //이 부분도 약간 이상합니다. FND에 초기에 0을 표시하도록 했는데 처음 실행하면 6이 표시됩니다. > > while(1) > { > //스위치 입력에 따른 i값 설정 > //스위치의 반복입력을 막기 위한 딜레이 함수호출 > if(PIND & 0b10000000){i=1;Delay_ms(150);} > if(PIND & 0b01000000){i=2;Delay_ms(150);} > if(PIND & 0b00100000){i=3;Delay_ms(150);} > if(PIND & 0b00010000){i=4;Delay_ms(150);} > if(PIND & 0b00001000){i=5;Delay_ms(150);} > if(PIND & 0b00000100){i=6;Delay_ms(150);} > if(PIND & 0b00000010){i=7;Delay_ms(150);} > if(PIND & 0b00000001){i=8;Delay_ms(150);} > > //값에 따른 FND에 숫자 표시 > switch(i) > { > case 1 : PORTA = 0x06; > break; > case 2 : PORTA = 0x5B; > break; > case 3 : PORTA = 0x4F; > break; > case 4 : PORTA = 0x66; > break; > case 5 : PORTA = 0x6d; > break; > case 6 : PORTA = 0x7d; > break; > case 7 : PORTA = 0x27; > break; > case 8 : PORTA = 0x7F; > break; > } > > } > >} > >분명이 입력 선언은 DDRD = 0x00이 맞는데 왜 이런 현상이 발생할까요? >혹시 내부 풀업저항때문일까 의문의 들어 SFIOR = 0x40를 선언해봤는데도 상황은 똑같습니다.
4583 답변완료외부에 address/data pin 사용하려면? 임정호 2010-02-11 1,389
아까 친절한 답변 감사드립니다. 하나 더 질문드릴께요... 1. 외부에 external data memory영역을 할당해서 사용하려고 하는데 그럴려면 /EApin같은거 뽑아서 GND물려야 하죠,,, 혹시 외부 인터페이스 못쓰게 vcc에 연결해놨거나 한 건 아닌가요? 2. 제가 써본 8051계열은 외부 메모리 인터페이스 쓰려면 latch써서 address를 잡아줘야 하든데 이 모델도 동일한가요? 그러려면 ale신호도 뽑아써야 하겠죠... 3. 한가지 걱정되는게 있는데 FPGA에 연결해서 쓰려고 하거든요... FPGA io 전압레벨이 3.3V라 그냥 써도 될 지 아니면 bus transceiver 달아서 써야할 지 고민이네요... 조언좀 부탁드립니다. 그럼 좋은 하루 되세요. 임정호 드림(연락처: 010-2787-8263)
관리자 답변 NEWTC · 2010-02-11
안녕하세요? 고객님, 답변하여 드릴께요. >1. 외부에 external data memory영역을 할당해서 사용하려고 하는데 그럴려면 /EApin같은거 뽑아서 GND물려야 하죠,,, 혹시 외부 인터페이스 못쓰게 vcc에 연결해놨거나 한 건 아닌가요? ==> 자료실->기존자료실에서 89S 라고 치면 회로도가 있는 데, 거기 보면, VCC로 풀업되어 내부 메모리를 쓰도록 있습니다. 물론, 풀업이므로, GND로 붙이면 외부 메모리를 쓰실 수 있습니다. >2. 제가 써본 8051계열은 외부 메모리 인터페이스 쓰려면 latch써서 address를 잡아줘야 하든데 이 모델도 동일한가요? 그러려면 ale신호도 뽑아써야 하겠죠... ==>동일하죠. >3. 한가지 걱정되는게 있는데 FPGA에 연결해서 쓰려고 하거든요... FPGA io 전압레벨이 3.3V라 그냥 써도 될 지 아니면 bus transceiver 달아서 써야할 지 고민이네요... 조언좀 부탁드립니다. ==> 당연히 안정적인 동작을 위하여 레벨시프터 등을 달아서 쓰는 것이 좋겠습니다. 수고하세요.
4582 답변완료glcd 추가 질문 드립니다. 최혁진 2010-02-11 1,480
안녕하세요. 얼마전에 glcd와 m128 as 보냈던 학생입니다. 두개를 연결하여 사용할때 열이 너무 과하게 발생하는 문제 때문에 보냈었는데 기사분게서 받으셨을땐 아무런 이상이 없다고 하셨잖아요. 저희가 다시 채크를 해봐도 여전히 같은 열이 발생을 합니다. 저희가 쓰는 전원 어뎁터의 출력은 12V에 500mA 를 사용하고 있는데. 어떻게 낮춰줘야 할지도... 너무 낮으면 아예 안돌아갈것 같고.. 높으면 열이 너무 많이 발생하고.. 그래서 저희가 건전지를 연결하여 사용해봤더니 전원 어뎁터를 연결한것 보다는 열이 조금 덜했습니다. 하지만 여전히 시간이 지나면 열을 많이 받긴 하더라구요. 혹시 그쪽에서 테스트 하실때 사용하신 전원이 어떤 전원이신지.. 그리고 열을 좀 줄이려면 어느정도의 전압과 전류가 들어가야 괜찮을까요.. 아 답답해 죽겠습니다..
관리자 답변 NEWTC · 2010-02-11
안녕하세요 7805는 리니어 타입의 레큘레이터 입니다. 7085에 출력되는 전압과 입력되는 전압이 차가 커질수록 열도 많이 발생합니다. 또한 소모하는 전류량이 커질수록 올라갑니다. 7805는 5볼트 출력입니다. 열을 줄이려면, 5볼트 와 입력되는 전압이 차가 적을수록 덜 발생합니다. 7.5볼트 smps 아탑터를 사용하시거나, 7805에 방열판을 붙혀 사용하시는것이 좋습니다. 아니면, 7805을 제거한후 7805의 1번핀과 3번을 연결후 , smps타입의 5볼트 아탑터를 연결하시면 됩니다. 수고하세요 >안녕하세요. >얼마전에 glcd와 m128 as 보냈던 학생입니다. >두개를 연결하여 사용할때 열이 너무 과하게 발생하는 문제 때문에 >보냈었는데 기사분게서 받으셨을땐 아무런 이상이 없다고 하셨잖아요. >저희가 다시 채크를 해봐도 여전히 같은 열이 발생을 합니다. > >저희가 쓰는 전원 어뎁터의 출력은 12V에 500mA >를 사용하고 있는데. >어떻게 낮춰줘야 할지도... >너무 낮으면 아예 안돌아갈것 같고.. >높으면 열이 너무 많이 발생하고.. > >그래서 저희가 건전지를 연결하여 사용해봤더니 >전원 어뎁터를 연결한것 보다는 열이 조금 덜했습니다. >하지만 여전히 시간이 지나면 열을 많이 받긴 하더라구요. > >혹시 그쪽에서 테스트 하실때 사용하신 전원이 어떤 전원이신지.. >그리고 열을 좀 줄이려면 >어느정도의 전압과 전류가 들어가야 괜찮을까요.. >아 답답해 죽겠습니다..
4581 답변완료AB-S52K 키트 관련 문의 임정호 2010-02-11 1,376
AB-S52K 키트 관련해서 몇가지 문의 드립니다. 1. program code를 다운로드 할 때 제품 정보가 나와있는 페이지에서는 AVR studio에서 다운로드받을 수 있다고 해서 ATMEL홈페이지 가봤더니 AVR studio에서는 AT89S52칩이 없고 AT89ISP란 tool이 위 칩을 지원하던데요...뭘로 어떻게 사용하는게 맞나요? 혹시 이런 ISP/compile관련 내용을 담은 메뉴얼이 제품과 함께 제공이 되나요? 2. compile할 때 어떤 tool을 써야 하나요, 이게 AVR인지 8051인지 모르겠는데 AVR GCC를 써야하는지 아니면 KEIL uVision을 써야 하는지 궁금합니다. 3. AB-S52K 키트에서 8051 칩을 다른걸로 교체해서 판매는 안되나요? 전혀 다른 걸 말하는게 아니고 internal program memory가 64KB인 걸로 가능한지 궁금합니다. AT89C51RD2뭐 이런거처럼... mcu교체 구입이 가능하다면 그때의 구매 금액도 함께 알려주세요. 위 사항이 확인 되면 등록된 email로 견적서 부탁드립니다. fax이용시 031-788-7373입니다. 빠른 답변 부탁드립니다. -임정호 드림-
관리자 답변 NEWTC · 2010-02-11
안녕하세요? 고객님, 저희 뉴티씨를 이용하여 주셔서 감사합니다. 답변하여 드릴께요. >AB-S52K 키트 관련해서 몇가지 문의 드립니다. > 1. program code를 다운로드 할 때 제품 정보가 나와있는 페이지에서는 AVR studio에서 다운로드받을 수 있다고 해서 ATMEL홈페이지 가봤더니 AVR studio에서는 AT89S52칩이 없고 AT89ISP란 tool이 위 칩을 지원하던데요...뭘로 어떻게 사용하는게 맞나요? 혹시 이런 ISP/compile관련 내용을 담은 메뉴얼이 제품과 함께 제공이 되나요? ==>AVR Studio는 89S52을 지원합니다. AVR Studio를 깔아 보세요. 잘 못 확인 하신 것 같습니다. > 2. compile할 때 어떤 tool을 써야 하나요, 이게 AVR인지 8051인지 모르겠는데 AVR GCC를 써야하는지 아니면 KEIL uVision을 써야 하는지 궁금합니다. ==> KEIL uVision을 써도 가능하구요. 자료실에 8051 관련 강좌를 잘 보시면, IAR도 되고, SDCC도 되고...KEIL도 되고....다 가능합니다. 사용법 모두 자료실에 강좌에 있습니다. > 3. AB-S52K 키트에서 8051 칩을 다른걸로 교체해서 판매는 안되나요? 전혀 다른 걸 말하는게 아니고 internal program memory가 64KB인 걸로 가능한지 궁금합니다. AT89C51RD2뭐 이런거처럼... ==> 89S52 킷트는 다른 MCU로 바꿔서 드릴 수는 없습니다. 직접 핀맵을 확인하셔서 구매하여 사용하셔야 합니다. 그리고, 89S52은 STK500 프로토콜을 지원하며, AVR Studio에서 ISP가 되는 제품으로 편리하여 기획된 제품입니다. RD2는 ISP가 안되는 것으로 압니다. 예전에 롬라이터로 구워서 제품 개발에 사용한 적이 있거든요. >mcu교체 구입이 가능하다면 그때의 구매 금액도 함께 알려주세요. > ==> 본사에서 취급하지 않는 다른 MCU를 별도로 구매하시는 것은 죄송하지만, 어렵겠습니다. 양이 많다면, 저희가 별도로 구매해서 경쟁력 있게 드릴 수는 있겠는 데, 한~두개 구매해서 드릴 수는 있지만, 가격이 맘에 드시지 않을 듯 합니다. 저희 용산 대리점인 에스와이 전자(02-704-4376)를 통하시는 게 어떨까 싶습니다. 견적은 S52 킷트로 드리면 되는 것인지요? 전화번호 남겨 주시면, 연락 드리도록 하겠습니다. 수고하세요. >위 사항이 확인 되면 등록된 email로 견적서 부탁드립니다. fax이용시 031-788-7373입니다. > >빠른 답변 부탁드립니다. > >-임정호 드림- > >
4580 답변완료3축 가속도 센서 플러스 모듈(AM-3AXIS-P)센서 모드 변경시 출력 관련 관련 질문입니다. 안정호 2010-02-10 1,426
3축 가속도 센서 플러스 모듈(AM-3AXIS-P)센서 모드 변경시 출력 관련 관련 질문입니다. 먼저 다른 질문에 답변해 주셔서 감사드립니다. 2g 선택시 S1에 VCC S2에 GND 4g 선택시 S1에 GND S2에 VCC 6g 선택시 S1에 VCC S2에 VCC 를 연결하고 측정을 해봤습니다. 그런데 기본 값보다 전압이 떨어지지 않고 올라갔습니다. (ex 1.5g에서 -X 방향 0.8v, 2g에서 -X방향 약 1.2v) 4g나 6g 선택시 - 방향에서 기본 출력 전압이 올라갔습니다. 2g,4g,6g 선택시 1g(중력 방향으로 한 축을 - 로 놓고 측정할때)에 대한 센서 출력 전압이 올라가는게 맞는지 궁금합니다. 그리고 각 모드 선택시 2g,4g,6g에서 각각 가속도가 최대일때 (2g에서는 2g가 작용할때 최대 출력 전압,4g에서는 4g가 작용할때 최대 출력 전압, 6g에서는 6g가 작용할때 최대 출력 전압) 출력 전압의 최대값과 2g,4g,6g에서 각각 가속도가 1g일때 출력 전압을 알고싶습니다. 답변 부탁드립니다. 수고하세요 ^^
관리자 답변 NEWTC · 2010-02-10
안녕하세요? 고객님, -1g 상태에서 값을 받고 있는 건 아닌지요? -1g 상태에서 1.5g 선택시 출력 전압 = 기준 전압(1.65V) - 0.8V 입니다. 즉, 0.85V가 되죠. 2g 선택시, 출력 전압 = 기준 전압(1.65V) - 0.6V 입니다. 즉, 1.05V가 되죠. 4g 선택시, 출력 전압 = 기준 전압(1.65V) - 0.3V 입니다. 즉, 1.35V가 되죠. 6g 선택시, 출력 전압 = 기준 전압(1.65V) - 0.2V 입니다. 즉, 1.45V가 되죠. 따라서, 전압이 올라가는 것 처럼 보일 수 있겠네요. 그리고, 꼭 기준 전압이 1.65V라고 생각하지 마세요. 왜냐구요? FAQ에 3축 가속도 센서 관련된 내용을 자세히 읽어 보세요. 수고하세요. >3축 가속도 센서 플러스 모듈(AM-3AXIS-P)센서 모드 변경시 출력 관련 관련 질문입니다. > >먼저 다른 질문에 답변해 주셔서 감사드립니다. > > >2g 선택시 S1에 VCC S2에 GND > >4g 선택시 S1에 GND S2에 VCC > >6g 선택시 S1에 VCC S2에 VCC 를 연결하고 측정을 해봤습니다. > >그런데 기본 값보다 전압이 떨어지지 않고 올라갔습니다. > >(ex 1.5g에서 -X 방향 0.8v, 2g에서 -X방향 약 1.2v) > >4g나 6g 선택시 - 방향에서 기본 출력 전압이 올라갔습니다. > > >2g,4g,6g 선택시 1g(중력 방향으로 한 축을 - 로 놓고 측정할때)에 대한 > >센서 출력 전압이 올라가는게 맞는지 궁금합니다. > > >그리고 각 모드 선택시 2g,4g,6g에서 각각 가속도가 최대일때 > >(2g에서는 2g가 작용할때 최대 출력 전압,4g에서는 4g가 작용할때 최대 출력 전압, > >6g에서는 6g가 작용할때 최대 출력 전압) > >출력 전압의 최대값과 2g,4g,6g에서 각각 가속도가 1g일때 출력 전압을 알고싶습니다. > > >답변 부탁드립니다. 수고하세요 ^^
4579 답변완료AM-IRS4D의 ADC결과 문의 파란들 2010-02-10 1,428
항상 친절한 답변에 감사드립니다. AM-IRS4D의 SENSOR_OUT0의 전압을 ADC로 변환 하는 테스트해 보니 적외선 KIT를 책상에서 조금 띄우면 SENSOR0의 불이 꺼지면서 저의 ADC결과 값이 0가 되고 불이 들어오면 ADC값이 719 또는 720으로 일정합니다. 그 사이의 값을 체크하려고 여러번 테스트해 보아도 결과는 동일 합니다. 저의 코드는 DC 파워미터로 ADC 전압값을 바꿔가면서 체크해 보면 정상적으로 반응 합니다. 이 것이 맞는지요? 제 ADC 테스트 코드는 다음과 같습니다. ADCSRA &= 0x7f; ADMUX = 0x40; ADCSRA |= 0xC0; al0 = ADCL; ah0 = ADCH; ch0 += al0+ah0*256; //SENSOR0가 ON일때는 거리에 상관 없이 항상 일정한 전압을 갖음.. 이 것이 정상 인지요??? ON 일때 719 OR 720 OFF 일때 0 부탁드립니다...
관리자 답변 NEWTC · 2010-02-10
안녕하세요 AM-IRS4D 는 디지털 출력입니다. 0과 1만 출력으로 나오기 때문에 ADC값이 719 또는 720으로 일정합니다 본사에서 제공되는 ADC 예제코드를 참고 하시길 바랍니다. 수고하세요 > > 항상 친절한 답변에 감사드립니다. > > AM-IRS4D의 SENSOR_OUT0의 전압을 ADC로 변환 하는 테스트해 보니 적외선 KIT를 > 책상에서 조금 띄우면 SENSOR0의 불이 꺼지면서 저의 ADC결과 값이 0가 되고 > 불이 들어오면 ADC값이 719 또는 720으로 일정합니다. 그 사이의 값을 체크하려고 여러번 > 테스트해 보아도 결과는 동일 합니다. > 저의 코드는 DC 파워미터로 ADC 전압값을 바꿔가면서 체크해 보면 정상적으로 반응 합니다. > 이 것이 맞는지요? > > 제 ADC 테스트 코드는 다음과 같습니다. > > ADCSRA &= 0x7f; > ADMUX = 0x40; > ADCSRA |= 0xC0; > > al0 = ADCL; > ah0 = ADCH; > ch0 += al0+ah0*256; //SENSOR0가 ON일때는 거리에 상관 없이 항상 일정한 전압을 갖음.. > 이 것이 정상 인지요??? > > ON 일때 719 OR 720 > OFF 일때 0 > >부탁드립니다... >