로그인 | 회원가입 | 주문 조회
총 10,748개의 질문이 있습니다.
번호 제목 작성자 등록일 조회
5483 답변완료스테핑 모터 클럭 구동 모듈 AM-MS2 김동인 2010-07-15 1,446
스테핑 모터 클럭 구동 모듈 AM-MS2의 예제 중 코드비전을 사용한 것은 없네요. 코드비전을 사용한 예제 부탁 드립니다.
관리자 답변 NEWTC · 2010-07-15
안녕하세요? 고객님, 저희 뉴티씨 제품을 이용하여 주셔서 감사드립니다. 자료실->기존자료실에 가셔서 MS2 라고 검색하시면 5번에 원하시는 소스가 있습니다. 참고하시기 바랍니다. 감사합니다. > >스테핑 모터 클럭 구동 모듈 AM-MS2의 예제 중 > >코드비전을 사용한 것은 없네요. > >코드비전을 사용한 예제 부탁 드립니다.
5482 답변완료AB-M128-A 와 AM-CSV(서보 모터 모듈)연결 후 서모 모터 구동시 AB-M128-A이 꺼지는 현상. 이원용 2010-07-14 1,399
AB-M128-A 와 AM-CSV(서보 모터 모듈)연결 후 서모 모터 구동시 AB-M128-A이 꺼지는 현상. AB-M128-A 의 PORTA에 AM-CSV 를 연결한 후 AM-CSV에 서보 모터를 6개 연결하였습니다. 제가 지금 로봇 팔을 만들고 있는데 모듈에 연결한 6개의 서보 모터를 동시에 제어 하려고 합니다. 동시에 서보 모터를 제어 하려고 할 경우 서보 모터가 덜덜 거리는 현상이 발생하더니 AB-M128-A 가 꺼져 버리는 현상이 발생합니다. 서보 모터가 너무 한 모듈에 많이 꼽아서 그런거 같아 AM-CSV를 1개 더 구입하여 AB-M128-A의 PORTA와 PORTB 에 각각 서보 모터를 1개씩 장착하여 총 2개의 서모 모터 모듈을 가지고 PORTA 의 모듈에 서보 모터 3개 PORTB 의 모듈에 서보 모터 3개를 각각 연결 하였습니다. 그리고 다시 제어 하려고 하니 모듈을 1개 사용하였을 경우와 똑같은 현상이 발생 하였습니다. 동시에 제어할때 전류가 모잘라서 그러는건지.. 정확한 발생원인과 해결방법이 꼭!!!!!! 필요합니다. 제발 알려 주세요!!
관리자 답변 NEWTC · 2010-07-14
안녕하세요 당연히 모터수가 늘어난 만큼 전류를 더 공급해줘야 합니다. 사용하시는 아탑터의 제원이 어떻게 되시는지요? 본사에서 판매하는 서보모터는 한개당 180mA 를 소모합니다. 서보 6개를 사용하시면 180mA*6 = 1.08A 를 소모하면 AB-M128-A 소모하는 전류 대략 200mA 정도 잡으시면 1.08A +200mA = 1.28A 소모한다고 보시면 됩니다. 아탑터를 12V 2A 짜리 구입하여 전압을 인가 하셔야합니다. 자주 그런현상으로 보드에 전원이 꺼지면 칩에 무리가 갈 수 있습니다. 수고하세요 >AB-M128-A 와 AM-CSV(서보 모터 모듈)연결 후 서모 모터 구동시 AB-M128-A이 꺼지는 현상. > >AB-M128-A 의 PORTA에 AM-CSV 를 연결한 후 AM-CSV에 서보 모터를 6개 연결하였습니다. > >제가 지금 로봇 팔을 만들고 있는데 모듈에 연결한 6개의 서보 모터를 동시에 제어 하려고 합니다. > >동시에 서보 모터를 제어 하려고 할 경우 서보 모터가 덜덜 거리는 현상이 발생하더니 > >AB-M128-A 가 꺼져 버리는 현상이 발생합니다. > >서보 모터가 너무 한 모듈에 많이 꼽아서 그런거 같아 AM-CSV를 1개 더 구입하여 > >AB-M128-A의 PORTA와 PORTB 에 각각 서보 모터를 1개씩 장착하여 총 2개의 서모 모터 모듈을 > >가지고 PORTA 의 모듈에 서보 모터 3개 PORTB 의 모듈에 서보 모터 3개를 각각 연결 하였습니다. > >그리고 다시 제어 하려고 하니 모듈을 1개 사용하였을 경우와 똑같은 현상이 발생 하였습니다. > >동시에 제어할때 전류가 모잘라서 그러는건지.. > >정확한 발생원인과 해결방법이 꼭!!!!!! 필요합니다. > >제발 알려 주세요!!
5481 답변완료FM-BB2 Manual 정주환 2010-07-14 1,474
Altera EPM3064AT44에 프로그램을 다운로드 하려고 하는데, Error: Can't access JTAG chain Error: Operation failed 이 메세지가 뜹니다. Quartus II 를 설치하고 Hardware Setup에서 ByteBlasterII[LPT]를 선택하면 되야 되는거 아닌가요? 홈페이지에 올려준 메뉴얼이 굉장히 부실하여, 혼자서는 도저히 알아낼 방법이 없군요.. 성의있는 답변 부탁드립니다.
관리자 답변 NEWTC · 2010-07-14
안녕하세요? 고객님, 저희 뉴티씨 제품을 이용하여 주셔서 감사합니다. 제품 메뉴얼만 보시면 대략적인 내용만 나옵니다. 하지만, 자료실에 가시면 FPGA 관련 강좌들도 있습니다. 대략 80페이지 정도 되는 강좌 1을 보시면, 컴파일러 사용법과 보드에 다운로드 하는 방법이 나와 있습니다. 물론, FPGA 칩은 킷트에서 사용하는 것을 선택하도록 되어 있지만, 사용하시는 FPGA 칩이 다르면, 그것으로 선택하는 부분만 체크 하여 보시면 될 것 같습니다. - 강좌 1 링크- http://www.newtc.co.kr/download/FB-CY6/NTC_FPGA_강좌_01_컴파일러_사용법_및_다운로드.pdf 롬을 장착하여 쓰신다면 Active Serial로 다운로드 하여 사용하시거나, 아니면, JTAG으로 바로 FPGA 램 영역에 다운로드 하여 쓰실 수 있겠습니다. 20페이지 이후를 보시면서 참고하시면 보다 자세히 보실 수 있겠습니다. 메뉴얼은 참고하실 내용으로 부실 할 수 있지만, 강좌를 참고하시면 충분한 자료가 되실 듯 합니다. 그리고, 정상적으로 했는 데도 간혹 그런 경우가 있을 수 있습니다. 쓰다보면 느끼지만, 알테라 툴 자체가 그런 경우가 있는 것 같습니다. 그럴 때는 PC를 껏다가 켜서 하면 잘 잡히더군요. 그리고, 컴퓨터 껏다 켜면서 DEL키 눌러서 보통 들어가는 CMOS setup에서 Pheripheral 쪽에서 printer 포트를 0x378번지, LPT1, ECP, 인터럽트 IRQ7으로 잡으셔야 합니다 감사합니다. > >Altera EPM3064AT44에 프로그램을 다운로드 하려고 하는데, >Error: Can't access JTAG chain >Error: Operation failed >이 메세지가 뜹니다. > >Quartus II 를 설치하고 >Hardware Setup에서 ByteBlasterII[LPT]를 선택하면 >되야 되는거 아닌가요? > >홈페이지에 올려준 메뉴얼이 굉장히 부실하여, >혼자서는 도저히 알아낼 방법이 없군요.. > >성의있는 답변 부탁드립니다.
5480 답변완료Serial LCD 420 제품문의 박종래 2010-07-14 1,474
Serial LCD 420 모듈 (4*20) 이 제품은 영문 4줄까지 표시가 가능한것인가요?? 아님 제품 사진처럼 영문 2줄만 표시가 가능한 것인지요??
관리자 답변 NEWTC · 2010-07-14
안녕하세요 아래링크는 메뉴얼입니다. 한번읽어 보시길 바랍니다. http://www.newtc.co.kr/product_AM-SLCD420BL.php 4줄 가능합니다. 이미지에는 글자 2줄에 '----' 표시된 2줄 총 4줄입니다. lcd종류( 2*16,4*20)에 따라 뒷면에 점퍼 셋팅으로 가능합니다. 수고하세요 >Serial LCD 420 모듈 (4*20) > >이 제품은 영문 4줄까지 표시가 가능한것인가요?? > >아님 제품 사진처럼 영문 2줄만 표시가 가능한 것인지요?? > >
5479 답변완료AVR Studio 환경에서 다운로드 에러 입니다. AVR Studio 2010-07-14 1,440
AD-USBISP-L 기종 구입 에러 메세지 Signature does not match selected device 라고 나옵니다. 포트도 이상없이 연결된것 확인했습니다. com포트 잡는것도 8 이하로 매칭시켜 테스트 하였는데도 이러한 현상이 나오네요. 빠른 답변 부탁드립니다.
관리자 답변 NEWTC · 2010-07-14
안녕하세요 디바이스 선택이 틀리거나 , 컨넥터가 연결 안될때 나올수있는 에러 메세지 입니다. AVRstudio 와 USBISP 연결이 된 것 같아보입니다. 그러나, USBISP 와 타겟 CPU 연결되지 않는듯합니다. 사용하는 타겟보드가 어떤한 것을 사용하시면, 자작된 보드에 경우 연결이 정확히 되었는지 확인이 안되는군요, 수고하세요 >AD-USBISP-L 기종 구입 > >에러 메세지 > >Signature does not match selected device 라고 나옵니다. > >포트도 이상없이 연결된것 확인했습니다. > >com포트 잡는것도 8 이하로 매칭시켜 테스트 하였는데도 이러한 현상이 나오네요. > >빠른 답변 부탁드립니다.
5478 답변완료kt-m128을 쓰는 사람입니다. 강완석 2010-07-14 1,344
#include <mega128.h> #include <ktm128.h> #include <delay.h> void main(void) { PORTA=0x00; DDRA=0xFF; PORTB=0x00; DDRB=0xFF; PORTC=0x00; DDRC=0xFF; PORTD=0x00; DDRD=0xFF; PORTE=0x00; DDRE=0xFF; PORTF=0x00; DDRF=0xFF; PORTG=0x00; DDRG=0x1F; // Timer/Counter 0 initialization // Clock source: System Clock // Clock value: Timer 0 Stopped // Mode: Normal top=FFh // OC0 output: Disconnected ASSR=0x00; TCCR0=0x00; TCNT0=0x00; OCR0=0x00; // Timer/Counter 1 initialization // Clock source: System Clock // Clock value: Timer 1 Stopped // Mode: Normal top=FFFFh // OC1A output: Discon. // OC1B output: Discon. // OC1C output: Discon. // Noise Canceler: Off // Input Capture on Falling Edge // Timer 1 Overflow Interrupt: Off // Input Capture Interrupt: Off // Compare A Match Interrupt: Off // Compare B Match Interrupt: Off // Compare C Match Interrupt: Off TCCR1A=0x00; TCCR1B=0x00; TCNT1H=0x00; TCNT1L=0x00; ICR1H=0x00; ICR1L=0x00; OCR1AH=0x00; OCR1AL=0x00; OCR1BH=0x00; OCR1BL=0x00; OCR1CH=0x00; OCR1CL=0x00; // Timer/Counter 2 initialization // Clock source: System Clock // Clock value: Timer 2 Stopped // Mode: Normal top=FFh // OC2 output: Disconnected TCCR2=0x00; TCNT2=0x00; OCR2=0x00; // Timer/Counter 3 initialization // Clock source: System Clock // Clock value: Timer 3 Stopped // Mode: Normal top=FFFFh // Noise Canceler: Off // Input Capture on Falling Edge // OC3A output: Discon. // OC3B output: Discon. // OC3C output: Discon. // Timer 3 Overflow Interrupt: Off // Input Capture Interrupt: Off // Compare A Match Interrupt: Off // Compare B Match Interrupt: Off // Compare C Match Interrupt: Off TCCR3A=0x00; TCCR3B=0x00; TCNT3H=0x00; TCNT3L=0x00; ICR3H=0x00; ICR3L=0x00; OCR3AH=0x00; OCR3AL=0x00; OCR3BH=0x00; OCR3BL=0x00; OCR3CH=0x00; OCR3CL=0x00; // External Interrupt(s) initialization // INT0: Off // INT1: Off // INT2: Off // INT3: Off // INT4: Off // INT5: Off // INT6: Off // INT7: Off EICRA=0x00; EICRB=0x00; EIMSK=0x00; // Timer(s)/Counter(s) Interrupt(s) initialization TIMSK=0x00; ETIMSK=0x00; // Analog Comparator initialization // Analog Comparator: Off // Analog Comparator Input Capture by Timer/Counter 1: Off ACSR=0x80; SFIOR=0x00; while (1) { EX_LED = 0x00; delay_ms(50000); EX_LED = 0xff; delay_ms(60000); }; } 코딩은 이렇게 했습니다.
관리자 답변 NEWTC · 2010-07-14
안녕하세요 // External SRAM page configuration: // - / 0000h - FFFFh // Lower page wait state(s): None // Upper page wait state(s): None MCUCR=0x80; XMCRA=0x00; kt-m128는 거의 모든 출력IO 들이 어드레스 맵으로 잡혀져 있습니다. 위 부분은 외부어드레스를 사용하다는 레지스터 입니다. 코드중에 빠져 있습니다. CD 에 제공되는 코드와 비교해 보시길 바랍니다. 감사합니다. >#include <mega128.h> >#include <ktm128.h> >#include <delay.h> > > >void main(void) >{ > >PORTA=0x00; >DDRA=0xFF; > >PORTB=0x00; >DDRB=0xFF; > >PORTC=0x00; >DDRC=0xFF; > >PORTD=0x00; >DDRD=0xFF; > >PORTE=0x00; >DDRE=0xFF; > > >PORTF=0x00; >DDRF=0xFF; > >PORTG=0x00; >DDRG=0x1F; > >// Timer/Counter 0 initialization >// Clock source: System Clock >// Clock value: Timer 0 Stopped >// Mode: Normal top=FFh >// OC0 output: Disconnected >ASSR=0x00; >TCCR0=0x00; >TCNT0=0x00; >OCR0=0x00; > >// Timer/Counter 1 initialization >// Clock source: System Clock >// Clock value: Timer 1 Stopped >// Mode: Normal top=FFFFh >// OC1A output: Discon. >// OC1B output: Discon. >// OC1C output: Discon. >// Noise Canceler: Off >// Input Capture on Falling Edge >// Timer 1 Overflow Interrupt: Off >// Input Capture Interrupt: Off >// Compare A Match Interrupt: Off >// Compare B Match Interrupt: Off >// Compare C Match Interrupt: Off >TCCR1A=0x00; >TCCR1B=0x00; >TCNT1H=0x00; >TCNT1L=0x00; >ICR1H=0x00; >ICR1L=0x00; >OCR1AH=0x00; >OCR1AL=0x00; >OCR1BH=0x00; >OCR1BL=0x00; >OCR1CH=0x00; >OCR1CL=0x00; > >// Timer/Counter 2 initialization >// Clock source: System Clock >// Clock value: Timer 2 Stopped >// Mode: Normal top=FFh >// OC2 output: Disconnected >TCCR2=0x00; >TCNT2=0x00; >OCR2=0x00; > >// Timer/Counter 3 initialization >// Clock source: System Clock >// Clock value: Timer 3 Stopped >// Mode: Normal top=FFFFh >// Noise Canceler: Off >// Input Capture on Falling Edge >// OC3A output: Discon. >// OC3B output: Discon. >// OC3C output: Discon. >// Timer 3 Overflow Interrupt: Off >// Input Capture Interrupt: Off >// Compare A Match Interrupt: Off >// Compare B Match Interrupt: Off >// Compare C Match Interrupt: Off >TCCR3A=0x00; >TCCR3B=0x00; >TCNT3H=0x00; >TCNT3L=0x00; >ICR3H=0x00; >ICR3L=0x00; >OCR3AH=0x00; >OCR3AL=0x00; >OCR3BH=0x00; >OCR3BL=0x00; >OCR3CH=0x00; >OCR3CL=0x00; > >// External Interrupt(s) initialization >// INT0: Off >// INT1: Off >// INT2: Off >// INT3: Off >// INT4: Off >// INT5: Off >// INT6: Off >// INT7: Off >EICRA=0x00; >EICRB=0x00; >EIMSK=0x00; > >// Timer(s)/Counter(s) Interrupt(s) initialization >TIMSK=0x00; >ETIMSK=0x00; > >// Analog Comparator initialization >// Analog Comparator: Off >// Analog Comparator Input Capture by Timer/Counter 1: Off >ACSR=0x80; >SFIOR=0x00; > >while (1) > { > EX_LED = 0x00; > delay_ms(50000); > EX_LED = 0xff; > delay_ms(60000); > > }; >} > >코딩은 이렇게 했습니다.
5477 답변완료AM-DC2-2D제어에 대하여 매곡 2010-07-14 1,280
수고하십니다! AM-DC2-2D 모델에 관심이 있어 몇가지 궁금증이 있어 글 올림니다. 자작 시제품을 제작중이라 이 제품이 제가 생각중인 것과 유사하여 질문합니다. 전자를 전공하지도 않은 초보 수준이라 생각하시고 답변좀 부탁드림니다. DC 12V 모터와 정방향, 역방향과 속도제어만 사용할 예정입니다. 1.모터1과 모터2는 1개의 제어에 동시 동작하는지 여부 2.+5V 는 자체 출역인지 아니면 별도의 전원을 공급하는지 여부 3.커넥터 핀 입력방법은 -. 정방향 구동시 커넥터핀 몇번에 +5V인지 0V를 걸어 주는지 여부? -. 역방향 구동시 커넥터 몇번에 +5V인지 0V를 걸어 주는지 여부? -. SIOW 구동시 커넥터 몇번에 +5V인지 0V를 걸어 주는지 여부? -. FAST 구동시 커넥터 몇번에 +5V인지 0V를 걸어 주는지 여부? 질문이 맞는지 모르겠습니다. 초보수준임을 감안하시어 답변 부탁드립니다. 감사 합니다
관리자 답변 NEWTC · 2010-07-14
안녕하세요 http://www.newtc.co.kr/product_AM-DC2-2D.php 메뉴얼에 보시면 전원공급이라는 부분에 모터 전원을 인가 하셔야합니다. 컨트롤신호라는 부분에는 DC 전압 +5볼트 도 별도로 공급하셔야합니다. PWM 5볼트 // 모터 속도 조절입니다. 정역회전만 사용하시다면 5볼트인가 ENABLE 0볼트 // 모터 드라이버 ON/FF DIR 5볼트 또는 0 볼트 // 정역회전입니다. 수고하세요 >수고하십니다! >AM-DC2-2D 모델에 >관심이 있어 몇가지 궁금증이 있어 글 올림니다. >자작 시제품을 제작중이라 이 제품이 제가 생각중인 것과 유사하여 질문합니다. >전자를 전공하지도 않은 초보 수준이라 생각하시고 답변좀 부탁드림니다. > >DC 12V 모터와 정방향, 역방향과 속도제어만 사용할 예정입니다. > >1.모터1과 모터2는 1개의 제어에 동시 동작하는지 여부 >2.+5V 는 자체 출역인지 아니면 별도의 전원을 공급하는지 여부 >3.커넥터 핀 입력방법은 > -. 정방향 구동시 커넥터핀 몇번에 +5V인지 0V를 걸어 주는지 여부? > -. 역방향 구동시 커넥터 몇번에 +5V인지 0V를 걸어 주는지 여부? > -. SIOW 구동시 커넥터 몇번에 +5V인지 0V를 걸어 주는지 여부? > -. FAST 구동시 커넥터 몇번에 +5V인지 0V를 걸어 주는지 여부? > >질문이 맞는지 모르겠습니다. >초보수준임을 감안하시어 답변 부탁드립니다. >감사 합니다
5476 답변완료스마트그리드에 궁금해서요, 리스 2010-07-13 1,343
저희가 이번에 스마트 그리드에 대해서 졸업작품을 해야하는데 혹시 뉴티씨 제품중에도 스마트 그리드와 관련된 제품들이 잇나해서요. 가격때도 알고싶은데요
관리자 답변 NEWTC · 2010-07-14
안녕하세요 스마트 그리드에 관련된 제품이 없습니다. 하지만, 그 내부에서 ATMEGA128과 같은 AVR은 내부에서 컨트롤러로서 사용이 가능할 것 같습니다. 수고하세요 >저희가 이번에 스마트 그리드에 대해서 >졸업작품을 해야하는데 >혹시 뉴티씨 제품중에도 스마트 그리드와 관련된 >제품들이 잇나해서요. 가격때도 알고싶은데요 >
5475 답변완료usart 사용할려는데요 한희주 2010-07-13 1,354
KD-128PRO 개발 키드와 usbisp커넥터 구입해서요 usart0 송신 실험 하고있는데요 usart0 사용할려면 cpu묘듈과 메인보드 두개중 메인보드에 있는 usart0 4핀을 4핀커넥터로 usbisp커넥터4핀구멍에 연결해서 컴퓨터에 꼿으면되는건가요? cpu모듈에 있는 6핀짜리 isp도 usbisp에 연결을 해야 하는건가요? 아니면 usart0 4핀만 연결하면되나요? 두가지 방법 모두 해봤는데 컴퓨터 에선 인식을 하는데 코드비전 터미널창을 통해 확인할려니 첨부 이미지처럼 나오네요;; 혹시 cpu모듈에 있는 3핀짜리 uart0 이란곳에 연결을해야하는건가요?;;
관리자 답변 NEWTC · 2010-07-14
안녕하세요 구매하신 usbisp 는 ISP 기능과 UART 기능이 있습니다. 그러나 둘중 하나만 사용하셔야 합니다. 메인보드에 있는 4핀에 연결해서 UART기능을 사용할수있습니다. 다운로드 6핀과 UART 4핀 은 둘중 사용하시는 것만 연결해서 사용해야합니다. 코드비젼일 경우 다운로드 COM포트도 안쓰는 것로 변경후 터미널을 컴포트를 &#47583;추시길 바랍니다. 이미지의 에러 메세지는 현재 ISP포트와 겹치다는 내용입니다. >혹시 cpu모듈에 있는 3핀짜리 uart0 이란곳에 연결을해야하는건가요?;; 3핀은 RS232 포트로 연결하여 사용할수 있습니다. 수고하세요 >KD-128PRO 개발 키드와 usbisp커넥터 구입해서요 > >usart0 송신 실험 하고있는데요 > >usart0 사용할려면 cpu묘듈과 메인보드 두개중 메인보드에 있는 usart0 4핀을 4핀커넥터로 usbisp커넥터4핀구멍에 연결해서 > >컴퓨터에 꼿으면되는건가요? > >cpu모듈에 있는 6핀짜리 isp도 usbisp에 연결을 해야 하는건가요? 아니면 usart0 4핀만 연결하면되나요? > >두가지 방법 모두 해봤는데 컴퓨터 에선 인식을 하는데 코드비전 터미널창을 통해 확인할려니 첨부 이미지처럼 나오네요;; > >혹시 cpu모듈에 있는 3핀짜리 uart0 이란곳에 연결을해야하는건가요?;;
5474 답변완료AVR MEGA 128 개발 보드 김원봉 2010-07-13 1,404
AVR MEGA 128 개발 보드(소형) 모델 AB-M128 을 쓰고 있는데요, 외부전원일때 12V가 필요하잖아요. 그럼 입력전류는 몇 A 인지좀 가르쳐 주세요.
관리자 답변 NEWTC · 2010-07-14
안녕하세요 사용하는 부하에 따라 틀립니다. 보드만 사용할경우 300mA 정도면 사용이 가능합니다. 모터,LCD 전류소모가 큰것을 사용할 계획이라면 12V 1A 이상을 사용하시면 됩니다. 수고하세요 >AVR MEGA 128 개발 보드(소형) 모델 AB-M128 을 쓰고 있는데요, 외부전원일때 12V가 필요하잖아요. 그럼 입력전류는 몇 A 인지좀 가르쳐 주세요. >
5473 답변완료kt-m128을 쓰는 사람입니다. 강완석 2010-07-13 1,354
음 기본강좌에 나와있는데로 헤더파일 만들었구요 LED구동 시킬려는데 그 녹색 LED만 되고 노란색 LED8개 달려있는건 구동이 안되요 정말 그 이유를 알고 싶거든요!! 좀 가르쳐주세요!!
관리자 답변 강완석 · 2010-07-13
아 그리고 코드비젼 사용합니다.
5472 답변완료ATMEGA128에서 각각 포트에서 나오는 전류가 어느정도인지요 윤지섭 2010-07-13 1,305
ATMEGA128 에서 각각 포트에서 나오는 전류가 어느정도인지요 저희가 PORTB PORTA에 각각 플랫케이블에 연결한후에 DC 모터(MTS-A410SE)를 각각 3개 2개를 달았는데 조작하는 과정에서 전류가 부족한 것인지 ATMEGA128 에서 전원 온 되는 불도 약해지고 각각의 DC 모터는 움직이지 않습니다. 일단은 불도 약해지는 것으로 봐서 전류가 부족한 것 같은데 각각의 포트별로 나오는 전류와 전압이 궁금합니다. 그리고 혹시 포트별로 전류나 전압이 높아질수 있는 방법이 있는지 궁금합니다
관리자 답변 NEWTC · 2010-07-13
안녕하세요 포트에 바로 DC 모터를 연결을 해다는 말인가요 ? 직접 물려서 연결한 이유를 잘모르겠네여.. 모터를 직접 연결하여 사용하면 칩이 망가질수 있습니다. 포트에서는 20~40mA 정도만 나옵니다. LED 2개정도 킬수 능력 뿐이 없습니다. 보통은 모터를 드라이버를 이용하여 컨트롤 합니다.; 수고하세요 >ATMEGA128 에서 각각 포트에서 나오는 전류가 어느정도인지요 > >저희가 PORTB PORTA에 각각 플랫케이블에 연결한후에 DC 모터(MTS-A410SE)를 각각 3개 2개를 달았는데 > >조작하는 과정에서 전류가 부족한 것인지 ATMEGA128 에서 전원 온 되는 불도 약해지고 > >각각의 DC 모터는 움직이지 않습니다. > >일단은 불도 약해지는 것으로 봐서 전류가 부족한 것 같은데 > >각각의 포트별로 나오는 전류와 전압이 궁금합니다. > >그리고 혹시 포트별로 전류나 전압이 높아질수 있는 방법이 있는지 궁금합니다
5471 답변완료SE-SM9K 질문있습니다 경진곤 2010-07-13 1,261
안녕하세요. 기존에는 CS2P모듈이랑 SE-SM243을 사용해서 구동했었는데요. 스텝모터를 그대로 SE-SM9K로 바꿔서 사용할 수 있나요? 만약 사용하게 된다면 CS2P 드라이버에 전압과 전류값을 얼마정도 줘야 하는지 궁금합니다
관리자 답변 NEWTC · 2010-07-13
안녕하세요 CS2P에 SE-SM9K 모터 사용이 가능합니다. 전압은 12 ~24V 전류는 1~2A 인가하시면 됩니다. SE-SM9K 이 모터의 최대 스펙은 24볼트에 3A 입니다. 수고하세요 >안녕하세요. > >기존에는 CS2P모듈이랑 SE-SM243을 사용해서 구동했었는데요. > >스텝모터를 그대로 SE-SM9K로 바꿔서 사용할 수 있나요? > >만약 사용하게 된다면 CS2P 드라이버에 전압과 전류값을 얼마정도 줘야 하는지 궁금합니다 >
5470 답변완료AM - 128PRO 제이텍 회로 관련 문의 입니다,. 강상모 2010-07-13 1,257
우선 AM 128이 제이텍이 지원이 되는지 묻고 싶고요... 된다면 간단하게 회로를 설계 했는데 ...안되내요..(멀티미터로 확인) 답글 부탁드립니다.. 제이텍을 이용해서 하고 싶은데.. 혹시 다른 회로도를 가지고 있으면 [email protected]으로 회로도를 보내주세요 ...
관리자 답변 NEWTC · 2010-07-13
안녕하세요 AM - 128PRO 안에 있는 atmega128 은 당연히 jtag을 지원합니다. 그러나 그전에 fuse bit (JTAG EN )를 변경시킨후 사용이 가능합니다. 0xffd9ef ---> 0xff19ef 변경하시길 바랍니다. 자료실에 >> 기존 자료실에 도면 또는 회로도 라고 검색하시면 보드에 관련된 도면이 나옵니다. 그걸 보시고 참고 하시길 바랍니다. 수고하세요 >우선 AM 128이 제이텍이 지원이 되는지 묻고 싶고요... > >된다면 간단하게 회로를 설계 했는데 ...안되내요..(멀티미터로 확인) > >답글 부탁드립니다.. > >제이텍을 이용해서 하고 싶은데.. 혹시 다른 회로도를 가지고 있으면 > >[email protected]으로 회로도를 보내주세요 ...
5469 답변완료안녕하세요 AM-MS2 와 AB-M128-B 를 사용하다가 질문입니다. 유종현 2010-07-12 1,423
안녕하십니까? AB-M128-B Controller 보드와 AM-MS2 Driver를 사용하는 유저입니다. 우선 제가 잘 몰라서 기초적인 질문을 드리더라도 양해를 부탁드립니다. 그리고 미리 좋은 답변 해주실것이라 믿고 감사를 드립니다. 1. 제가 하고자 하는 것은 AB-M128-B 컨트롤 보드에 AM-MS2 Driver 3개를 연결하여 제어를 하고자 합니다. 그리고 제어하고자 하는 모터는 스테핑 모터 3A 4개와 1A 2개 입니다. 1) 여기에서 제가 AM-MS2 Driver에 3A 2개를 연결하여 쓸수 있는 것인가요? 3A 까지 지원된다고 하는것이 2축 다 동시에 3A 까지 지원이 가능한 것인지 아니면 분할해서 쓰는것이기 때문에 두개 합쳐서 3A 까지 지원된다는 것인지가 궁금합니다. 2) AB-M128-B 보드에 SMPS로 인가해야되는 전류가 모터 전체를 최대로 사용한다고 했을때 모터 전체의 합산한 값인 14A인것인가요? 그리고 만약 14A 를 인가해야 한다면 꽤 큰 전류인거 같은데 AB-M128-B 보드가 견딜수 있는 것인가요? 안된다면 AM-MS2 보드에 각각 따로 파워를 인가하면 가능할까요? 2. AM-MS2 는 3A 용 라고 되어 있는데 검색해보다가 Q&A에 아래와 같은글을 확인할수 있었습니다. http://www.newtc.co.kr/board/view.php?id=qna&page=2&sn1=&divpage=3&sn=off&ss=on&sc=off&keyword=ms2&select_arrange=headnum&desc=asc&no=13383 내용인 즉은 3A로 써있지만 실제로 설정되어 있는 값은 1.67A이니 그 이상을 사용하려면 고쳐서 사용해야 한다는 의미인것 같은데요. 저희가 가지고 있는 보드가 1.67A 인지 3A 용인지 모르겠더군요. 다만 저항이 갈검금금 이라서 추측하고 있을 뿐 잘 모르겠습니다. 만약 1.67A를 3A로 바꾸려면 그냥 택배로 보내면 되는 것인가요? 제가 어떻게 해야 하는지 답변 부탁드리겠습니다. 3. 모터 3A 짜리(오리엔탈모터 PK 266M-03A, 2상, 2.3V, 3.0A, 0.9/Step)를 하나 연결해서 돌려보았습니다. 제공해주시는 AM-MS2 예제중 AM-MS2_ATMEGA128용 Timer 를 이용한 예제 프로그램을 이용해서 타이머 숫자 1당 8uSec로 설정(16MHz 128) 하였습니다. 그런데 모터가 80uSec당 한번 움직여야 괜찮게 움직이고 그 이하는 부르르 떨기만 하고 회전하지는 않았습니다. 80uSec도 처음엔 움직이지 않고 부르르 떠는데 모터축을 살짝 돌려주면 그다음부터 잘 회전였습니다. 아주 느린 800uSec당 한펄스를 움직이면 모터가 처음에 부르르 떠는 현상은 없었습니다. 작은 모터 0.95A 짜리를 사용했을때는 부르르 떠는 현상이 없고 가변저항을 이용해 전류를 낮게 조절했을때 부르르 떠는 현상이 있는 것으로 보아 전류가 모자라는것인지 궁금합니다. 4. 예제 프로그램의 M0 ~ M3에 대해서 질문을 드립니다. 포트 번호를 보니까 M0 - 16 M1 - 4 M2 - 8 M3 - 2 의 형태를 가지는것 같습니다. 맞는 것인지요? 예제가 M0~M3 까지 통일성이 없어서 좀 헛갈리는 부분입니다. 5. 모터 속도 조절에 관하여. 모터 속도조절에 대해 어떻게 해야 하는지 궁금합니다. chapter 15의 마지막 페이지의 문제 중 속도 제어에 관련한 해답이 홈페이지나 예제에 있을까요? 그리고 delay 의 for loop 에 들어 있는 200 또는 600이 어떤 의미를 가지는지요? delay를 이용한 예제에서 한 클럭이 16MHz 일때 XDIV가 0 이면 for문의 1 클럭당 시간은 1/16M sec가 되는 것인가요? 또한 timer를 이용한 예제어서 이 for문의 딜레이의 값이 timer의 Prescale 과 관련이 있는 것인지요? 즉 prescale이 클럭 수를 다운하는데 있어서 딜레이 하는 클럭과 계산하는 클럭까지 느리게 하는것인가요? 모터 최고 속도를 2000rpm 이라고 했을때 200 pulse 에 16분주 한 경우 3200 pulse 를 넣어줄때 한바퀴가 되고 1pulse당 입력 시간은 150uSec가 됩니다. 이 속도조절은 어떻게 해야 합니까? 제가 알기로 AM-MS2 는 250kHz까지 지원되는것으로 알고 있어 3750rpm까지 가능한것으로 알고 있습니다. 제가 delay 조절을 이용해서 숫자를 조절해보면 200rpm 밖에 나오지 않는데 어떻게 더 빠르게 가능할까요? 6. 모터 0.95A 2상 2.3V, 1.8/Step 에 펄스를 주는데 있어서 16분주(M0)를 이용해서 pulse를 주게 되면 한바퀴당 200pulse * 16 분주 = 3200 pulse라는 계산이 나올것 같은데요 실제로 아래와 같은 소스로 pulse를 넣어주면 반바퀴만 돕니다. 6400 pulse를 넣어줘야 한바퀴가 도는것 같습니다.(정확히 한바퀴인지는 확인하지 못했으나 대략적으로 한바퀴 입니다.) 정말 초보적인 질문일지 모르겠지만 어떤 이유로 6400 pulse당 한바퀴가 도는지 궁금합니다. 혹시 대답해주실수 있으실까요? ------------------------------------ < 프로그램 > 예제에 Count 변수를 하나 넣어서 원하는 pulse수만 움직이도록 프로그래밍하였습니다. ------------------------------------ // Stepping Motor Control Application // Target : M128 // Crystal: 16Mhz // // Made by New Technology Company(N.T.C) in Korea. // DAEWOO RYU // Email : [email protected] // 82-2-704-4774(TEL), 82-2-704-4733(FAX) // http://www.NewTC.co.kr // /* 마이크로 스텝드라이버 구동 소스 포트 연결 Enable : PORTB 7번핀 Mode1 : PORTB 5번핀 Mode0 : PORTB 4번핀 R_DIR : PORTB 3번핀 R_CLK : PORTB 2번핀 L_DIR : PORTB 1번핀 L_CLK : PORTB 0번핀 */ #include <iom128v.h> #include <macros.h> #include <stdio.h> #define MOTOR_PORT PORTC // 스테핑 모터 연결 포트 #define MOTOR_PORT_DDR DDRC // 스테핑 모터 연결 포트의 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|0x08) void port_init(void) { PORTA = 0x00; DDRA = 0x03; PORTB = 0x00; DDRB = 0x00; PORTC = 0x00; DDRC = 0xff; PORTD = 0x00; DDRD = 0xff; PORTE = 0x00; DDRE = 0x00; PORTF = 0x00; DDRF = 0x00; PORTG = 0x00; DDRG = 0x03; } //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 } int putchar(char c) { while (((UCSR0A>>UDRE0)&0x01) == 0) ; // UDRE, data register empty UDR0 = c; return c; } int getchar(void) { while ((UCSR0A & 0x80) == 0); return UDR0; } void delay(int n) { volatile int i,j; for(i=1;i<=n;i++) { for(j=1;j<200;j++); } } /* main function-----------------------------------*/ void main(void) { volatile int Count = 0; init_devices(); //insert your functional code here... printf(" \\n\\n\\rStepping Motor test program...\\n\\r"); MOTOR_PORT_DDR = 0xff; MOTOR_ENABLE; MOTOR_STEP_M0; MOTOR_LEFT_CCW; MOTOR_RIGHT_CCW; delay(100); /* 딜레이로 마이크로 스텝 드라이버 구동 */ while(1){ // PORTG++; MOTOR_LEFT_CLK; MOTOR_RIGHT_CLK; delay(1); if(Count >= 6400) break; Count++; } } ----------------------------------- 좋은 답변 기다리겠습니다. 읽어주셔서 감사합니다.
관리자 답변 NEWTC · 2010-07-12
안녕하세요 1/2. 스텝모터 드라이버는 한쪽당 1.5A 를 사용이 가능합니다. 계산상 최대 맥스값 1.67A 입니다. - 저항 값을 변경하면 최대 3A 까지 가능합니다. 방열 심하여 방열판을 부착시켜야합니다. 3. 모터에 스펙은 보시면 인가 되는 전압이 적혀있습니다. 보통 사용하시는 스텝 모터는 12볼트/24볼트용 나뉘어져 있습니다. 24볼트용 스텝모터도 12볼트에서 사용이 가능하나 최대 토크및 RPM 사용할수 없습니다. 빠른 RPM은 가속 테이블을 구현하여 합니다. 즉 저속에서 천천히 고속으로 변환 시켜 합니다. 당연히 빠른 RPM은 전류 소모량 과 방열량이 커집니다. 저속에서 적은 전류량에서 토크가 나오지만 고속에서 토크가 제대로 나오지않아 전류 소모량이 심합니다. 4. >#define MOTOR_STEP_M0 (MOTOR_PORT = (MOTOR_PORT&0xcf)|0x00) // half >#define MOTOR_STEP_M1 (MOTOR_PORT = (MOTOR_PORT&0xcf)|0x10) // quater >#define MOTOR_STEP_M2 (MOTOR_PORT = (MOTOR_PORT&0xcf)|0x20) // eighth >#define MOTOR_STEP_M3 (MOTOR_PORT = (MOTOR_PORT&0xcf)|0x30) // sixteen 메뉴얼에 보면 4가지의 분주 리스트표가 있습니다. half ,quater, eighth, sixteen 5. 예제있는 딜레이문으로 구성된 것은 예제코드 편하게 보기 위해 작성된 코드 입니다. 딜레이문으로 정확한 주기를 구하지 못합니다. 정확한 주기를 구하기 위해서 타이머를 이용해서 작성해야 합니다 6. 모터기본 회전 1.8도 입니다. 360/1.8 = 200 카운트입니다. half * 2 = 400 quater * 4 = 800 eighth * 8 = 1600 sixteen * 16 = 3200 >#define MOTOR_LEFT_CLK (MOTOR_PORT = MOTOR_PORT^0x01) >#define MOTOR_RIGHT_CLK (MOTOR_PORT = MOTOR_PORT^0x04) 이문장은 신호 반전시키다는 시키는 문장입니다. 이문장이 두번 돌아야 하나의클럭이 만들어 집니다. 6400 번돌아야 3200클럭이 생성되죠 수고하세요 >안녕하십니까? > >AB-M128-B Controller 보드와 AM-MS2 Driver를 사용하는 유저입니다. >우선 제가 잘 몰라서 기초적인 질문을 드리더라도 양해를 부탁드립니다. >그리고 미리 좋은 답변 해주실것이라 믿고 감사를 드립니다. > >1. 제가 하고자 하는 것은 AB-M128-B 컨트롤 보드에 AM-MS2 Driver 3개를 연결하여 제어를 하고자 합니다. 그리고 제어하고자 하는 모터는 스테핑 모터 3A 4개와 1A 2개 입니다. > 1) 여기에서 제가 AM-MS2 Driver에 3A 2개를 연결하여 쓸수 있는 것인가요? 3A 까지 지원된다고 하는것이 2축 다 동시에 3A 까지 지원이 가능한 것인지 아니면 분할해서 쓰는것이기 때문에 두개 합쳐서 3A 까지 지원된다는 것인지가 궁금합니다. > 2) AB-M128-B 보드에 SMPS로 인가해야되는 전류가 모터 전체를 최대로 사용한다고 했을때 모터 전체의 합산한 값인 14A인것인가요? 그리고 만약 14A 를 인가해야 한다면 꽤 큰 전류인거 같은데 AB-M128-B 보드가 견딜수 있는 것인가요? 안된다면 AM-MS2 보드에 각각 따로 파워를 인가하면 가능할까요? > >2. AM-MS2 는 3A 용 라고 되어 있는데 검색해보다가 Q&A에 아래와 같은글을 확인할수 있었습니다. >http://www.newtc.co.kr/board/view.php?id=qna&page=2&sn1=&divpage=3&sn=off&ss=on&sc=off&keyword=ms2&select_arrange=headnum&desc=asc&no=13383 >내용인 즉은 3A로 써있지만 실제로 설정되어 있는 값은 1.67A이니 그 이상을 사용하려면 고쳐서 사용해야 한다는 의미인것 같은데요. >저희가 가지고 있는 보드가 1.67A 인지 3A 용인지 모르겠더군요. 다만 저항이 갈검금금 이라서 추측하고 있을 뿐 잘 모르겠습니다. >만약 1.67A를 3A로 바꾸려면 그냥 택배로 보내면 되는 것인가요? 제가 어떻게 해야 하는지 답변 부탁드리겠습니다. > >3. 모터 3A 짜리(오리엔탈모터 PK 266M-03A, 2상, 2.3V, 3.0A, 0.9/Step)를 하나 연결해서 돌려보았습니다. > 제공해주시는 AM-MS2 예제중 AM-MS2_ATMEGA128용 Timer 를 이용한 예제 프로그램을 이용해서 타이머 숫자 1당 8uSec로 설정(16MHz 128) 하였습니다. > 그런데 모터가 80uSec당 한번 움직여야 괜찮게 움직이고 그 이하는 부르르 떨기만 하고 회전하지는 않았습니다. > 80uSec도 처음엔 움직이지 않고 부르르 떠는데 모터축을 살짝 돌려주면 그다음부터 잘 회전였습니다. > 아주 느린 800uSec당 한펄스를 움직이면 모터가 처음에 부르르 떠는 현상은 없었습니다. >작은 모터 0.95A 짜리를 사용했을때는 부르르 떠는 현상이 없고 가변저항을 이용해 전류를 낮게 조절했을때 부르르 떠는 현상이 있는 것으로 보아 전류가 모자라는것인지 궁금합니다. > >4. 예제 프로그램의 M0 ~ M3에 대해서 질문을 드립니다. > 포트 번호를 보니까 > M0 - 16 > M1 - 4 > M2 - 8 > M3 - 2 > 의 형태를 가지는것 같습니다. 맞는 것인지요? 예제가 M0~M3 까지 통일성이 없어서 좀 헛갈리는 부분입니다. > >5. 모터 속도 조절에 관하여. > 모터 속도조절에 대해 어떻게 해야 하는지 궁금합니다. > chapter 15의 마지막 페이지의 문제 중 속도 제어에 관련한 해답이 홈페이지나 예제에 있을까요? > 그리고 delay 의 for loop 에 들어 있는 200 또는 600이 어떤 의미를 가지는지요? > delay를 이용한 예제에서 한 클럭이 16MHz 일때 XDIV가 0 이면 for문의 1 클럭당 시간은 1/16M sec가 되는 것인가요? > 또한 timer를 이용한 예제어서 이 for문의 딜레이의 값이 timer의 Prescale 과 관련이 있는 것인지요? 즉 prescale이 클럭 수를 다운하는데 있어서 딜레이 하는 클럭과 계산하는 클럭까지 느리게 하는것인가요? > 모터 최고 속도를 2000rpm 이라고 했을때 200 pulse 에 16분주 한 경우 3200 pulse 를 넣어줄때 한바퀴가 되고 1pulse당 입력 시간은 150uSec가 됩니다. 이 속도조절은 어떻게 해야 합니까? 제가 알기로 AM-MS2 는 250kHz까지 지원되는것으로 알고 있어 3750rpm까지 가능한것으로 알고 있습니다. 제가 delay 조절을 이용해서 숫자를 조절해보면 200rpm 밖에 나오지 않는데 어떻게 더 빠르게 가능할까요? > >6. 모터 0.95A 2상 2.3V, 1.8/Step 에 펄스를 주는데 있어서 16분주(M0)를 이용해서 pulse를 주게 되면 > 한바퀴당 200pulse * 16 분주 = 3200 pulse라는 계산이 나올것 같은데요 > 실제로 아래와 같은 소스로 pulse를 넣어주면 반바퀴만 돕니다. > 6400 pulse를 넣어줘야 한바퀴가 도는것 같습니다.(정확히 한바퀴인지는 확인하지 못했으나 대략적으로 한바퀴 입니다.) > 정말 초보적인 질문일지 모르겠지만 어떤 이유로 6400 pulse당 한바퀴가 도는지 궁금합니다. 혹시 대답해주실수 있으실까요? > > >------------------------------------ > < 프로그램 > 예제에 Count 변수를 하나 넣어서 원하는 pulse수만 움직이도록 프로그래밍하였습니다. >------------------------------------ >// Stepping Motor Control Application >// Target : M128 >// Crystal: 16Mhz >// >// Made by New Technology Company(N.T.C) in Korea. >// DAEWOO RYU >// Email : [email protected] >// 82-2-704-4774(TEL), 82-2-704-4733(FAX) >// http://www.NewTC.co.kr >// > > >/* > 마이크로 스텝드라이버 구동 소스 > 포트 연결 > Enable : PORTB 7번핀 > Mode1 : PORTB 5번핀 > Mode0 : PORTB 4번핀 > R_DIR : PORTB 3번핀 > R_CLK : PORTB 2번핀 > L_DIR : PORTB 1번핀 > L_CLK : PORTB 0번핀 >*/ > >#include <iom128v.h> >#include <macros.h> >#include <stdio.h> > >#define MOTOR_PORT PORTC // 스테핑 모터 연결 포트 >#define MOTOR_PORT_DDR DDRC // 스테핑 모터 연결 포트의 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|0x08) > >void port_init(void) >{ > PORTA = 0x00; > DDRA = 0x03; > PORTB = 0x00; > DDRB = 0x00; > PORTC = 0x00; > DDRC = 0xff; > PORTD = 0x00; > DDRD = 0xff; > PORTE = 0x00; > DDRE = 0x00; > PORTF = 0x00; > DDRF = 0x00; > PORTG = 0x00; > DDRG = 0x03; >} > > >//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 >} > >int putchar(char c) >{ > while (((UCSR0A>>UDRE0)&0x01) == 0) ; // UDRE, data register empty > > UDR0 = c; > return c; >} > >int getchar(void) >{ > while ((UCSR0A & 0x80) == 0); > return UDR0; >} > > >void delay(int n) >{ > volatile int i,j; > for(i=1;i<=n;i++) > { > for(j=1;j<200;j++); > } >} > > >/* main function-----------------------------------*/ >void main(void) >{ > volatile int Count = 0; > init_devices(); > //insert your functional code here... > printf(" \\n\\n\\rStepping Motor test program...\\n\\r"); > > MOTOR_PORT_DDR = 0xff; > > MOTOR_ENABLE; > MOTOR_STEP_M0; > MOTOR_LEFT_CCW; > MOTOR_RIGHT_CCW; > > delay(100); > > /* 딜레이로 마이크로 스텝 드라이버 구동 */ > while(1){ >// PORTG++; > MOTOR_LEFT_CLK; > MOTOR_RIGHT_CLK; > delay(1); > if(Count >= 6400) break; > Count++; > } > >} > >----------------------------------- > >좋은 답변 기다리겠습니다. >읽어주셔서 감사합니다. >