로그인 | 회원가입 | 주문 조회
총 10,748개의 질문이 있습니다.
번호 제목 작성자 등록일 조회
3008 답변완료초보질문입니다.ㅠ 유성현 2009-05-27 1,434
ATmege128로 주차장시스템을 만들려고 하고있습니다. 그중에서 주차장 입구에 적외선 센서에 감지하여 동작하는 바를 만들려고 하는데요 서보보타를 사용하여 적외선센서가 감지되어 90도로 동작하는 시스템을 구상하고있는데요 SE-DS350 이 제품을 사용해서 시스템을 구동할수있는건가요?? 그리고 서보보타에 대한 실습예제와 설명등은 카페에 있는 소스를 응용해서 사용하려고 하는데 시스템이 가동될까요?? 아님 더 낳은 제품이나 소스를 추천좀 해주시면감사하겟습니다
관리자 답변 N.T.C · 2009-05-27
안녕하세요...고객님... se-ds350은 서보모터가 아니라 dc모터입니다. 따라서 고객님께서 구동하실려는 목적에는 ds350이 맞지 않습니다. 저희 제품중 서보모터는 se-a410과 se-sv12입니다. 카페에 올라있는 소스가 군더더기없는 가장 기본적인 소스이니깐 응용하시는데는 제일 좋을듯 합니다. 하시다가 어려우시거나 하신점 있으면 언제라도 질문주세요. 감사합니다. >ATmege128로 주차장시스템을 만들려고 하고있습니다. >그중에서 주차장 입구에 적외선 센서에 감지하여 동작하는 바를 만들려고 하는데요 >서보보타를 사용하여 적외선센서가 감지되어 90도로 동작하는 시스템을 구상하고있는데요 SE-DS350 이 제품을 사용해서 시스템을 구동할수있는건가요?? >그리고 서보보타에 대한 실습예제와 설명등은 카페에 있는 소스를 응용해서 사용하려고 하는데 시스템이 가동될까요?? 아님 더 낳은 제품이나 소스를 추천좀 해주시면감사하겟습니다
3007 답변완료KD-128PRO 전류 관련 문의 권은조 2009-05-27 1,356
안녕하세요 KD-128PRO의 12V OUT단자에 흐르는 전류를 알수 있을 까요? 사용하는 전원은 구입시 같이 동봉되어 있던 아답터{정격출력 DC12V/500mA}입니다. KD-128PRO에 나와있는 12V OUT단자로 부터 전원을 입력받아 센서를 동작시키는데 출력 전압이 11V라서 PORTF에서 컨버터 할수가 없습니다. 그래서 저항을 직렬연결시켜 5V로 다운 시키려고 하는데 흐르는 전류량을 측정할 길이 없어서 문의 드립니다. 수고하시고요. 답변 부탁 드리겠습니다.
관리자 답변 N.T.C · 2009-05-27
안녕하세요...고객님... 12V OUT단자는 입력전원회로와 바로 연결되어 있습니다. 따라서 입력전원이랑 같다고 보시면 됩니다. DC12V/500mA가 입력전원이라면 12V OUT단자에 DC12V/500mA가 출력됩니다. 보다 자세한건 테스트기로 찍어보시는게 가장 정확합니다. 감사합니다. >안녕하세요 > >KD-128PRO의 12V OUT단자에 흐르는 전류를 알수 있을 까요? > >사용하는 전원은 구입시 같이 동봉되어 있던 아답터{정격출력 DC12V/500mA}입니다. KD-128PRO에 나와있는 12V OUT단자로 부터 전원을 입력받아 센서를 동작시키는데 출력 전압이 11V라서 PORTF에서 컨버터 할수가 없습니다. 그래서 저항을 직렬연결시켜 5V로 다운 시키려고 하는데 흐르는 전류량을 측정할 길이 없어서 문의 드립니다. > >수고하시고요. 답변 부탁 드리겠습니다.
3006 답변완료icc설치관련 장기만 2009-05-27 1,319
메뉴얼을 따라서 모든 것을 그대로 실행했습니다(제생각에) 문제1) F9번을 눌렀을때 Unable to detect STK500 device. Aborting ISP function 라고 메시지창이 뜨면서 더이상 실행되지 않습니다. 무엇이 문제일까요? 문제2) AT90CAN128, 귀사의 AM-DC2-D2, AM-CSVP모듈을 사용하고 있습니다. AVR STUDIO로 속도 및 인터럽트제어 가능한 프로그램 추천해주시면 정말 감사하겠습니다. 감사합니다
관리자 답변 N.T.C · 2009-05-27
안녕하세요...고객님... ICCAVR는 자체적으로 STK500을 지원하지 않기에 AVRSTUDIO의 STK500프로토콜을 연결시켜줘야 USB방식을 사용할 수 있습니다. AVRStudio를 설치하시고 stk500을 plug_in시킨후 사용하시기 바랍니다. 이미 연결을 시켰다면 Programmer Interface에서 stk500을 선택해 주세요. AVRStudio에 관한 인터럽트소스는 AVRStuio관련 책이나 기타 사이트에서 보시면 많이 나와있습니다. winavr소스가 되겠지요. 감사합니다. >메뉴얼을 따라서 모든 것을 그대로 실행했습니다(제생각에) > >문제1) >F9번을 눌렀을때 > >Unable to detect STK500 device. >Aborting ISP function > >라고 메시지창이 뜨면서 더이상 실행되지 않습니다. > >무엇이 문제일까요? > >문제2) >AT90CAN128, >귀사의 AM-DC2-D2, AM-CSVP모듈을 사용하고 있습니다. >AVR STUDIO로 속도 및 인터럽트제어 가능한 프로그램 추천해주시면 >정말 감사하겠습니다. > >감사합니다
3005 답변완료uart 통신 문의 드립니다. 신동관 2009-05-26 1,363
아직 잘 안되어서 다시문의를 드립니다. 아.. 간절합니다. ^^ volatile unsigned char in_buf[36]; volatile unsigned char in; volatile int i=0; void uart0_rx_isr(void) { //uart has received a character in UDR in = getchar(); printf("%c",in); } 838778790000000000000000000000000F 정상출력 volatile unsigned char in_buf[36]; volatile unsigned char in; volatile int i=0; void uart0_rx_isr(void) { //uart has received a character in UDR in = getchar(); in_buf[i++] = in; if( in == '\\n' ){ printf("%c%c\\n\\r",in_buf[1],in_buf[2]); i=0; } // if end } 83 정상출력 #pragma interrupt_handler uart0_rx_isr:iv_USART0_RXC void uart0_rx_isr(void) { //uart has received a character in UDR in = getchar(); in_buf[i++] = in; if( in == '\\n' ){ printf("%c%c%c%c \\n\\r",in_buf[1],in_buf[2],in_buf[3],in_buf[4]); i=0; } // if end } 8378 출력 ... 문제발생 8387이정상임... 2자리 건너띄어서 출력됨. 위에처럼 문제가 발생합니다. 그냥 uart0로 받자 마자 uart1으로 출력하면 큰 문제없이 출력이 됩니다. 이값을 배열에 담으면 문제가 발생을 합니다. uart0은 rs485로 조이스틱으로 부터 입력을 받습니다. uart1은 rs232를 통하여 PC의 하이퍼터미널로 출력 해서 모니터링 하고 있습니다. 따뜻한 조언을 부탁드립니다. 감사합니다.
관리자 답변 N.T.C · 2009-05-27
안녕하세요..고객님.... 시간이 되시면 직접 찾아오시기 바랍니다. 글을 통해서 서로 커뮤니케이션 하기에는 한계가 있습니다. 배열로 받는 정보도 솔직히 직접 확인하기 전에는 뭐라 말씀드리기 힘드네요. 감사합니다. > >아직 잘 안되어서 다시문의를 드립니다. > >아.. 간절합니다. ^^ > > volatile unsigned char in_buf[36]; > volatile unsigned char in; > volatile int i=0; > > > > > >void uart0_rx_isr(void) >{ > //uart has received a character in UDR > in = getchar(); > printf("%c",in); > >} > > >838778790000000000000000000000000F >정상출력 > > > > volatile unsigned char in_buf[36]; > volatile unsigned char in; > volatile int i=0; > > >void uart0_rx_isr(void) >{ > //uart has received a character in UDR > in = getchar(); > in_buf[i++] = in; > if( in == '\\n' ){ > printf("%c%c\\n\\r",in_buf[1],in_buf[2]); > i=0; > } // if end > >} > > > >83 >정상출력 > > > >#pragma interrupt_handler uart0_rx_isr:iv_USART0_RXC >void uart0_rx_isr(void) >{ > //uart has received a character in UDR > in = getchar(); > in_buf[i++] = in; > if( in == '\\n' ){ > printf("%c%c%c%c \\n\\r",in_buf[1],in_buf[2],in_buf[3],in_buf[4]); > i=0; > } // if end > >} > >8378 출력 ... 문제발생 8387이정상임... 2자리 건너띄어서 출력됨. > > >위에처럼 문제가 발생합니다. > >그냥 uart0로 받자 마자 uart1으로 출력하면 큰 문제없이 출력이 됩니다. > >이값을 배열에 담으면 문제가 발생을 합니다. > >uart0은 rs485로 조이스틱으로 부터 입력을 받습니다. uart1은 rs232를 통하여 PC의 하이퍼터미널로 출력 해서 모니터링 하고 있습니다. > >따뜻한 조언을 부탁드립니다. > >감사합니다.
3004 답변완료AM-128 v01 제품을 살수있을까요? KD128 2009-05-26 1,358
KD-128N 모듈을 구입했는데 ATMAGA를 태워먹어서 따로 구입하려고하는데.어디서 구입할 수 있을까요?? 이미 단종된 모델인걸로 암니다만...졸업작품을 하는데 거의 다 완성해서 태워버렸네요...ㅜㅜㅜ
관리자 답변 N.T.C · 2009-05-27
안녕하세요..고객님... 단종된지가 6개월이상 지난 제품이라 재고가 없습니다. ATmega128MCU만 교체하시면 될듯한데 혹시 태워먹었다는 뜻이 PCB의 손상을 말하는 건가요? 디바이스 마트에 재고가 2개 남은 걸로 나오는데 한번 주문해 보시기 바랍니다. 감사합니다. >KD-128N 모듈을 구입했는데 ATMAGA를 태워먹어서 따로 구입하려고하는데.어디서 구입할 수 있을까요?? > >이미 단종된 모델인걸로 암니다만...졸업작품을 하는데 거의 다 완성해서 태워버렸네요...ㅜㅜㅜ
3003 답변완료죄송합니다만. 양현민 2009-05-26 1,339
성실하게 답변해주셔서 감사합니다. 밑에 소스 올렸던 사람입니다. 다름이 아니라. 지금 상황이 센서에 따라 모터부에 반응은 오지만 올바르게 작동되지 않습니다. 바퀴는 한쪽만 돌아가거나 반대로 돌아갑니다. 제가 프로그래밍은 처음 접하는것이라 어려움이 따릅니다 죄송합니다.
관리자 답변 N.T.C · 2009-05-27
안녕하세요...고객님.. switch(sensor){ case 0x01: stepright=RIGHTmotorOneClock(stepright,1); break; case 0x02: stepright=RIGHTmotorOneClock(stepright,1); break; case 0x04: stepleft=LEFTmotorOneClock(stepleft,0); break; case 0x08: stepleft=LEFTmotorOneClock(stepleft,0); break; case 0x03: stepright=RIGHTmotorOneClock(stepright,1); break; case 0x0c: stepleft=LEFTmotorOneClock(stepleft,0); break; case 0x07: stepright=RIGHTmotorOneClock(stepright,1); break; case 0x0e: stepleft=LEFTmotorOneClock(stepleft,0); break; default: stepleft=LEFTmotorOneClock(stepleft,0); stepright=RIGHTmotorOneClock(stepright,1); break; } 이 문에서 case 다음문은 센서의 값입니다. 센서의 동작이 첫번째(1), 두번째(2), 세번째(4), 네번째(8)로 인식됩니다. 만약 첫번째와 두번째 led가 on될때의 case값을 구하고 싶을땐 첫번째 :1 , 두번째 :2 값을 더한 3이됩니다. 0x는 16진수라는 뜻이구요. 방향은 1이면 정방향, 0이면 역방향을 나타내니깐 LEFTmotorOneClock, RIGHTmotorOneClock함수에서 잘 조절하면서 해보시기 바랍니다. 스테핑 모터 강좌를 읽어보시면 더 도움이 될것입니다. 감사합니다. >성실하게 답변해주셔서 감사합니다. > >밑에 소스 올렸던 사람입니다. > >다름이 아니라. 지금 상황이 > >센서에 따라 모터부에 반응은 오지만 올바르게 작동되지 않습니다. > >바퀴는 한쪽만 돌아가거나 반대로 돌아갑니다. > >제가 프로그래밍은 처음 접하는것이라 어려움이 따릅니다 > >죄송합니다. > > > > >
3002 답변완료소스파일 좀 분석 부탁드려도 될까요? 양현민 2009-05-26 1,481
#include <iom128v.h> #include <macros.h> #include <stdio.h> #define Sensorport DDRA #define MOTOR_PORT PORTB // 스테핑 모터 연결 포트 #define MOTOR_PORT_DDR DDRB // 스테핑 모터 연결 포트의 DDR REG #define MOTOR_ENABLE (MOTOR_PORT = MOTOR_PORT|0x80) #define MOTOR_DISABLE (MOTOR_PORT = MOTOR_PORT&0x7f) #define MOTOR_STEP_M0 (MOTOR_PORT = (MOTOR_PORT&0xcf)|0x00) #define MOTOR_STEP_M1 (MOTOR_PORT = (MOTOR_PORT&0xcf)|0x10) #define MOTOR_STEP_M2 (MOTOR_PORT = (MOTOR_PORT&0xcf)|0x20) #define MOTOR_STEP_M3 (MOTOR_PORT = (MOTOR_PORT&0xcf)|0x30) #define MOTOR_LEFT_CLK (MOTOR_PORT = MOTOR_PORT^0x01) #define MOTOR_RIGHT_CLK (MOTOR_PORT = MOTOR_PORT^0x04) #define MOTOR_LEFT_CW (MOTOR_PORT = MOTOR_PORT&0xfd) #define MOTOR_LEFT_CCW (MOTOR_PORT = MOTOR_PORT|0x02) #define MOTOR_RIGHT_CW (MOTOR_PORT = MOTOR_PORT&0xf7) #define MOTOR_RIGHT_CCW (MOTOR_PORT = MOTOR_PORT|0x02) void port_init(void) { PORTA = 0x00; DDRA = 0x00; PORTB = 0x00; DDRB = 0xff; PORTC = 0x00; DDRC = 0xff; PORTD = 0x00; DDRD = 0x00; PORTE = 0x00; DDRE = 0x00; PORTF = 0x00; DDRF = 0x00; PORTG = 0x00; DDRG = 0x00; } //UART0 initialize // desired baud rate: 9600 // actual: baud rate:9615 (0.2%) // char size: 8 bit // parity: Disabled void uart0_init(void) { UCSR0B = 0x00; //disable while setting baud rate UCSR0A = 0x00; UCSR0C = 0x06; UBRR0L = 0x67; //set baud rate lo UBRR0H = 0x00; //set baud rate hi UCSR0B = 0x18; } //call this routine to initialize all peripherals void init_devices(void) { //stop errant interrupts until set up CLI(); //disable all interrupts XDIV = 0x00; //xtal divider XMCRA = 0x00; //external memory port_init(); uart0_init(); MCUCR = 0x00; EICRA = 0x00; //extended ext ints EICRB = 0x00; //extended ext ints EIMSK = 0x00; TIMSK = 0x40; //timer interrupt sources ETIMSK = 0x04; //extended timer interrupt sources SEI(); //re-enable interrupts //all peripherals are now initialized } unsigned char LEFTmotorOneClock(unsigned char step, char dir) { step = step & 0x0f; if(dir){ switch(step){ case 0x09: step=0x01; break; case 0x01: step=0x03; break; case 0x03: step=0x02; break; case 0x02: step=0x06; break; case 0x06: step=0x04; break; case 0x04: step=0x0c; break; case 0x0c: step=0x08; break; case 0x08: step=0x09; break; default: step=0x0c; break; } }else{ switch(step){ case 0x09: step=0x08; break; case 0x01: step=0x09; break; case 0x03: step=0x01; break; case 0x02: step=0x03; break; case 0x06: step=0x02; break; case 0x04: step=0x06; break; case 0x0c: step=0x04; break; case 0x08: step=0x0c; break; default: step=0x0c; break; } } return step; } /* Stepping Motor derive---------------------------*/ unsigned char RIGHTmotorOneClock(unsigned char step, char dir) { step = step & 0xf0; if(dir){ switch(step){ case 0x90: step=0x10; break; case 0x10: step=0x30; break; case 0x30: step=0x20; break; case 0x20: step=0x60; break; case 0x60: step=0x40; break; case 0x40: step=0xc0; break; case 0xc0: step=0x80; break; case 0x80: step=0x90; break; default: step=0xc0; break; } }else{ switch(step){ case 0x90: step=0x80; break; case 0x10: step=0x90; break; case 0x30: step=0x10; break; case 0x20: step=0x30; break; case 0x60: step=0x20; break; case 0x40: step=0x60; break; case 0xc0: step=0x40; break; case 0x80: step=0xc0; break; default: step=0xc0; break; } } return step; } void delay(int n) { volatile int i,j; for(i=1;i<n;i++) { for(j=1;j<600;j++); } } // void main(void) { volatile unsigned char sensor, stepleft=0, stepright=0; init_devices(); //insert your functional code here... printf(" \\n\\n\\rStepping Motor test program...\\n\\r"); PORTC = 0x00; while(1){ PORTA = 0x00; sensor = PINA & 0x0f; switch(sensor){ case 0x01: stepright=RIGHTmotorOneClock(stepright,1); break; case 0x02: stepright=RIGHTmotorOneClock(stepright,1); break; case 0x04: stepleft=LEFTmotorOneClock(stepleft,0); break; case 0x08: stepleft=LEFTmotorOneClock(stepleft,0); break; case 0x03: stepright=RIGHTmotorOneClock(stepright,1); break; case 0x0c: stepleft=LEFTmotorOneClock(stepleft,0); break; case 0x07: stepright=RIGHTmotorOneClock(stepright,1); break; case 0x0e: stepleft=LEFTmotorOneClock(stepleft,0); break; default: stepleft=LEFTmotorOneClock(stepleft,0); stepright=RIGHTmotorOneClock(stepright,1); break; } delay(2); MOTOR_PORT=stepleft|stepright; delay(2); } } 센서부는 잘 작동하는데 모터부가. 잘 동작하지 않습니다. 우선 역방향을 회전하고. 동작이 잘 안됩니다. 어떤 부분이 문제인지 혹시 알수 있을까요?
관리자 답변 N.T.C · 2009-05-26
안녕하세요...고객님... 모터부가 잘 동작하지 않는다는 말은 모터가 움직이지 않는다는 뜻인지 아니면 모터가 목적하는바와 다르게 동작한다는 뜻인지 정확하게 이야기해주세요. 전자의 경우라면 소스는 문제가 없으니깐 설정값들을 다시한번 확인해주세요. 모터 토크가 맞지 않을 경우 delay(x)에서 x값을 조금 더 높혀 보세요. 후자의 경우라면 프로그램에서 방향설정을 확인해보세요. stepright=RIGHTmotorOneClock(stepright,1); stepright=RIGHTmotorOneClock(stepright,1); RIGHTmotorOneClock(x,y) 함수에서 y(0 또는 1)가 방향을 설정하니깐 원하는대로 구동이 안되면 방향을 바꿔보세요. 그리고 기타 전원(최소 12V이상 600mA이상)이라든지 포트확인 다시 한번 해보세요.. 감사합니다. > >#include <iom128v.h> >#include <macros.h> >#include <stdio.h> > >#define Sensorport DDRA >#define MOTOR_PORT PORTB // 스테핑 모터 연결 포트 >#define MOTOR_PORT_DDR DDRB // 스테핑 모터 연결 포트의 DDR REG > >#define MOTOR_ENABLE (MOTOR_PORT = MOTOR_PORT|0x80) >#define MOTOR_DISABLE (MOTOR_PORT = MOTOR_PORT&0x7f) >#define MOTOR_STEP_M0 (MOTOR_PORT = (MOTOR_PORT&0xcf)|0x00) >#define MOTOR_STEP_M1 (MOTOR_PORT = (MOTOR_PORT&0xcf)|0x10) >#define MOTOR_STEP_M2 (MOTOR_PORT = (MOTOR_PORT&0xcf)|0x20) >#define MOTOR_STEP_M3 (MOTOR_PORT = (MOTOR_PORT&0xcf)|0x30) >#define MOTOR_LEFT_CLK (MOTOR_PORT = MOTOR_PORT^0x01) >#define MOTOR_RIGHT_CLK (MOTOR_PORT = MOTOR_PORT^0x04) >#define MOTOR_LEFT_CW (MOTOR_PORT = MOTOR_PORT&0xfd) >#define MOTOR_LEFT_CCW (MOTOR_PORT = MOTOR_PORT|0x02) >#define MOTOR_RIGHT_CW (MOTOR_PORT = MOTOR_PORT&0xf7) >#define MOTOR_RIGHT_CCW (MOTOR_PORT = MOTOR_PORT|0x02) > >void port_init(void) >{ > PORTA = 0x00; > DDRA = 0x00; > PORTB = 0x00; > DDRB = 0xff; > PORTC = 0x00; > DDRC = 0xff; > PORTD = 0x00; > DDRD = 0x00; > PORTE = 0x00; > DDRE = 0x00; > PORTF = 0x00; > DDRF = 0x00; > PORTG = 0x00; > DDRG = 0x00; >} > > >//UART0 initialize >// desired baud rate: 9600 >// actual: baud rate:9615 (0.2%) >// char size: 8 bit >// parity: Disabled >void uart0_init(void) >{ > UCSR0B = 0x00; //disable while setting baud rate > UCSR0A = 0x00; > UCSR0C = 0x06; > UBRR0L = 0x67; //set baud rate lo > UBRR0H = 0x00; //set baud rate hi > UCSR0B = 0x18; >} > >//call this routine to initialize all peripherals >void init_devices(void) >{ > //stop errant interrupts until set up > CLI(); //disable all interrupts > XDIV = 0x00; //xtal divider > XMCRA = 0x00; //external memory > port_init(); > uart0_init(); > > MCUCR = 0x00; > EICRA = 0x00; //extended ext ints > EICRB = 0x00; //extended ext ints > EIMSK = 0x00; > TIMSK = 0x40; //timer interrupt sources > ETIMSK = 0x04; //extended timer interrupt sources > SEI(); //re-enable interrupts > //all peripherals are now initialized >} > >unsigned char LEFTmotorOneClock(unsigned char step, char dir) >{ > step = step & 0x0f; > if(dir){ > switch(step){ > case 0x09: step=0x01; break; > case 0x01: step=0x03; break; > case 0x03: step=0x02; break; > case 0x02: step=0x06; break; > case 0x06: step=0x04; break; > case 0x04: step=0x0c; break; > case 0x0c: step=0x08; break; > case 0x08: step=0x09; break; > default: step=0x0c; break; > } > }else{ > switch(step){ > case 0x09: step=0x08; break; > case 0x01: step=0x09; break; > case 0x03: step=0x01; break; > case 0x02: step=0x03; break; > case 0x06: step=0x02; break; > case 0x04: step=0x06; break; > case 0x0c: step=0x04; break; > case 0x08: step=0x0c; break; > default: step=0x0c; break; > } > } > return step; > >} > >/* Stepping Motor derive---------------------------*/ >unsigned char RIGHTmotorOneClock(unsigned char step, char dir) > >{ > step = step & 0xf0; > if(dir){ > switch(step){ > case 0x90: step=0x10; break; > case 0x10: step=0x30; break; > case 0x30: step=0x20; break; > case 0x20: step=0x60; break; > case 0x60: step=0x40; break; > case 0x40: step=0xc0; break; > case 0xc0: step=0x80; break; > case 0x80: step=0x90; break; > default: step=0xc0; break; > } > }else{ > switch(step){ > case 0x90: step=0x80; break; > case 0x10: step=0x90; break; > case 0x30: step=0x10; break; > case 0x20: step=0x30; break; > case 0x60: step=0x20; break; > case 0x40: step=0x60; break; > case 0xc0: step=0x40; break; > case 0x80: step=0xc0; break; > default: step=0xc0; break; > } > } > return step; >} > > > > > > >void delay(int n) >{ > volatile int i,j; > for(i=1;i<n;i++) > { > for(j=1;j<600;j++); > } >} > >// >void main(void) >{ > volatile unsigned char sensor, stepleft=0, stepright=0; > > init_devices(); > //insert your functional code here... > > printf(" \\n\\n\\rStepping Motor test program...\\n\\r"); > PORTC = 0x00; > > while(1){ > PORTA = 0x00; > sensor = PINA & 0x0f; > > switch(sensor){ > case 0x01: stepright=RIGHTmotorOneClock(stepright,1); > break; > case 0x02: stepright=RIGHTmotorOneClock(stepright,1); > break; > case 0x04: stepleft=LEFTmotorOneClock(stepleft,0); > break; > case 0x08: stepleft=LEFTmotorOneClock(stepleft,0); > break; > case 0x03: stepright=RIGHTmotorOneClock(stepright,1); > break; > case 0x0c: stepleft=LEFTmotorOneClock(stepleft,0); > break; > case 0x07: stepright=RIGHTmotorOneClock(stepright,1); > break; > case 0x0e: stepleft=LEFTmotorOneClock(stepleft,0); > break; > > default: stepleft=LEFTmotorOneClock(stepleft,0); > stepright=RIGHTmotorOneClock(stepright,1); > break; > } > delay(2); > MOTOR_PORT=stepleft|stepright; > delay(2); > > > } >} > >센서부는 잘 작동하는데 > >모터부가. 잘 동작하지 않습니다. 우선 역방향을 회전하고. 동작이 잘 안됩니다. > >어떤 부분이 문제인지 혹시 알수 있을까요?
3001 답변완료가속도센서질문요. 문대선 2009-05-26 1,294
제가 AM-3AXIS 센서모듈을 사용하는데요. 3차원공간에서의 위치를 알려고 하는데 정적 가속도값때문에 위치계산이 어려울 것 같아서 질문좀 드리려구요. 이럴 경우 자이로 센서를 사용해서 가능한지 알고싶구요. 혹시 자사에서 자이로 센서 판매하는지도 알고싶습니다. 아니면 다른 방법이 있는지요?
관리자 답변 N.T.C · 2009-05-26
안녕하세요? 고객님, 자이로로 방향을 결정하구요. 가속도 센서로 기울어짐을 결정할 수 있겠습니다. 그리고, 이동하게 되면 가속도 값으로 위치가 바뀌는 것을 찾아 낼 수 있겠지요. 본사에서 현재는 자이로 센서를 판매하고 있지는 않습니다. 자이로 센서는 엘레파츠나 디바이스 마트 같은 온라인 대리점에 가시면 많이 있더군요. 수고하세요. >제가 AM-3AXIS 센서모듈을 사용하는데요. >3차원공간에서의 위치를 알려고 하는데 정적 가속도값때문에 >위치계산이 어려울 것 같아서 질문좀 드리려구요. >이럴 경우 자이로 센서를 사용해서 가능한지 알고싶구요. >혹시 자사에서 자이로 센서 판매하는지도 알고싶습니다. >아니면 다른 방법이 있는지요? >
3000 답변완료영문시리얼LCD모듈 문의 이승구 2009-05-26 1,445
다름이 아니라 저는 PIC를 주로사용하는데 커맨드를 핵사값으로 알려주셨으면 합니다. 아니면 컴파일러를 ccs-c를 사용하는데 그럴때 printf명령이 avr하고 좀 틀려서요
관리자 답변 N.T.C · 2009-05-26
안녕하세요? 고객님, 저희 NewTC 제품을 이용하여 주셔서 감사합니다. HEX 명령어 표를 첨부하였습니다. 또한, 자세한 사항은 SLCD 메뉴얼을 첨부하였으니, 참고하시기 바랍니다. 감사합니다. >다름이 아니라 저는 PIC를 주로사용하는데 >커맨드를 핵사값으로 알려주셨으면 합니다. >아니면 컴파일러를 ccs-c를 사용하는데 >그럴때 printf명령이 avr하고 좀 틀려서요 >
2999 답변완료Icc avr설치관련 장기만 2009-05-26 1,459
AT90CAN128을 사용하고 있습니다. ICC를 설치하였고 Make project를 실행하였습니다. 그러나 CAN not open LPT1 Please report to imageCraft,load driver message; 에러 메시지가 뜨면서 더이상 진행을 하지 않았습니다. 문제1) AT90CAN128의 Fuse bits를 몰라서 설정하지 않았고 문제2) Target Devices를 ATmega128로 설정후 또한 ATmega128의 Fuse bits를 0xFFD9EF 로 설정한후 'W'를 실행 시켜도 아래와 같은 메시지가 뜨면서 실행되지 않습니다. CAN not open LPT1 Please report to imageCraft,load driver message; 문제3)아직 ISP드라이버를 설치하지 못하였는데 이것이 문제가 되는 것은 아닌지? 답변부탁드립니다.
관리자 답변 N.T.C · 2009-05-26
안녕하세요...고객님... 에러 메세지는 LPT1과 통신을 할수 없다는 것인데.. 우선 시스템=>장치관리자=>하드웨어=>포트에서 프린트포트가 LPT1에 제대로 인식되고 있는지 확인해주시기 바랍니다. 제대로 인식되고 있는데 안되시면 컴퓨터 껏다 켜서 CMOS setup에서 Pheripheral 쪽에서 printer 포트를 0x378번지, LPT1, ECP, 인터럽트 IRQ7으로 잡으세요. 감사합니다. >AT90CAN128을 사용하고 있습니다. > >ICC를 설치하였고 Make project를 실행하였습니다. > >그러나 >CAN not open LPT1 >Please report to imageCraft,load driver message; >에러 메시지가 뜨면서 더이상 진행을 하지 않았습니다. > >문제1) AT90CAN128의 Fuse bits를 몰라서 설정하지 않았고 > >문제2) Target Devices를 ATmega128로 설정후 >또한 ATmega128의 Fuse bits를 0xFFD9EF 로 설정한후 'W'를 실행 시켜도 아래와 같은 메시지가 뜨면서 실행되지 않습니다. > >CAN not open LPT1 > Please report to imageCraft,load driver message; > >문제3)아직 ISP드라이버를 설치하지 못하였는데 이것이 문제가 되는 것은 아닌지? > >답변부탁드립니다. > > > >
2998 답변완료AVR-ISPPRO 사용상 질문입니다 최성권 2009-05-26 1,553
안녕하세요. 저희가 사용하는 Pc가 프린터포트가 없어서 부득이하게 젠더를사용하여 serial포트에 연결을해야하는 상황입니다. 그런데 계속 연결을 하려고해도 연결할 수 없다는 메세지만 뜨네요ㅠㅠ 이러한 경우 pc측에서 어떻게 설정해야 하는지 알려주시면 감사하겠습니다. 연결하려는 것은 ATMega16(dc라인트레이서)이고AVRStudio를 사용합니다. 도움 기다리고 있겠습니다. 강사합니다
관리자 답변 N.T.C · 2009-05-26
안녕하세요..고객님... 어떤 젠더를 이야기하시는지요? usb패러럴 젠더를 이야기 하는건가요? 국내에 시판되고 있는 usb패러럴 젠더는 대부분이 프린트 전용이므로 사용할 수 없습니다. 그리고 avr studio는 패러럴 포터를 지원하지 않습니다. 저희 제품중 usbisp라는 제품이 있습니다. 노트북 사용자를 위해 개발된 것이니 한번 고려해 보시기 바랍니다. 자세한 내용은 저희 홈페이지 제품소개에 나와있습니다. 정확하게 어떤 제품을 사용하는지 알려주시면 다시 답변 드리겠습니다. 감사합니다. >안녕하세요. > >저희가 사용하는 Pc가 프린터포트가 없어서 부득이하게 젠더를사용하여 > >serial포트에 연결을해야하는 상황입니다. 그런데 계속 연결을 하려고해도 > >연결할 수 없다는 메세지만 뜨네요ㅠㅠ > >이러한 경우 pc측에서 어떻게 설정해야 하는지 알려주시면 감사하겠습니다. > >연결하려는 것은 ATMega16(dc라인트레이서)이고AVRStudio를 사용합니다. > >도움 기다리고 있겠습니다. 강사합니다
2997 답변완료질문있습니다 양현민 2009-05-26 1,515
AM-MS2 모터구동모듈을 이용해서 라인트레이서 만들려고 하는데요,,, 각각의 모듈의 동작은 확인했구요,,, 이제 모터부와 센서부를 함께 프로그램 짜려고 하는데요,,, 자료실에 AM-MS2 모터구동모듈을 이용한 라인트레이서는 없더라구요 아직 초보라서 그런데 이와 관련된 소스를 좀 알 수 있을까요??? 꼭 좀 도와주십시요~~!!
관리자 답변 N.T.C · 2009-05-26
안녕하세요..고객님... 라인트레이서 소스를 보시면 각각의 경우에 따라 switch(){case:}를 이용해서 코딩되어 있습니다. ms2를 이용하시면 case:문의 실행문을 ms2소스에 맞게 해주시면 됩니다. 감사합니다. >AM-MS2 모터구동모듈을 이용해서 > >라인트레이서 만들려고 하는데요,,, > >각각의 모듈의 동작은 확인했구요,,, > >이제 모터부와 센서부를 함께 프로그램 짜려고 하는데요,,, > >자료실에 AM-MS2 모터구동모듈을 이용한 라인트레이서는 없더라구요 > >아직 초보라서 그런데 이와 관련된 소스를 좀 알 수 있을까요??? > >꼭 좀 도와주십시요~~!!
2996 답변완료가속도 센서 질문이요 배한수 2009-05-26 1,350
제가 이전글로 가속도센서에 5v를 인가했다고 했는데 모듈에 5v를 인가했는데 모듈의 레귤레이터 등을 통해서 가속도센서에는 3.3v로 바뀌어서 입력되는것 아닌 가요? 아니면 5v그대로 인가되나요?
관리자 답변 N.T.C · 2009-05-26
안녕하세요..고객님... 3축가속도 플러스 모듈을 사셨다면 lm1117-3-3칩이 5V를 3.3V로 다운시켜줄 것입니다. 3축 가속도 센서모듈(AM-3AXIS ver.2)만 사셨다면 Vcc에 반드시 3.3V를 인가하셔야 합니다. 감사합니다. >제가 이전글로 가속도센서에 5v를 인가했다고 했는데 > >모듈에 5v를 인가했는데 > >모듈의 레귤레이터 등을 통해서 가속도센서에는 3.3v로 바뀌어서 입력되는것 아닌 > >가요? > >아니면 5v그대로 인가되나요?
2995 답변완료다시 보내주신 isp 질문입니다. 김영환 2009-05-26 1,441
isp v.20으로 새로받았습니다. usb 포트에 꽃고 dip 스위치 2번을 올린뒤 기기에 꽃으니 전원이 안들어와서 dmm 으로 vcc gnd 를 찍어보았습니다만 5v 가 안나오더군요... 해결방법을 알려주세요..[...이것도 불량이면..[
관리자 답변 N.T.C · 2009-05-26
안녕하세요...고객님... 전화로 답변드렸습니다. 죄송합니다. >isp v.20으로 새로받았습니다. > >usb 포트에 꽃고 dip 스위치 2번을 올린뒤 > >기기에 꽃으니 전원이 안들어와서 >dmm 으로 vcc gnd 를 찍어보았습니다만 >5v 가 안나오더군요... > >해결방법을 알려주세요..[...이것도 불량이면..[
2994 답변완료가속도센서 질문 하나더 할께요오 배한수 2009-05-25 1,309
다름이 아니라 가속도센서 계산법을보면 Vout/3.3 *1024를 하면 그것이 adc의 값 10bit로 표현되는거잖아요 그러면 센서를 평면에 두면 x축값이 1.65(실측 1.6)이 나오던데요 그 값을 계산해 표현하면 512값이 잖아요? 그런데 왜 전 320정도의 값을 가지지요?(제가 올린 소스를 보시면 아시겠지만.. if구문을 통해서 범위를 주고 x축경우는 300이하일때 좌로인식 365이상일때 우로인식 그사이는 평평한 값으로 짰습니다) 이게 adc구문에서 기준전압 설정하는 구문이 틀려서 그런건가요 실험환경 및 소스 << 저는 ADCSRA = 0xD5; 을 이용하였습니다 그리고 제가 만든 키트에는 5v를 인가하였으며 >> 제가 생각한것은 그래서.. 평평한곳에 두었을때 x축값이 1.6으로 두면 1.65v/5v(제가 키트에 인가한볼트)*1024를 하면 거의 330정도의 값으로 나오더라구요...그리고 제가 짠 구문도 330정도값은 평면으로 인식을 합니다... 음 질문에 두서가 좀 없네요... 즉 계산법의 3.3부분이 제가 키트에 인가하는 볼트인 5로 바뀌어서 계산을 해주어야지 되는건가요? 아니면 다른 이유 때문인가요? 소스를 수정해 달라는 것은 아닙니다 지금도 제 소스를 사용하면 사용이 가능은 한데 좀더 정확한 내용을 알고자 이렇게 질문을 드립니다 ㅎ;; 수고하세요
관리자 답변 N.T.C · 2009-05-26
안녕하세요? 0~3.3V를 기본 ADC 입력 전압으로 하는 것이 좋겠구요. 위치에 따른 g 값 변동은 아래와 같습니다. 좀 더 자세한 것은 데이터시트를 참고하세요. - 아래 - http://www.newtc.co.kr/board/data/qna/StaticAccel.JPG 하지만, 0~5V를 ADC 입력 전압 범위로 한다면, 1.6V 정도라면 320 정도가 맞네요. 한칸이 5mV 이니까 그렇지요? 3.3~5V 사이가 안쓰는 값이 되니까, 좀 아깝네요. 풀 레인지를 정밀하게 측정하진 못하니까요. 그리고, AM-3AXIS V02모듈에는 꼭 3.3V를 넣어 주어야 합니다. 칩에 탈 수도 있습니다. 수고하세요. >다름이 아니라 >가속도센서 계산법을보면 Vout/3.3 *1024를 하면 >그것이 adc의 값 10bit로 표현되는거잖아요 > >그러면 센서를 평면에 두면 x축값이 1.65(실측 1.6)이 나오던데요 > >그 값을 계산해 표현하면 512값이 잖아요? > >그런데 왜 전 320정도의 값을 가지지요?(제가 올린 소스를 보시면 아시겠지만.. >if구문을 통해서 범위를 주고 x축경우는 300이하일때 좌로인식 365이상일때 >우로인식 그사이는 평평한 값으로 짰습니다) > >이게 adc구문에서 기준전압 설정하는 구문이 틀려서 그런건가요 > >실험환경 및 소스 ><< >저는 ADCSRA = 0xD5; >을 이용하였습니다 >그리고 제가 만든 키트에는 5v를 인가하였으며 >>> > >제가 생각한것은 그래서.. > >평평한곳에 두었을때 x축값이 1.6으로 두면 > >1.65v/5v(제가 키트에 인가한볼트)*1024를 하면 거의 330정도의 값으로 나오더라구요...그리고 제가 짠 구문도 330정도값은 평면으로 인식을 합니다... > >음 질문에 두서가 좀 없네요... > >즉 > >계산법의 3.3부분이 >제가 키트에 인가하는 볼트인 5로 바뀌어서 계산을 해주어야지 되는건가요? > >아니면 다른 이유 때문인가요? > >소스를 수정해 달라는 것은 아닙니다 > >지금도 제 소스를 사용하면 사용이 가능은 한데 > >좀더 정확한 내용을 알고자 이렇게 질문을 드립니다 ㅎ;; > >수고하세요