로그인 | 회원가입 | 주문 조회
총 10,743개의 질문이 있습니다.
번호 제목 작성자 등록일 조회
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로 바뀌어서 계산을 해주어야지 되는건가요? > >아니면 다른 이유 때문인가요? > >소스를 수정해 달라는 것은 아닙니다 > >지금도 제 소스를 사용하면 사용이 가능은 한데 > >좀더 정확한 내용을 알고자 이렇게 질문을 드립니다 ㅎ;; > >수고하세요
2993 답변완료여기 주말에도 일 하나요?? 김민수 2009-05-25 1,279
여기서 아트메가 구입해서 실험하는데 잘안되서ㅠ 대구에서 한번 찾아가려고 하는데요... 토요일 일요일밖에 시간이 안될꺼 같은데.. 토요일이나 일요일에도 봐주실수 있나요??? 코드비전 사용하고 있습니다. 제발요...ㅠㅠ
관리자 답변 N.T.C · 2009-05-26
안녕하세요? 고객님, 어떡하지요... 토요일날은 근무하는 날이 아닙니다. 지난 주는 그래도 혼자서 근무를 했었는 데, 근간에는 토일요일은 근무하기가 어려울 것 같은데요. 평일날 찾아 오시면 좋겠는 데요. 그리고, 찾아 오셔도 죄송하지만, 소스를 봐드리진 않습니다. 막힐 때 아이디어를 제공해 드리거나, 상담을 해드리긴 하고 있구요. 모듈 테스트는 해 드립니다. 아래의 본사에서 제공하는 샘플 코드비전 소스를 참고하면 좋을 것 같은데요. 아래 소스에는 포트제어, 시리얼 통신, ADC 세 가지를 할 수 있는 소스가 있으니, 많이 사용할 수 있을 겁니다. - 아래 - http://www.newtc.co.kr/board/view.php?id=pds&page=1&sn1=&divpage=1&sn=off&ss=on&sc=off&keyword=코드비전&select_arrange=headnum&desc=asc&no=254 본 게시판을 잘 활용하는 것도 방법이 되겠습니다. 평일날 시간내서 올라오세요. 수고하세요. >여기서 아트메가 구입해서 실험하는데 >잘안되서ㅠ 대구에서 한번 >찾아가려고 하는데요... > >토요일 일요일밖에 시간이 안될꺼 같은데.. >토요일이나 일요일에도 봐주실수 있나요??? > >코드비전 사용하고 있습니다. > >제발요...ㅠㅠ
2992 답변완료Relay 전원 공급 보드 (4 Ch) 공급관련 이준학 2009-05-25 1,342
안녕하십니까? 저번 몇번 연락드린 휴먼인터랙티브 이준학 대리입니다. Relay 전원 공급 보드 (4 Ch) 최소 단위 공급 물량을 50ea라고 하셨는데, 현재 발주가 필요하여 연락드립니다. 50ea + 저번 제작해 주신 케이블 50ea 의 공급가격 및 발주 시 수령가능한 일수가 어떻게 될까 싶어 문의 남깁니다. 아 그리고 저번 케이블 제작하신 것 보니 실리콘으로 되어 있던데 수축케이블 같을 걸로 하면 단가가 어떻게 되는 지도 궁금합니다. 접착면이 약해서....ㅜ,.ㅜ 연락 부탁드립니다. 011-9567-3652 hunter@hminteractive.com
관리자 답변 N.T.C · 2009-05-25
안녕하세요..고객님... 입금후 최소 7일이니깐 날짜 계산 잘해서 연락주세요. 감사합니다. >안녕하십니까? > >저번 몇번 연락드린 휴먼인터랙티브 이준학 대리입니다. > >Relay 전원 공급 보드 (4 Ch) 최소 단위 공급 물량을 50ea라고 하셨는데, > >현재 발주가 필요하여 연락드립니다. > >50ea + 저번 제작해 주신 케이블 50ea 의 공급가격 및 발주 시 수령가능한 일수가 > >어떻게 될까 싶어 문의 남깁니다. > >아 그리고 저번 케이블 제작하신 것 보니 실리콘으로 되어 있던데 수축케이블 같을 걸로 하면 단가가 어떻게 되는 지도 궁금합니다. > >접착면이 약해서....ㅜ,.ㅜ > > >연락 부탁드립니다. > >011-9567-3652 >hunter@hminteractive.com
2991 답변완료실시간 uart로 넘어오는 데이타 처리방법.. 신동관 2009-05-25 1,459
안녕하세요.. 일전에 문의 드려서 답변을 받았습니다. 주말동안 해 보았지만 잘 구현이 안되네요. M128-B보드를 사용합니다. UART0은 RS485로 연속적인 데이타를 받습니다. 예) 838778790000000000000000000000000F 플레이스테이션 조이스틱의 변경된 값입니다. 이것으로 DC모터를 제어 할려고 합니다. UART1은 모니터링을 합니다. UART0로 수신한 값을 문제없이 UART1으로 전송하였고 지금은 UART0로 수신한 값을 배열에 넣은 다음 UART1으로 보내는데 까지는 성공하였습니다. 문제는 배열값을 다른변수로 넘기려 하면 데이타가 깨져버립니다. 현제 성공한 샘플입니다. ICCAVR 7.20데모버젼에서 만들어 보았습니다. volatile unsigned char in; volatile unsigned char in_buf[17]; volatile int i=0, j=0; while(1){ // PS2전송값 사이에는 "\\n\\r" 이 들어감.? // 0x0A \\n // 0x0D \\r // memset(in_buf, 0, sizeof(in_buf)); 배열 초기화 // 838778790000000000000000000000000F 연속적으로 입력되는 데이타 형식 in = getchar(); in_buf[i++] = in; if ( in_buf[i] == '\\n' ) { for (j=0; j<i; j++){ printf("%c",in_buf[j]); } // for end i=0; } // if end } // while end } // main end 만약 LX1=in_buf[0]; LX2=in_buf[1]; LY1=in_buf[2]; LY2=in_buf[3]; 이렇게 하면 출력데이타가 깨져버립니다. 음.. 방법이 없을까요..
관리자 답변 신동관 · 2009-05-25
이렇게 해봐도 안되네요.. 아.. 다시 C언어 책보고 있습니다. 흐미.. 10년이 넘었네요. volatile unsigned char in; volatile unsigned char in_buf[17]; volatile int i=0, j=0; volatile unsigned char R1, R2, R3, R4, R5, R6, R7, R8, R9, R10, R11, R12, R13, R14, R15, R16, R17; while(1){ // PS2전송값 사이에는 "\\n\\r" 이 들어감.? // 0x0A \\n // 0x0D \\r // memset(in_buf, 0, sizeof(in_buf)); 배열 초기화 // 838778790000000000000000000000000F 연속적으로 입력되는 데이타 형식 in = getchar(); in_buf[i++] = in; if ( in_buf[i] == '\\n' ) { R1 = in_buf[0]; R2 = in_buf[1]; R3 = in_buf[2]; R4 = in_buf[3]; R5 = in_buf[4]; R6 = in_buf[5]; R7 = in_buf[6]; R8 = in_buf[7]; R9 = in_buf[8]; R10 = in_buf[9]; R11 = in_buf[10]; R12 = in_buf[11]; R13 = in_buf[12]; R14 = in_buf[13]; R15 = in_buf[14]; R16 = in_buf[15]; R17 = in_buf[16]; printf("%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c",R1,R2,R3,R4,R5,R6,R7,R8,R9,R10,R11,R12,R13,R14,R15,R16,R17); i=0; } // if end } // while end } // main end
2990 답변완료AM-RFMOD질문입니다. 조용상 2009-05-25 1,351
시리얼 통신으로 mp3를 전송하여 재생하는 장치를 만들고 있습니다. 유선으로 연결해서는 소리가 잘 나는 것을 확인했구요. 그런데 RF모듈을 연결하면 소리가 나지 않습니다. 각 모듈 모두 제대로 작동하는 것 확인했구요. 문자를 받아보니 정보를 빼먹고 받는 현상이 벌어집니다. patch start!...................................................................................... ..................................................................................................... ......................................................................................patch complete 이렇게 받아야 하는데(유선에서는 이렇게 됩니다.) 무선으로 연결하면 patc..........................................omplete 이렇게 나옵니다. 그것도 그때그때 다른 결과가 나오구요. 모듈 세팅은 기본값에 BD=57600 채널=33 만 변경해서 사용했습니다. 이것들을 기본값으로 바꾸어 봐도 결과는 마찬가지더군요. 무엇이 문제일까요?
관리자 답변 N.T.C · 2009-05-25
안녕하세요? 고객님, 저희 NewTC 제품을 이용하여 주셔서 감사합니다. 테스트 하신 결과가 정확합니다. 잘 테스트 하신 겁니다. 데이터 전송 속도는 셋팅이 가능하지만, 사실 thruput이 115,200bps로 셋팅한다고 해서 115,200bps가 나오진 않습니다. 그 이유는 1바이트 보내는 데, 여러가지 이유로 많은 바이트를 할당한 패킷을 보내기 때문에 그렇습니다. 셋팅하기에 따라서 한번에 최대 26바이트를 보낼 수 있지만 그걸 한 번 보내려면 보내는 데 소요되는 바이트가 또 10~20바이트 정도 소요됩니다. 본 RFMOD는 데이터를 통해 시스템을 제어하는 용도로 제작된 것입니다. 다만, 다양한 속도 지원과 한 번에 보내는 바이트나, 속도 변경 등 여러가지 기능을 지원하고 있습니다. 쓰시려는 목적에는 부합되지 않는 것 같습니다. 쓰려는 목적에는 블루투스 데이터 통신 모듈을 사용하실 것을 권고합니다. 감사합니다. >시리얼 통신으로 mp3를 전송하여 재생하는 장치를 만들고 있습니다. > >유선으로 연결해서는 소리가 잘 나는 것을 확인했구요. > >그런데 RF모듈을 연결하면 소리가 나지 않습니다. > >각 모듈 모두 제대로 작동하는 것 확인했구요. > >문자를 받아보니 정보를 빼먹고 받는 현상이 벌어집니다. > >patch start!...................................................................................... >..................................................................................................... >......................................................................................patch complete > >이렇게 받아야 하는데(유선에서는 이렇게 됩니다.) > >무선으로 연결하면 >patc..........................................omplete > >이렇게 나옵니다. 그것도 그때그때 다른 결과가 나오구요. >모듈 세팅은 기본값에 BD=57600 채널=33 만 변경해서 사용했습니다. >이것들을 기본값으로 바꾸어 봐도 결과는 마찬가지더군요. > >무엇이 문제일까요? > >
2989 답변완료라인트레이서 질문 이형선 2009-05-25 1,401
다름이 아니라 프로그래밍부분에 대해서 질문 좀 드릴려고 합니다. 센서부 소스를 보고 라인트레이서에 넣어봤습니다 모터부 소스를 보고 라인트레이서에 넣어봤습니다 두부분다 작동에는 이상이 없었습니다 두 소스를 취합하여 한 소스를 만드는 부분을 잘 모르겠습니다 어떻게 해야하는지요?? 답변 좀 꼭 부탁드립니다.
관리자 답변 N.T.C · 2009-05-25
안녕하세요...고객님... 모터부 소스가 잘 돌아가신다면 모터부의 소스중 switch() case: 문에서 경우의 수를 센서부의 값에 따라 나누면 됩니다. 감사합니다. >다름이 아니라 > >프로그래밍부분에 대해서 질문 좀 드릴려고 합니다. > >센서부 소스를 보고 라인트레이서에 넣어봤습니다 > >모터부 소스를 보고 라인트레이서에 넣어봤습니다 > >두부분다 작동에는 이상이 없었습니다 > >두 소스를 취합하여 > >한 소스를 만드는 부분을 잘 모르겠습니다 > >어떻게 해야하는지요?? > >답변 좀 꼭 부탁드립니다.