로그인 | 회원가입 | 주문 조회
총 10,748개의 질문이 있습니다.
번호 제목 작성자 등록일 조회
10073 답변완료SE-SM9K 와 AM-CS2P 를 구매해서 가지고 있습니다. 전원 공급을 위해서 추가구매 최선웅 2018-05-11 5,112
SE-SM9K 와 AM-CS2P 를 구매해서 가지고 있습니다. 전원 공급을 위해서 추가구매 어댑터 하나 사려는데 http://newtc.co.kr/dpshop/shop/item.php?it_id=1391735077 이거 사서 아두이노 어댑터 연결부에 꽂아서 쓰면 되는걸까요? SMPS 12V 1A 짜리로는 안되겠죠?
관리자 답변 관리자 · 2018-05-14
안녕하십니까? 고객님. 항상 저희 뉴티씨 제품을 사용하여 주셔서 감사합니다. 12V 1A 제품을 사용하셔도 구동자체에는 문제가 없으나 전원 공급의 안정성을 위해 12V 3A 제품을 사용하시는 것을 추천합니다. 하지만, 사용되는 힘인 토크가 얼마 안되면 작은 1A짜리 써도 됩니다. 감사합니다. > > > SE-SM9K 와 AM-CS2P 를 구매해서 가지고 있습니다. 전원 공급을 위해서 추가구매 > > 어댑터 하나 사려는데 > http://newtc.co.kr/dpshop/shop/item.php?it_id=1391735077 > > 이거 사서 아두이노 어댑터 연결부에 꽂아서 쓰면 되는걸까요? > > SMPS 12V 1A 짜리로는 안되겠죠? >
10072 답변완료DC모터 관련하여 질문드립니다 이준호 2018-05-09 5,975
키트 : AB-M128Pro-A 드라이버 : AM-DC2-2D DC모터 : SE-DM 모두 뉴티씨 제품을 사용중에 입니다 AVRstudio4 를 사용하여 제어하고 있고 포트는 b포트에서 2x5 박스 케이블을 사용하여 dc모터 드라이버를 연결하였습니다. 자료실에있는 예제 문제들을 이용하여 제어를 하려고 하였지만 명령어가 듣질 않습니다. 명령어 제어를 어떻게 해야 할까요? 참고해야할 예제 코드를 알려 주실수 있나요?
관리자 답변 관리자 · 2018-05-10
안녕하세요? 고객님, 저희 뉴티씨 제품을 이용하여 주셔서 감사합니다. 전원 공급용 커넥터에 5V를 공급해 주셔야 돌아갈겁니다. 참고로, 10핀 케이블의 5V 전원은 모터용이 아니고, 제어로직용입니다. 그리고, B 포트는 다운로딩용 핀들이 들어 있으니, 가능하면 C포트같은 다른포트로 쓰세요. 감사합니다. > > > 키트 : AB-M128Pro-A > 드라이버 : AM-DC2-2D > DC모터 : SE-DM > > 모두 뉴티씨 제품을 사용중에 입니다 > AVRstudio4 를 사용하여 제어하고 있고 > 포트는 b포트에서 2x5 박스 케이블을 사용하여 dc모터 드라이버를 연결하였습니다. > 자료실에있는 예제 문제들을 이용하여 제어를 하려고 하였지만 명령어가 듣질 않습니다. > 명령어 제어를 어떻게 해야 할까요? > 참고해야할 예제 코드를 알려 주실수 있나요? >
10071 답변완료Stepping모터구동모듈 3A(AM-CS2P) 제품문의 최민호 2018-05-09 3,874
PCB 판에 atmega128를 납땜한 상태구요 스텝모터를 동작하는데 atmega128 내부 전압으로는 부족하다고 하여 12v를 추가로 줘야 한다고 합니다 그래서 알아본 결과 12v - 레귤레이터 - atmega128 ㄴ 모터모듈(AM-CS2P) - 모터(SE-SM243) 이런 식으로 연결하는 것 같은데 이때 레귤레이터는 어떤 제품을 사용해야하며 (추천바람) 12v 어댑터를 이용할 시 어댑터와 pcb 판 사이에 어떻게 연결해야 하는지 알고싶습니다. 추가로 구매해야 할 부품이 있을 것 같아 묶어서 구매할 생각이라 아직까지 구매를 못하고 있네요
관리자 답변 관리자 · 2018-05-10
안녕하세요? 고객님, 저희 뉴티씨 제품을 이용하여 주셔서 감사합니다. 첨부한 그림은 RL78보드에 스테핑 모터를 연결한 그림입니다. 참조로 업로드 해드렸습니다. 어뎁터의 12V 출력을 모터제어기의 2핀으로 입력을 바로 해 주시면 되거나, 메인보드를 사용하시는 경우는 메인보드에 아답타를 꼽고, 12V 출력용 2핀 커넥터에서 CS2P의 2핀 커넥터로 1:1 케이블로 연결하여 주시면 됩니다. RL78의 경우는 RL78로 하지만, ATMEGA128의 경우는 AB-M128PRO-A나 AB-M128-B 보드를 이용하시면 됩니다. 이 경우 직접 12V가 바로 커넥터만 변환되서 모터제어기로 가는 것이라서 레귤레이터는 관계가 없네요. 감사합니다. > > > PCB 판에 atmega128를 납땜한 상태구요 스텝모터를 동작하는데 atmega128 내부 전압으로는 부족하다고 하여 12v를 추가로 줘야 한다고 합니다 그래서 알아본 결과 12v - 레귤레이터 - atmega128 ㄴ 모터모듈(AM-CS2P) - 모터(SE-SM243) 이런 식으로 연결하는 것 같은데 이때 레귤레이터는 어떤 제품을 사용해야하며 (추천바람) 12v 어댑터를 이용할 시 어댑터와 pcb 판 사이에 어떻게 연결해야 하는지 알고싶습니다. 추가로 구매해야 할 부품이 있을 것 같아 묶어서 구매할 생각이라 아직까지 구매를 못하고 있네요 >
10070 답변완료뉴티씨 제품 연결 관련해서 질문 드립니다. 김동현 2018-05-03 4,394
기계과 학생이라 전자쪽 지식이 많이 부족합니다 ㅠㅠ 다 뉴티씨 제품으로 통일해서 구매했는데 여쭤볼 것이 있어서 문의드립니다. dc기어드모터 se-dm185의 구동전압은 12v 구동전류는 1.6A 입니다. 아두이노 메가는 최대 7V만 받을 수 있기 때문에 귀사의 모터 드라이버를 구매했고 이 모터드라이버의 구동 전압은 5-45V, 최대전류는 2A입니다. 모터의 전압이 아두이노 만으로는 부족하기때문에 12V를 줄 수 있느 어뎁터를 샀고 이 어뎁터의 전류는 3.34A입니다. 여기서 물어볼 것은 다음과 같습니다. 1. 모터 드라이버의 최대 전압은 45V, 전류는 2A인데 어뎁터의 전압과 같지만 전류가 3.34A여서 차이가 납니다. 그래도 괜찮은건가요? 2. 모터의 전압은 12V, 전류는 12V에서 1.6A입니다. 모터 드라이버에서 2A가 오던 어뎁터에서 3.34A가 오던 괜찮은건가요? 대표적으로 led는 저항이 없으면 사용을 못하기 때문에 개인적으로는 저항을 써야된다고 생각이 들어서.. 사진 첨부하였습니다. ------------------------------------------------------------------- 3. 서보형 DC모터에 기어를 연결하려고 하는데 나사를 풀어보니 기어가 튀어나와 있는 것을 확인 했습니다. 모듈은 어떻게 되고 이 모터에 피니언&랙 기어를 연결하려는데 그거와 관련된 부품을 파는지 알고 싶습니다. 보통 라인 트레이서나 로봇쪽에 쓰이는 도구밖에 없어서요. 만약 없다면 저 원형 판의 구멍이 M1.6이 맞는지 확인도 하고 싶습니다. 다른 학생이 작업한 사진을 봤는데 기어를 그대로 저 원형판과 나사로 고정시켰더라구요. 빠른 답변 부탁드립니다.
관리자 답변 관리자 · 2018-05-04
안녕하세요? 고객님. 저희 뉴티씨 제품을 이용하여주셔서 감사합니다. 답변 드리겠습니다. >> 1. 모터 드라이버의 최대 전압은 45V, 전류는 2A인데 어뎁터의 전압과 같지만 전류가 3.34A여서 차이가 납니다. 그래도 괜찮은건가요? 어댑터의 전류는 쓰는만큼 끌어다 쓰는거이기 때문에 걱정 안하셔도 됩니다. 어댑터의 공급전류가 작지 않는이상 문제는 되지 않습니다. 다만, 해당 모터 드라이버는 평상시에 1A까지 아주 짧은 시간 순간적으로는 2A까지 허용합니다. 그 이상으로 끌어서 사용시 모터드라이버에 문제가 생길 수 있습니다. >> 2. 모터의 전압은 12V, 전류는 12V에서 1.6A입니다. 모터 드라이버에서 2A가 오던 어뎁터에서 3.34A가 오던 괜찮은건가요? 대표적으로 led는 저항이 없으면 사용을 못하기 때문에 개인적으로는 저항을 써야된다고 생각이 들어서.. 사진 첨부하였습니다. 위의 1. 답변과 같습니다. >> 3. 서보형 DC모터에 기어를 연결하려고 하는데 나사를 풀어보니 기어가 튀어나와 있는 것을 확인 했습니다. 모듈은 어떻게 되고 이 모터에 피니언&랙 기어를 연결하려는데 그거와 관련된 부품을 파는지 알고 싶습니다. 보통 라인 트레이서나 로봇쪽에 쓰이는 도구밖에 없어서요. > 만약 없다면 저 원형 판의 구멍이 M1.6이 맞는지 확인도 하고 싶습니다. 다른 학생이 작업한 사진을 봤는데 기어를 그대로 저 원형판과 나사로 고정시켰더라구요. 저희 서보형 DC모터 SE-DS350에는 피니언&랙 기어 세트는 판매하고 있지 않습니다. 원형판의 구멍은 지름 1.4mm입니다. 감사합니다. > > > 기계과 학생이라 전자쪽 지식이 많이 부족합니다 ㅠㅠ > > 다 뉴티씨 제품으로 통일해서 구매했는데 여쭤볼 것이 있어서 문의드립니다. > > dc기어드모터 se-dm185의 구동전압은 12v 구동전류는 1.6A 입니다. > 아두이노 메가는 최대 7V만 받을 수 있기 때문에 귀사의 모터 드라이버를 구매했고 이 모터드라이버의 구동 전압은 5-45V, 최대전류는 2A입니다. 모터의 전압이 아두이노 만으로는 부족하기때문에 12V를 줄 수 있느 어뎁터를 샀고 이 어뎁터의 전류는 3.34A입니다. > > 여기서 물어볼 것은 다음과 같습니다. > > > 1. 모터 드라이버의 최대 전압은 45V, 전류는 2A인데 어뎁터의 전압과 같지만 전류가 3.34A여서 차이가 납니다. 그래도 괜찮은건가요? > > 2. 모터의 전압은 12V, 전류는 12V에서 1.6A입니다. 모터 드라이버에서 2A가 오던 어뎁터에서 3.34A가 오던 괜찮은건가요? 대표적으로 led는 저항이 없으면 사용을 못하기 때문에 개인적으로는 저항을 써야된다고 생각이 들어서.. 사진 첨부하였습니다. > > ------------------------------------------------------------------- > > 3. 서보형 DC모터에 기어를 연결하려고 하는데 나사를 풀어보니 기어가 튀어나와 있는 것을 확인 했습니다. 모듈은 어떻게 되고 이 모터에 피니언&랙 기어를 연결하려는데 그거와 관련된 부품을 파는지 알고 싶습니다. 보통 라인 트레이서나 로봇쪽에 쓰이는 도구밖에 없어서요. > 만약 없다면 저 원형 판의 구멍이 M1.6이 맞는지 확인도 하고 싶습니다. 다른 학생이 작업한 사진을 봤는데 기어를 그대로 저 원형판과 나사로 고정시켰더라구요. > > 빠른 답변 부탁드립니다. >
10069 답변완료소스간단질문 조민준 2018-05-02 4,397
계속 질문드려서 죄송합니다. 아래 while문에서 cli();가 일어나면 > > ENABLE1_ON; > > PWM1_ON; > > BREAK1_OFF; > > ENABLE2_ON; > > PWM2_ON; > > BREAK2_OFF; + > > > > DIR1_OFF; > > DIR2_OFF; > > PORTG = 0x02; > > delay(2000);//반시계 이렇게 두소스가 작동을 하는것인가요?? --- > > // S/W Environment : AVR Studio + WINAVR Compiler > > // Target : M128 > > // Crystal: 16MHz > > // > > // Made by NEWTC Co., Ltd. in Korea. > > // DAEWOO RYU > > // Email : [email protected] > > // +82-2-704-4774(TEL), +82-2-704-4733(FAX) > > // http://www.newtc.co.kr > > // example : AM-DCx-xx DC motor controller test > > > > #include <avr/io.h> > > #include <avr/interrupt.h> > > > > #define MOTOR_PORT PORTC > > #define PWM1_ON (MOTOR_PORT|=0x01) > > #define PWM1_OFF (MOTOR_PORT&=0xFE) > > #define DIR1_ON (MOTOR_PORT|=0x02) > > #define DIR1_OFF (MOTOR_PORT&=0xFD) > > #define ENABLE1_OFF (MOTOR_PORT|=0x04) > > #define ENABLE1_ON (MOTOR_PORT&=0xFB) > > #define BREAK1_ON (MOTOR_PORT|=0x08) > > #define BREAK1_OFF (MOTOR_PORT&=0xF7) > > > > #define PWM2_ON (MOTOR_PORT|=0x10) > > #define PWM2_OFF (MOTOR_PORT&=~0x10) > > #define DIR2_ON (MOTOR_PORT|=0x20) > > #define DIR2_OFF (MOTOR_PORT&=~0x20) > > #define ENABLE2_OFF (MOTOR_PORT|=0x40) > > #define ENABLE2_ON (MOTOR_PORT&=~0x40) > > #define BREAK2_ON (MOTOR_PORT|=0x80) > > #define BREAK2_OFF (MOTOR_PORT&=~0x80) > > > > > > > > void port_init(void) > > { > > PORTA = 0x00; > > DDRA = 0x00; > > PORTB = 0x00; > > DDRB = 0x00; > > PORTC = 0x00; //m103 output only > > DDRC = 0xff; > > PORTD = 0x00; > > DDRD = 0x00; > > PORTE = 0x00; > > DDRE = 0x00; > > PORTF = 0x00; > > DDRF = 0x00; > > PORTG = 0x00; > > DDRG = 0xff; > > } > > > > //call this routine to initialize all peripherals > > void init_devices(void) > > { > > //stop errant interrupts until set up > > cli(); //disable all interrupts > > XMCRA = 0x00; //external memory > > XMCRB = 0x00; //external memory > > port_init(); > > > > MCUCR = 0x00; > > EICRA = 0x00; //extended ext ints > > EICRB = 0x00; //extended ext ints > > EIMSK = 0x00; > > TIMSK = 0x00; //timer interrupt sources > > ETIMSK = 0x00; //extended timer interrupt sources > > sei(); //re-enable interrupts > > //all peripherals are now initialized > > } > > > > void delay(int delaytime){ > > int i,j; > > for(i=0;i<1000;i++){ > > for(j=0;j<delaytime;j++){ > > } > > } > > } > > > > int main(void) > > { > > init_devices(); > > > > ENABLE1_ON; > > PWM1_ON; > > BREAK1_OFF; > > ENABLE2_ON; > > PWM2_ON; > > BREAK2_OFF; > > > > while(1){ > > DIR1_ON; > > DIR2_ON; > > PORTG = 0x01; > > delay(2000);//시계 > > cli(); > > > > > > DIR1_OFF; > > DIR2_OFF; > > PORTG = 0x02; > > delay(2000);//반시계 > > } > > return 0; > > } > > >
관리자 답변 관리자 · 2018-05-04
안녕하세요? 고객님. 저희 뉴티씨 제품을 이용하여주셔서 감사합니다. cli(); 는 AVR의 기능으로 인터럽트 호출을 강제로 막는 기능을 합니다. cli()가 말씀하신 두 소스의 작동을 하지는 않습니다. cli(); 가 하는 역할은 SREG 이라는 레지스터의 global interrupt enable을 관장하는 비트를 OFF합니다. Status Register인데요. 상태 레지스터라고 마이크로 컨트롤러마다 하나씩 있습니다. 즉, SREG = SREG & 0x7F; 입니다. 이 비트를 disable 하면, 전체 인터럽트가 일어나지 않습니다. 어떤 인터럽트든 인터럽트를 enable하려면 이 비트도 1로 되어야 하고, 일으키려고 하는 개별 인터럽트도 걸어야 합니다. 두 가지가 다 되어 있어야 인터럽트가 발생합니다. 그리고, 컴파일러마다 인터럽트 발생시 수행하는 벡터값에 대응하는 인터럽트 핸들러 함수가 있는데, 그 함수 내부에 인터럽트 발생시 수행하기를 원하는 내용을 적어주어야 합니다. 괜찮으니 이곳으로 언제든 질문 주세요. 감사합니다. > > > 계속 질문드려서 죄송합니다. > > 아래 while문에서 > cli();가 일어나면 > > > > ENABLE1_ON; > > > PWM1_ON; > > > BREAK1_OFF; > > > ENABLE2_ON; > > > PWM2_ON; > > > BREAK2_OFF; > > + > > > > > > DIR1_OFF; > > > DIR2_OFF; > > > PORTG = 0x02; > > > delay(2000);//반시계 > > > 이렇게 두소스가 작동을 하는것인가요?? > > --- > > > > // S/W Environment : AVR Studio + WINAVR Compiler > > > // Target : M128 > > > // Crystal: 16MHz > > > // > > > // Made by NEWTC Co., Ltd. in Korea. > > > // DAEWOO RYU > > > // Email : [email protected] > > > // +82-2-704-4774(TEL), +82-2-704-4733(FAX) > > > // http://www.newtc.co.kr > > > // example : AM-DCx-xx DC motor controller test > > > > > > #include <avr/io.h> > > > #include <avr/interrupt.h> > > > > > > #define MOTOR_PORT PORTC > > > #define PWM1_ON (MOTOR_PORT|=0x01) > > > #define PWM1_OFF (MOTOR_PORT&=0xFE) > > > #define DIR1_ON (MOTOR_PORT|=0x02) > > > #define DIR1_OFF (MOTOR_PORT&=0xFD) > > > #define ENABLE1_OFF (MOTOR_PORT|=0x04) > > > #define ENABLE1_ON (MOTOR_PORT&=0xFB) > > > #define BREAK1_ON (MOTOR_PORT|=0x08) > > > #define BREAK1_OFF (MOTOR_PORT&=0xF7) > > > > > > #define PWM2_ON (MOTOR_PORT|=0x10) > > > #define PWM2_OFF (MOTOR_PORT&=~0x10) > > > #define DIR2_ON (MOTOR_PORT|=0x20) > > > #define DIR2_OFF (MOTOR_PORT&=~0x20) > > > #define ENABLE2_OFF (MOTOR_PORT|=0x40) > > > #define ENABLE2_ON (MOTOR_PORT&=~0x40) > > > #define BREAK2_ON (MOTOR_PORT|=0x80) > > > #define BREAK2_OFF (MOTOR_PORT&=~0x80) > > > > > > > > > > > > void port_init(void) > > > { > > > PORTA = 0x00; > > > DDRA = 0x00; > > > PORTB = 0x00; > > > DDRB = 0x00; > > > PORTC = 0x00; //m103 output only > > > DDRC = 0xff; > > > PORTD = 0x00; > > > DDRD = 0x00; > > > PORTE = 0x00; > > > DDRE = 0x00; > > > PORTF = 0x00; > > > DDRF = 0x00; > > > PORTG = 0x00; > > > DDRG = 0xff; > > > } > > > > > > //call this routine to initialize all peripherals > > > void init_devices(void) > > > { > > > //stop errant interrupts until set up > > > cli(); //disable all interrupts > > > XMCRA = 0x00; //external memory > > > XMCRB = 0x00; //external memory > > > port_init(); > > > > > > MCUCR = 0x00; > > > EICRA = 0x00; //extended ext ints > > > EICRB = 0x00; //extended ext ints > > > EIMSK = 0x00; > > > TIMSK = 0x00; //timer interrupt sources > > > ETIMSK = 0x00; //extended timer interrupt sources > > > sei(); //re-enable interrupts > > > //all peripherals are now initialized > > > } > > > > > > void delay(int delaytime){ > > > int i,j; > > > for(i=0;i<1000;i++){ > > > for(j=0;j<delaytime;j++){ > > > } > > > } > > > } > > > > > > int main(void) > > > { > > > init_devices(); > > > > > > ENABLE1_ON; > > > PWM1_ON; > > > BREAK1_OFF; > > > ENABLE2_ON; > > > PWM2_ON; > > > BREAK2_OFF; > > > > > > while(1){ > > > DIR1_ON; > > > DIR2_ON; > > > PORTG = 0x01; > > > delay(2000);//시계 > > > cli(); > > > > > > > > > DIR1_OFF; > > > DIR2_OFF; > > > PORTG = 0x02; > > > delay(2000);//반시계 > > > } > > > return 0; > > > } > > > > > >
10068 답변완료AM-3axis-p 제품관련 문의 천다솔 2018-05-02 4,750
안녕하세요. 지금 AM-3axis-p 모듈을 사용하고있는데, 가속도 센서 칩은 ST사의 제품을 사용하는것 같고, NewTC에서 회로를 만들고, 밑에 연결위한 보드(AM-ACCTB)도 만드신거같은데, 원래 신호를 받는거에서 신호 필터링을 거치는 과정이 포함되어있나요? 포함되어있다면 주파수 몇Hz 정도의 LPF가 세팅되어있는지 알수있을까요? 또 포함되어있다면, 주파수 변경하는 방법도 알고싶네요.
관리자 답변 관리자 · 2018-05-04
안녕하세요? 고객님, 저희 뉴티씨 제품을 이용하여 주셔서 감사합니다. 3축 가속도 센서는 fc = 1591.549430919[Hz] 에 맞춰져 있습니다. AM-3axis-p 에는 필터가 포함되어 있지 않습니다. 다만, 데이터가 아날로그라서, 최대한 노이즈 간섭이 적도록 디자인되어 있습니다. Cut off 주파수를 변경하려면, 가속도 센서 위의 RC필터 저항값이나 커패시터 값을 채널별로 변경하셔야 합니다. R501~R503, C503~505 순서대로 X, Y, Z 입니다. 감사합니다. > > > 안녕하세요. 지금 AM-3axis-p 모듈을 사용하고있는데, > > > 가속도 센서 칩은 ST사의 제품을 사용하는것 같고, NewTC에서 회로를 만들고, 밑에 연결위한 보드(AM-ACCTB)도 만드신거같은데, 원래 신호를 받는거에서 신호 필터링을 거치는 과정이 포함되어있나요? > > 포함되어있다면 주파수 몇Hz 정도의 LPF가 세팅되어있는지 알수있을까요? > > 또 포함되어있다면, 주파수 변경하는 방법도 알고싶네요. >
10067 답변완료SE-DM185 모터의 답변에 대한 내용을 더 자세하게 알고 싶습니다. 김동현 2018-04-30 4,294
안녕하세요? 고객님, 저희 뉴티씨 제품을 이용하여 주셔서 감사합니다. 첨부해드린 사진에 보이듯이 빨간선은 +Motor / 검은선은 -Motor로 결선이 가능하다면 DC모터로 구동이 가능합니다. 하지만 AM-DC2-2D모듈에는 터미널블록커넥터이고, DM-185에는 6핀 커넥터가 달려있어서 커넥터방식이 호환되지 않습니다. 그렇게 사용하고 싶으시다면 DM-185모터의 배선을 자르거나 커넥터를 분리한 후에 선을 따서 연결하는 방법밖에는 없어서 권해드리고싶지는 않습니다. AD-ENCODER모듈에는 커넥터변환모듈 역할도 있어서, DM-185모터를 AD-ENCODER모듈에 꽂고, AD-ENCODER와 AM-DC2-2D와 연결해서 엔코더는 구현하지않거나 무시하고 모터를 구동하는것을 추천드립니다. 감사합니다. > > > 엔코더 기능 사용하지 않을 거라서 엔코더 제어 보드 구매 안하고 > > AM-DC2-2D 모터 드라이버를 사서 일반 dc모터처럼 구동하려고 하는데 +,- 선만 AM-DC2-2D에 연결해서 일반 DC모터처럼 아두이노 소스 짜도 구동 가능하죠? -------------------------------------------------------------------------------------------- DM-185모터의 배선을 자르거나 커넥터를 분리한 후에 선을 따서 연결하는 방법밖에는 없어서 권해드리고싶지는 않습니다. 이 설명에서 커넥터가 AD-ENCODER모듈의 연결칸하고 딱 맞는데 개별 선으로 사용하려면 커넥터 하얀색 부분을 제거하고 선으로만 따로 연결하면 된다는 말씀이시죠? 그리고 엔코더 모듈을 구매해서 연결을 하더라도 아두이노 소스 짤때는 dc모터처럼 해도 되나요?
관리자 답변 관리자 · 2018-05-02
안녕하세요? 고객님. 저희 뉴티씨제품을 이용하여주셔서 감사합니다. 네, 빨간선은 +Motor / 검은선은 -Motor로 AM-DC2-2D에 결선하시면 DC모터처럼 구동 가능합니다. 감사합니다. > > > 안녕하세요? 고객님, > 저희 뉴티씨 제품을 이용하여 주셔서 감사합니다. > > 첨부해드린 사진에 보이듯이 빨간선은 +Motor / 검은선은 -Motor로 결선이 가능하다면 > DC모터로 구동이 가능합니다. > > 하지만 AM-DC2-2D모듈에는 터미널블록커넥터이고, DM-185에는 6핀 커넥터가 달려있어서 커넥터방식이 호환되지 않습니다. > 그렇게 사용하고 싶으시다면 DM-185모터의 배선을 자르거나 커넥터를 분리한 후에 선을 따서 연결하는 방법밖에는 없어서 권해드리고싶지는 않습니다. > > AD-ENCODER모듈에는 커넥터변환모듈 역할도 있어서, DM-185모터를 AD-ENCODER모듈에 꽂고, AD-ENCODER와 AM-DC2-2D와 연결해서 엔코더는 구현하지않거나 무시하고 모터를 구동하는것을 추천드립니다. > > 감사합니다. > > > > > > > 엔코더 기능 사용하지 않을 거라서 엔코더 제어 보드 구매 안하고 > > > > AM-DC2-2D 모터 드라이버를 사서 일반 dc모터처럼 구동하려고 하는데 +,- 선만 AM-DC2-2D에 연결해서 일반 DC모터처럼 아두이노 소스 짜도 구동 가능하죠? > > > > -------------------------------------------------------------------------------------------- > > DM-185모터의 배선을 자르거나 커넥터를 분리한 후에 선을 따서 연결하는 방법밖에는 없어서 권해드리고싶지는 않습니다. > > 이 설명에서 커넥터가 AD-ENCODER모듈의 연결칸하고 딱 맞는데 개별 선으로 사용하려면 커넥터 하얀색 부분을 제거하고 선으로만 따로 연결하면 된다는 말씀이시죠? > > 그리고 엔코더 모듈을 구매해서 연결을 하더라도 아두이노 소스 짤때는 dc모터처럼 해도 되나요? >
10066 답변완료소스질문드립니다. 조민준 2018-04-30 4,717
아랫소스를 pota에 작동시키려면 어떻게 수정해야하나요?? potc가 접촉이 잘안되서 작동에 에러가 발생하네요 ㅜ > > > 아래소스에서 disable 기능을 사용하려면 어떻게 정의해야하나요?? > // S/W Environment : AVR Studio + WINAVR Compiler > // Target : M128 > // Crystal: 16MHz > // > // Made by NEWTC Co., Ltd. in Korea. > // DAEWOO RYU > // Email : [email protected] > // +82-2-704-4774(TEL), +82-2-704-4733(FAX) > // http://www.newtc.co.kr > // example : AM-DCx-xx DC motor controller test > > #include <avr/io.h> > #include <avr/interrupt.h> > > #define MOTOR_PORT PORTC > #define PWM1_ON (MOTOR_PORT|=0x01) > #define PWM1_OFF (MOTOR_PORT&=0xFE) > #define DIR1_ON (MOTOR_PORT|=0x02) > #define DIR1_OFF (MOTOR_PORT&=0xFD) > #define ENABLE1_OFF (MOTOR_PORT|=0x04) > #define ENABLE1_ON (MOTOR_PORT&=0xFB) > #define BREAK1_ON (MOTOR_PORT|=0x08) > #define BREAK1_OFF (MOTOR_PORT&=0xF7) > > #define PWM2_ON (MOTOR_PORT|=0x10) > #define PWM2_OFF (MOTOR_PORT&=~0x10) > #define DIR2_ON (MOTOR_PORT|=0x20) > #define DIR2_OFF (MOTOR_PORT&=~0x20) > #define ENABLE2_OFF (MOTOR_PORT|=0x40) > #define ENABLE2_ON (MOTOR_PORT&=~0x40) > #define BREAK2_ON (MOTOR_PORT|=0x80) > #define BREAK2_OFF (MOTOR_PORT&=~0x80) > > > > void port_init(void) > { > PORTA = 0x00; > DDRA = 0x00; > PORTB = 0x00; > DDRB = 0x00; > PORTC = 0x00; //m103 output only > DDRC = 0xff; > PORTD = 0x00; > DDRD = 0x00; > PORTE = 0x00; > DDRE = 0x00; > PORTF = 0x00; > DDRF = 0x00; > PORTG = 0x00; > DDRG = 0xff; > } > > //call this routine to initialize all peripherals > void init_devices(void) > { > //stop errant interrupts until set up > cli(); //disable all interrupts > XMCRA = 0x00; //external memory > XMCRB = 0x00; //external memory > port_init(); > > MCUCR = 0x00; > EICRA = 0x00; //extended ext ints > EICRB = 0x00; //extended ext ints > EIMSK = 0x00; > TIMSK = 0x00; //timer interrupt sources > ETIMSK = 0x00; //extended timer interrupt sources > sei(); //re-enable interrupts > //all peripherals are now initialized > } > > void delay(int delaytime){ > int i,j; > for(i=0;i<1000;i++){ > for(j=0;j<delaytime;j++){ > } > } > } > > int main(void) > { > init_devices(); > > ENABLE1_ON; > PWM1_ON; > BREAK1_OFF; > ENABLE2_ON; > PWM2_ON; > BREAK2_OFF; > > while(1){ > DIR1_ON; > DIR2_ON; > PORTG = 0x01; > delay(2000);//시계 > cli(); > > > DIR1_OFF; > DIR2_OFF; > PORTG = 0x02; > delay(2000);//반시계 > } > return 0; > } >
관리자 답변 관리자 · 2018-05-01
안녕하세요? 고객님, 저희 뉴티씨 제품을 이용하여 주셔서 감사합니다. #define MOTOR_PORT PORTC ====> #define MOTOR_PORT PORTA 이렇게 하시고, void port_init(void) 함수 내부의 DDRA = 0x00; ===> DDRA = 0xff; 이렇게 변경하시면 됩니다. 감사합니다. > > > 아랫소스를 pota에 작동시키려면 어떻게 수정해야하나요?? > > potc가 접촉이 잘안되서 작동에 에러가 발생하네요 ㅜ > > > > > > > 아래소스에서 disable 기능을 사용하려면 어떻게 정의해야하나요?? > > // S/W Environment : AVR Studio + WINAVR Compiler > > // Target : M128 > > // Crystal: 16MHz > > // > > // Made by NEWTC Co., Ltd. in Korea. > > // DAEWOO RYU > > // Email : [email protected] > > // +82-2-704-4774(TEL), +82-2-704-4733(FAX) > > // http://www.newtc.co.kr > > // example : AM-DCx-xx DC motor controller test > > > > #include <avr/io.h> > > #include <avr/interrupt.h> > > > > #define MOTOR_PORT PORTC > > #define PWM1_ON (MOTOR_PORT|=0x01) > > #define PWM1_OFF (MOTOR_PORT&=0xFE) > > #define DIR1_ON (MOTOR_PORT|=0x02) > > #define DIR1_OFF (MOTOR_PORT&=0xFD) > > #define ENABLE1_OFF (MOTOR_PORT|=0x04) > > #define ENABLE1_ON (MOTOR_PORT&=0xFB) > > #define BREAK1_ON (MOTOR_PORT|=0x08) > > #define BREAK1_OFF (MOTOR_PORT&=0xF7) > > > > #define PWM2_ON (MOTOR_PORT|=0x10) > > #define PWM2_OFF (MOTOR_PORT&=~0x10) > > #define DIR2_ON (MOTOR_PORT|=0x20) > > #define DIR2_OFF (MOTOR_PORT&=~0x20) > > #define ENABLE2_OFF (MOTOR_PORT|=0x40) > > #define ENABLE2_ON (MOTOR_PORT&=~0x40) > > #define BREAK2_ON (MOTOR_PORT|=0x80) > > #define BREAK2_OFF (MOTOR_PORT&=~0x80) > > > > > > > > void port_init(void) > > { > > PORTA = 0x00; > > DDRA = 0x00; > > PORTB = 0x00; > > DDRB = 0x00; > > PORTC = 0x00; //m103 output only > > DDRC = 0xff; > > PORTD = 0x00; > > DDRD = 0x00; > > PORTE = 0x00; > > DDRE = 0x00; > > PORTF = 0x00; > > DDRF = 0x00; > > PORTG = 0x00; > > DDRG = 0xff; > > } > > > > //call this routine to initialize all peripherals > > void init_devices(void) > > { > > //stop errant interrupts until set up > > cli(); //disable all interrupts > > XMCRA = 0x00; //external memory > > XMCRB = 0x00; //external memory > > port_init(); > > > > MCUCR = 0x00; > > EICRA = 0x00; //extended ext ints > > EICRB = 0x00; //extended ext ints > > EIMSK = 0x00; > > TIMSK = 0x00; //timer interrupt sources > > ETIMSK = 0x00; //extended timer interrupt sources > > sei(); //re-enable interrupts > > //all peripherals are now initialized > > } > > > > void delay(int delaytime){ > > int i,j; > > for(i=0;i<1000;i++){ > > for(j=0;j<delaytime;j++){ > > } > > } > > } > > > > int main(void) > > { > > init_devices(); > > > > ENABLE1_ON; > > PWM1_ON; > > BREAK1_OFF; > > ENABLE2_ON; > > PWM2_ON; > > BREAK2_OFF; > > > > while(1){ > > DIR1_ON; > > DIR2_ON; > > PORTG = 0x01; > > delay(2000);//시계 > > cli(); > > > > > > DIR1_OFF; > > DIR2_OFF; > > PORTG = 0x02; > > delay(2000);//반시계 > > } > > return 0; > > } > > >
10065 답변완료SONY cycle energy 12V 800mA 충전지 이상훈 2018-04-27 4,321
ST Cortex-M3 ARM 학습용 개발보드에 충전지를 바로 연결 해도 별이상이 없나요?
관리자 답변 관리자 · 2018-05-01
안녕하세요? 고객님, 저희 뉴티씨 제품을 이용하여 주셔서감사합니다. 그 커넥터를 메인보드의 외부 전원 입력 커넥터(J23)에 외부 전원을 공급합니다. (6.5V 이상) 이 경우 괜찮습니다. 감사합니다. > > > ST Cortex-M3 ARM 학습용 개발보드에 충전지를 바로 연결 해도 별이상이 없나요? >
10064 답변완료3축 가속도 센서모듈 ver.3, AM-3AXIS V03 유용근 2018-04-23 4,388
제가 해당센서의 측정빈도를 알고싶어서 매뉴얼을 찾아보았는데요, Power Up Response Time 3,000g for 0.5 ms 10,000g for 0.1 ms Enable Response Time 3,000g for 0.5 ms 10,000g for 0.1 ms 라고 되어있는데 이게 센서의 측정빈도에 관한 정보인지 알기어려워서 질문드립니다. 해당센서를 아날로그신호로 받는다고 할때 측정가능 빈도가 어떻게 되나요? ex) 100Hz or 10ms, 등 매번 친절한 답변에 감사드립니다.
관리자 답변 관리자 · 2018-04-23
안녕하세요? 고객님, 저희 뉴티씨 제품을 이용하여 주셔서 감사합니다. 각 축당 최대 1.8kHz까지 가속도를 측정할 수 있습니다. 자세한 것은 LIS344ALH 데이터시트를 참조하시기 바랍니다. http://www.st.com/resource/en/datasheet/lis344alh.pdf 감사합니다. > > > 제가 해당센서의 측정빈도를 알고싶어서 > 매뉴얼을 찾아보았는데요, > > Power Up Response Time 3,000g for 0.5 ms > 10,000g for 0.1 ms > Enable Response Time 3,000g for 0.5 ms > 10,000g for 0.1 ms > > 라고 되어있는데 이게 센서의 측정빈도에 관한 정보인지 알기어려워서 질문드립니다. > 해당센서를 아날로그신호로 받는다고 할때 측정가능 빈도가 어떻게 되나요? > > ex) 100Hz or 10ms, 등 > > 매번 친절한 답변에 감사드립니다. >
10063 답변완료SE-SM9K 를 L298N 으로 조정하는법이 있을까요? 최선웅 2018-04-20 4,343
1. SE-SM9K 를 L298N 으로 조정하는법이 있을까요? 캡스톤 디자인 진행중인 전자과 학부생입니다. 선배들 작품을 보니 SE-SM9K 를 L298N 2개로 컨트롤을 하던데, 인터넷에 안 나오더라구요 혹시 관련해서 알려주실수있는게 있을까요? 2. AM-CS2P 를 사용했을때 전압은 12v 를 주어야하나요? 그 이하로는 구동이 아예 안되나요?
관리자 답변 관리자 · 2018-04-20
안녕하세요 고객님. 저희 뉴티씨제품을 이용하여주셔서 감사합니다. 답변 드리겠습니다. > 1. SE-SM9K 를 L298N 으로 조정하는법이 있을까요? L298N 드라이버를 사용하여 SE-SM9K모터를 구동하는 것은 가능합니다. 하지만 L298N 탑재 모듈의 회로를 수정하거나 직접 회로를 제작하여야 하는 불편함이 있어서 사용하시는데에는 AM-CS2P를 사용하는 것을 권해드립니다. 관련해서 알려드리고는 싶으나, 일단 지금은 하드웨어설계파트 담당자분이 퇴근하신 관계로 월요일 아침에 바로 확인하고 다시 답변드리겠습니다. > 2. AM-CS2P 를 사용했을때 전압은 12v 를 주어야하나요? > 그 이하로는 구동이 아예 안되나요? AM-CS2P에 인가하는 전압은 최소 10V이상 주시면 됩니다. 감사합니다. > > > 1. SE-SM9K 를 L298N 으로 조정하는법이 있을까요? > > 캡스톤 디자인 진행중인 전자과 학부생입니다. > 선배들 작품을 보니 SE-SM9K 를 L298N 2개로 컨트롤을 하던데, 인터넷에 안 나오더라구요 > > 혹시 관련해서 알려주실수있는게 있을까요? > > 2. AM-CS2P 를 사용했을때 전압은 12v 를 주어야하나요? > 그 이하로는 구동이 아예 안되나요? >
10062 답변완료3축 가속도 센서모듈 ver.3, AM-3AXIS V03 상세 스펙에대해 문의드립니다. 유용근 2018-04-20 4,153
기존에 구매했었던 v02의 경우 PDF로 메뉴얼을 제공받아 보유하고 있습니다만 v03경우에는 따로 구할 수 있는 방법이 있는지 알고싶습니다. 메일로도 문의해놓았으니 답변가능하시다면 메일로 보내주셔도 될것같습니다. 감사합니다.
관리자 답변 관리자 · 2018-04-20
안녕하세요? 고객님, 저희 뉴티씨 제품을 이용하여 주셔서 감사합니다. 해당 제품의 매뉴얼은 자료실▷확장모듈 쪽에서 제품번호나 3축 등으로 검색하시면 받아보실수 있습니다. http://www.newtc.co.kr/dpshop/bbs/board.php?bo_table=m45&wr_id=170 감사합니다. > > > 기존에 구매했었던 v02의 경우 PDF로 메뉴얼을 제공받아 보유하고 있습니다만 > v03경우에는 따로 구할 수 있는 방법이 있는지 알고싶습니다. > 메일로도 문의해놓았으니 답변가능하시다면 메일로 보내주셔도 될것같습니다. 감사합니다. >
10061 답변완료3축 가속도 센서 플러스 모듈 V03 구성에 대해 질문드립니다. 유용근 2018-04-19 4,144
안녕하세요 제가 귀사의 제품에 대한 지식이 전무하여 기초적인 질문부터 다양하게 질문하는점 미리 양해부탁드립니다. 가속도센서를 통해 가속도 데이터 취득을 위해 제품을 찾던 중 3축 가속도 센서 플러스 모듈 V03을 찾게 되어 활용하려고 정보를 찾다가 문의 할 부분이 많아 글을 남깁니다. 1. 해당 3축 가속도 센서 플러스 모듈 V03은 3축가속도 센서와 AVR 보드와 연결하기 위한 추가 보드라고 이해하면 되나요? 2. 제가 컴퓨터에 연결가능한 아날로그 신호 취득기기를 사용하고있습니다.(INCA 기기 및 프로그램) 3축가속도 센서의 x,y,z 값 취득이 목적이라면 avr 보드없이 센서 단독으로 전원인가 후 아날로그 신호만 따서 취득이 가능한 부분인가요? 혹시 취득 값을 컨버팅해야한다거나 하나요? 제가 관련지식이 부족하여 질문이 다소 난해할 수 있을 것 같습니다. 답변하기 어려우시다면 혹시 추가질의가 가능한 연락처 남겨놓아주실 수 있으시면 부탁드립니다.
관리자 답변 관리자 · 2018-04-19
안녕하십니까? 고객님, 저희 뉴티씨 제품을 이용하여 주셔서 감사합니다. 답변 드립니다. 1. 해당 3축 가속도 센서 플러스 모듈 V03은 3축가속도 센서와 AVR 보드와 연결하기 위한 추가 보드라고 이해하면 되나요? 답: 네, 그렇습니다. 2. 제가 컴퓨터에 연결가능한 아날로그 신호 취득기기를 사용하고있습니다.(INCA 기기 및 프로그램) 3축가속도 센서의 x,y,z 값 취득이 목적이라면 avr 보드없이 센서 단독으로 전원인가 후 아날로그 신호만 따서 취득이 가능한 부분인가요? 혹시 취득 값을 컨버팅해야한다거나 하나요? 답: 아날로그로 0~3,3V로 값이 나옵니다. 그 값을 사용하시는 아날로그 신호 취득기기로 입력받으시면 될 듯 합니다. 감사합니다. > > > 안녕하세요 > 제가 귀사의 제품에 대한 지식이 전무하여 기초적인 질문부터 다양하게 질문하는점 미리 양해부탁드립니다. > > 가속도센서를 통해 가속도 데이터 취득을 위해 제품을 찾던 중 3축 가속도 센서 플러스 모듈 V03을 찾게 > 되어 활용하려고 정보를 찾다가 문의 할 부분이 많아 글을 남깁니다. > > 1. 해당 3축 가속도 센서 플러스 모듈 V03은 3축가속도 센서와 AVR 보드와 연결하기 위한 추가 보드라고 이해하면 되나요? > > 2. 제가 컴퓨터에 연결가능한 아날로그 신호 취득기기를 사용하고있습니다.(INCA 기기 및 프로그램) 3축가속도 센서의 x,y,z 값 취득이 목적이라면 avr 보드없이 센서 단독으로 전원인가 후 아날로그 신호만 따서 취득이 가능한 부분인가요? 혹시 취득 값을 컨버팅해야한다거나 하나요? > > 제가 관련지식이 부족하여 질문이 다소 난해할 수 있을 것 같습니다. > 답변하기 어려우시다면 혹시 추가질의가 가능한 연락처 남겨놓아주실 수 있으시면 부탁드립니다. >
10060 답변완료SE-DM185 제품 질문 김동현 2018-04-17 4,283
엔코더 기능 사용하지 않을 거라서 엔코더 제어 보드 구매 안하고 AM-DC2-2D 모터 드라이버를 사서 일반 dc모터처럼 구동하려고 하는데 +,- 선만 AM-DC2-2D에 연결해서 일반 DC모터처럼 아두이노 소스 짜도 구동 가능하죠?
관리자 답변 관리자 · 2018-04-18
안녕하세요? 고객님, 저희 뉴티씨 제품을 이용하여 주셔서 감사합니다. 첨부해드린 사진에 보이듯이 빨간선은 +Motor / 검은선은 -Motor로 결선이 가능하다면 DC모터로 구동이 가능합니다. 하지만 AM-DC2-2D모듈에는 터미널블록커넥터이고, DM-185에는 6핀 커넥터가 달려있어서 커넥터방식이 호환되지 않습니다. 그렇게 사용하고 싶으시다면 DM-185모터의 배선을 자르거나 커넥터를 분리한 후에 선을 따서 연결하는 방법밖에는 없어서 권해드리고싶지는 않습니다. AD-ENCODER모듈에는 커넥터변환모듈 역할도 있어서, DM-185모터를 AD-ENCODER모듈에 꽂고, AD-ENCODER와 AM-DC2-2D와 연결해서 엔코더는 구현하지않거나 무시하고 모터를 구동하는것을 추천드립니다. 감사합니다. > > > 엔코더 기능 사용하지 않을 거라서 엔코더 제어 보드 구매 안하고 > > AM-DC2-2D 모터 드라이버를 사서 일반 dc모터처럼 구동하려고 하는데 +,- 선만 AM-DC2-2D에 연결해서 일반 DC모터처럼 아두이노 소스 짜도 구동 가능하죠? >
10059 답변완료친절한 답변에 감사드립니다. 강승원 2018-04-17 4,674
컴파일 환경을 설정하여 겨우 컴파일 성공하였습니다. 아래 정. 역회전 소스에 더하여 회전방향을 바꿀때 모터를 설정한 시간동안 정지시키고 싶습니다. while 문에 BREAK1_ON; 을 사용하였더니 모터가 정지하는데 delay() 문을 써서 일정시간에 모터를 재가동 시키려 해봐도 모터가 기동을 하지 않습니다. (최종목적은 PWM 기능과 PID 제어로 모터를 자유자재로 제어하고 싶습니다.) 조언을 부탁 드립니다. 감사합니다. ==========================<Source>========================= #include <iom128v.h> #include <macros.h> #include <stdio.h> #define MOTOR_PORT PORTC #define PWM_PORT 0x00 #define PWM1_ON (MOTOR_PORT|=0x01) #define PWM1_OFF (MOTOR_PORT&=0xFE) #define DIR1_ON (MOTOR_PORT|=0x02) #define DIR1_OFF (MOTOR_PORT&=0xFD) #define ENABLE1_OFF (MOTOR_PORT|=0x04) #define ENABLE1_ON (MOTOR_PORT&=0xFB) #define BREAK1_ON (MOTOR_PORT|=0x08) #define BREAK1_OFF (MOTOR_PORT&=0xF7) volatile unsigned int DCMOTOR[8], Tcount=0, motor_speed,sw_state[8]={0,0,0,0,0,0,0,0}; // printf 함수 사용시 추가할 것. int putchar(char c) { while (((UCSR0A>>UDRE0)&0x01) == 0) ; // UDRE, data register empty UDR0 = c; return c; } // scanf 함수 사용시 추가할 것. int getchar(void) { while ((UCSR0A & 0x80) == 0); return UDR0; } void port_init(void) { PORTA = 0x00; DDRA = 0x00; PORTB = 0x00; DDRB = 0x00; PORTC = 0x00; //m103 output only DDRC = 0xFF; PORTD = 0x00; DDRD = 0x00; PORTE = 0x00; DDRE = 0x00; PORTF = 0x00; DDRF = 0x00; PORTG = 0x00; DDRG = 0x1F; } //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 = 0x00; //timer interrupt sources ETIMSK = 0x00; //extended timer interrupt sources SEI(); //re-enable interrupts //all peripherals are now initialized } void delay(int delaytime){ int i,j; for(i=0;i<1000;i++){ for(j=0;j<delaytime;j++){ } } } void Motor_bt(int breaktime){ int i,j; for(i-0;i<1000;i++){ for(j=0;j<breaktime;j++) { if (j=breaktime } } } // void main(void) { init_devices(); //insert your functional code here... ENABLE1_ON; PWM1_ON; BREAK1_OFF; printf("Motor Control V01W\r\n"); while(1){ DCMOTOR[PWM_PORT] = 100; DIR1_ON; delay(12000); PORTG = 0x01; printf("CW\r\n"); DCMOTOR[PWM_PORT] = 100; DIR1_OFF; delay(12000); PORTG = 0x02; printf("CCW\r\n"); } }
관리자 답변 관리자 · 2018-04-18
안녕하세요? 고객님, 저희 뉴티씨 제품을 이용하여 주셔서 감사합니다. 소스를 보니, 아마도 첨부드린 소스를 변경하여 쓰시는 것 같습니다. 이 안에, 정역제어 및 PWM 속도제어가 모두 들어 있으므로, 참고하여 프로그래밍 하시는 것이 좋겠습니다. 이 소스는 AM-TS8 스위치 모듈을 포트A에 AM-DC2-2D 모터는 포트C에 꽂아서 쓰시면 됩니다. 감사합니다. > > > 컴파일 환경을 설정하여 겨우 컴파일 성공하였습니다. > > 아래 정. 역회전 소스에 더하여 회전방향을 바꿀때 > 모터를 설정한 시간동안 정지시키고 싶습니다. > > while 문에 BREAK1_ON; 을 사용하였더니 모터가 정지하는데 > delay() 문을 써서 일정시간에 모터를 재가동 시키려 해봐도 모터가 기동을 하지 않습니다. > > (최종목적은 PWM 기능과 PID 제어로 모터를 자유자재로 제어하고 싶습니다.) > > 조언을 부탁 드립니다. > > 감사합니다. > > ==========================<Source>========================= > > #include <iom128v.h> > #include <macros.h> > #include <stdio.h> > > #define MOTOR_PORT PORTC > #define PWM_PORT 0x00 > #define PWM1_ON (MOTOR_PORT|=0x01) > #define PWM1_OFF (MOTOR_PORT&=0xFE) > #define DIR1_ON (MOTOR_PORT|=0x02) > #define DIR1_OFF (MOTOR_PORT&=0xFD) > #define ENABLE1_OFF (MOTOR_PORT|=0x04) > #define ENABLE1_ON (MOTOR_PORT&=0xFB) > #define BREAK1_ON (MOTOR_PORT|=0x08) > #define BREAK1_OFF (MOTOR_PORT&=0xF7) > > volatile unsigned int DCMOTOR[8], Tcount=0, motor_speed,sw_state[8]={0,0,0,0,0,0,0,0}; > > // printf 함수 사용시 추가할 것. > int putchar(char c) > { > while (((UCSR0A>>UDRE0)&0x01) == 0) ; // UDRE, data register empty > > UDR0 = c; > return c; > } > > // scanf 함수 사용시 추가할 것. > int getchar(void) > { > while ((UCSR0A & 0x80) == 0); > return UDR0; > } > > > void port_init(void) > { > PORTA = 0x00; > DDRA = 0x00; > PORTB = 0x00; > DDRB = 0x00; > PORTC = 0x00; //m103 output only > DDRC = 0xFF; > PORTD = 0x00; > DDRD = 0x00; > PORTE = 0x00; > DDRE = 0x00; > PORTF = 0x00; > DDRF = 0x00; > PORTG = 0x00; > DDRG = 0x1F; > } > > //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 = 0x00; //timer interrupt sources > ETIMSK = 0x00; //extended timer interrupt sources > SEI(); //re-enable interrupts > //all peripherals are now initialized > } > > void delay(int delaytime){ > int i,j; > for(i=0;i<1000;i++){ > for(j=0;j<delaytime;j++){ > } > } > } > > void Motor_bt(int breaktime){ > int i,j; > for(i-0;i<1000;i++){ > for(j=0;j<breaktime;j++) { > if (j=breaktime > } > } > } > // > void main(void) > { > init_devices(); > //insert your functional code here... > ENABLE1_ON; > PWM1_ON; > BREAK1_OFF; > printf("Motor Control V01W\r\n"); > > while(1){ > DCMOTOR[PWM_PORT] = 100; > DIR1_ON; > delay(12000); > PORTG = 0x01; > printf("CW\r\n"); > > > DCMOTOR[PWM_PORT] = 100; > DIR1_OFF; > delay(12000); > PORTG = 0x02; > printf("CCW\r\n"); > > } > } >