Q&A
| 번호 | 제목 | 작성자 | 등록일 | 조회 |
|---|---|---|---|---|
| 5888 | 답변완료RF통신 모듈의 송신예제가 없나요? | 박현철 | 2010-11-19 | 1,443 |
|
학교에서 배울 때 수신밖에 배우지 못해서 송신을 어떻게 하는지
잘 모르겠습니다. RF송신(굳이 rf가 아니여도 괜찮습니다)이 있다면 어떤것인지 알려주세요.
(제가 말하는 송신이 avr(1)이 rf통신으로 avr(2)로 쏴주는 걸 말하는 것 입니다.)
그리고 3축 가속도 예제 소스가 어떤것을 테스트 하는지 자세히 알고싶습니다.
(업로드에 올려놓았습니다)
(avr 초보라서 자세히 알려주시면 감사하겠습니다.)
관리자 답변
안녕하세요? 고객님,
저희 뉴티씨 제품을 이용하여 주셔서 감사합니다.
우선, 본사에서 판매중인 RFMOD 라는 제품이 있습니다.
이 제품은 2.4GHz RF를 이용한 시리얼 통신 보드입니다.
송수신 모두 하나의 모듈에 들어 있습니다. 하프 듀플랙스 방식입니다.
즉, 동시에는 송수신이 안되지만, 매우 짧은 시간을 나눠서 송수신을 할 수 있도록 되어 있어서,
대화하는 것처럼, 서로 데이터를 주고 받을 수 있습니다.
물론, 기능이 많은 관계로 트래픽이 계속적으로 주어지는 목적에는 부적합하구요, 다만 다양한 테스트 환경에서 사용 가능하도록, 많은 기능들을 탑재하고 있습니다.
요청하신 AVR(1) 모듈이 AVR(2) 모듈로 데이터를 쏴주고 싶다면,
본사의 AM-128PL 모듈이나 AM-128PRO를 사용하더라도 본사 킷트의 4핀 UART 커넥터 등을 사용하면 됩니다. 그 커넥터와 RFMOD를 1:1 케이블로 연결한 후, 그냥 시리얼 통신으로 데이터를 쏘면, 수신측에서 받아서, AVR 쪽으로 전달하게 됩니다.
특별히 예제같은 게 없는 이유는 유선으로 AVR(1)에서 AVR(2)로 통신하도록 115,200bps로설정하여 만들면, 그 상태에서 그냥 유선 케이블을 빼고, RFMOD를 양쪽에 달아주기만 하면 동작하기 때문입니다. 소스 수정은 전혀 없습니다.
그리고, 3축 가속도 예제 소스는 본사의 윈도 프로그램이 두 가지인데,
하나는 가속도 센서 자체를 테스트 하는 것이 있구요.
나머지 하나는 마우스 역할을 대신하도록 하는 3D 공간 마우스 역할을 하도록 하는 게 있습니다.
센서 자체의 출력 값을 테스트 하는 목적이지요.
참고하라고, 예제를 올려 놓은 것입니다. AVR 쪽 입장에서는 사실 ADC 하는 역할입니다.
첨부파일로 마우스로 이용하는 것 관련해서 설명을 좀 올려 놓았으니, 참고 바랍니다.
수고하세요.
>학교에서 배울 때 수신밖에 배우지 못해서 송신을 어떻게 하는지
>잘 모르겠습니다. RF송신(굳이 rf가 아니여도 괜찮습니다)이 있다면 어떤것인지 알려주세요.
>
>(제가 말하는 송신이 avr(1)이 rf통신으로 avr(2)로 쏴주는 걸 말하는 것 입니다.)
>
>그리고 3축 가속도 예제 소스가 어떤것을 테스트 하는지 자세히 알고싶습니다.
>(업로드에 올려놓았습니다)
>
>(avr 초보라서 자세히 알려주시면 감사하겠습니다.)
|
||||
| 5887 | 답변완료AM-MS2(3A용) | 신명수 | 2010-11-18 | 1,414 |
|
이번에 라인트레이서를 만들려고 합니다.
디바이스 마트에서 보드를 찾았고
회로도가 없어서 문의를 드립니다.
회로를 교수에게 설명을 해야되는 부분이 있어서
회로도 요청을 드립니다.
보드명은 AM-MS2(3A용) 입니다.
바디도 구매할 예정인데 바디가 서텝모터라고 하시네요.
그래서 이보드를 구매할까 합니다.
[email protected]
부탁드립니다.
신명수.
관리자 답변
안녕하세요
AM-MS2는 회로도를 제공하지 않고 있습니다.
SLA7062 칩의 시트를 보시면 기본회로도를 제공합니다.
아래링크를 참조하세요
http://www.alldatasheet.com/datasheet-pdf/pdf/98738/ALLEGRO/SLA7062.html
수고하세요
>이번에 라인트레이서를 만들려고 합니다.
>
>디바이스 마트에서 보드를 찾았고
>
>회로도가 없어서 문의를 드립니다.
>
>회로를 교수에게 설명을 해야되는 부분이 있어서
>
>회로도 요청을 드립니다.
>
>보드명은 AM-MS2(3A용) 입니다.
>
>바디도 구매할 예정인데 바디가 서텝모터라고 하시네요.
>
>그래서 이보드를 구매할까 합니다.
>
>[email protected]
>
>부탁드립니다.
>
>신명수.
|
||||
| 5886 | 답변완료[서보모터 소스] WINAVR + AVR Studio gcc 환경용입니다. | NEWTC | 2010-11-18 | 1,408 |
|
안녕하세요?
어떤 고객님의 요청으로 서보모터 제어 소스를 올려 드립니다.
아래에 가시면 있습니다.
- 아래 -
http://www.newtc.co.kr/board/view.php?id=pds&page=1&sn1=&divpage=1&sn=off&ss=on&sc=off&keyword=winavr&select_arrange=headnum&desc=asc&no=362
질문하기 전에 자료실->기존자료실에서 서보 라고 치면 나오거나 AVR Studio 또는 WINAVR 이라고 치면 각종 소스들이 나옵니다.
참고하시기 바랍니다.
감사합니다.
관리자 답변
글 올리고 보니 저보다 앞서 올려주셨네요. 감사드립니다.
|
||||
| 5885 | 답변완료AM-DC2-2D | RYB | 2010-11-18 | 1,346 |
|
안녕하세요
AM-DC2-2D 제품을 사용중에 있습니다
모터전원으로 5V를 인가하고 있는데요
모터양단을 찍어보니 5V가 나오지 않고 3V정도가 나옵니다
3V가 나오는게 맞는건가요??
맞다면 이유의 대해서 알고싶습니다
관리자 답변
안녕하세요
3볼트를 측정한 장비가 테스터기 일 경우 값이 그렇게 나올 수 있습니다.
오실로 스코프로 Vp-p 측정해 보시길 바랍니다.
수고하세요
>안녕하세요
>
>AM-DC2-2D 제품을 사용중에 있습니다
>
>모터전원으로 5V를 인가하고 있는데요
>
>모터양단을 찍어보니 5V가 나오지 않고 3V정도가 나옵니다
>
>3V가 나오는게 맞는건가요??
>
>맞다면 이유의 대해서 알고싶습니다
|
||||
| 5884 | 답변완료초음파센서와 모터구동모듈을 함께 사용하려고 합니다. | 성가람 | 2010-11-17 | 1,350 |
|
귀사의 NT-TS601초음파센의 거리측정을 이용하여
AM-DC2-D2 모터구동모듈을 컨트롤 하려고 합니다.
초음파센서에서 측정한 거리의정보를 받아서 모터구동모듈로 들어가는 입력전압을
컨트롤하여 속도를 제어하려고 합니다.
학교에서 쓰는 보드가 ARM926EJ-S인데
저 두가지 모듈과 모두 호환이 가능한지 알고 싶고 작동을 수행함에 있어 또 필요한 귀사의
제품이 있는지 알려주시면 감사하겠습니다.
ps. 본작동을 수행함에 있어 AVR이 꼭 필요한지도 알고싶습니다.
- 키트사용은 지양하고 있습니다.
관리자 답변
안녕하세요? 고객님,
저희 뉴티씨 제품을 이용하여 주셔서 감사합니다.
먼저 NT-TS601은 본사의 제품이 아닙니다. 저희 대리점 중 한 회사에서 판매하는 제품입니다.
그래도 스펙을 봐 드리려고 했는 데, High Low 인식 범위 같은 것이 데이터 시트에 나와 있지 않아서, 알 수가 없네요. 5V 범위에서는 사용이 가능하겠지만, 데이터시트로볼 때 그 이하의 전압 논리 범위에서 사용이 가능한 지는 알 수가 없습니다. 그래서, 제조사로 문의하시기 바랍니다.
AM-DC2-2D는 본사의 제품이 맞습니다.
DC2-2D의 경우 최소 2V 이상이면 High로 인식하고, 0.8V 이하이면 Low로 인식합니다.
쓰시려는 ARM9 보드가 High Low 인식 범위가 맞다면 쓰셔도 될 것 같습니다.
3.3V나 2.5V를 논리 I/O로 쓴다면, 본 모터 구동보드는 사용이 가능하겠습니다.
그 암보드의 스펙을 자세히 살펴보시기 바랍니다.
다만, 본사의 킷트 AVR로 하실 경우, 5V 사용하는 제품이므로 두 제품 다 사용이 가능하다고 말씀드릴 수 있습니다.
혹시 SHARP의 GP2 시리즈 적외선 방식의 거리감지 센서는 어떤가요? 아날로그로 거리가 표현되는 데, ADC만 하면 바로 값을 알아볼 수 있습니다. 필요 거리에 따라서, 다양하게 센서도 존재하구요. 가격도 저렴하죠. 참고 바랍니다.
아래에서 파네요.
- 아래 -
http://www.automation.co.kr/sharp/index.html
감사합니다.
>귀사의 NT-TS601초음파센의 거리측정을 이용하여
>
>AM-DC2-D2 모터구동모듈을 컨트롤 하려고 합니다.
>
>초음파센서에서 측정한 거리의정보를 받아서 모터구동모듈로 들어가는 입력전압을
>
>컨트롤하여 속도를 제어하려고 합니다.
>
>학교에서 쓰는 보드가 ARM926EJ-S인데
>
>저 두가지 모듈과 모두 호환이 가능한지 알고 싶고 작동을 수행함에 있어 또 필요한 귀사의
>
>제품이 있는지 알려주시면 감사하겠습니다.
>
>
>ps. 본작동을 수행함에 있어 AVR이 꼭 필요한지도 알고싶습니다.
>- 키트사용은 지양하고 있습니다.
|
||||
| 5883 | 답변완료코드비전에 관한 질문입니다. | 김성환 | 2010-11-17 | 1,265 |
|
다음 첨부된 파일을 보시고 딜레이를 어떻게 계산해야 하는지 좀 가르쳐주세요..
포트 인터럽트 센서가 어떤 것이며 어떻게 사용해야 하는지 설명해 주세요..
엔코더를 사용해서 딜레이를 계산할 수 있다고 들었는데 엔코더는 어떻게 사용하는 건지 좀 가르쳐 주세요..
포트 인터럽트 사용방법과 엔코더 사용방법 그리고 제가 첨부한 파일들을 통해 딜레이를 어떻게 계산해야 하는 건지 좀 가르쳐주세요..
저희는 LED 잔상 효과를 통해 문자열을 출력하려고 하는데 딜레이를 맞추는 방법을 몰라서 헤매고 있습니다..
가르쳐 주시면 참 감사하겠습니다..!!
정말 몇 일 밤까지 새며 했는데도 도저히 모르겠습니다.
가르쳐주세요..
관리자 답변
안녕하세요
죄송하지만 본사에서 판매하는 키트 및 예제코드 대해서는 써포트를 하지만,
진행하시는 프로젝트에는 써포트를 하지않고 있습니다.
시간을계산 목적으로 사용할때는 루트형태의 딜레이를 사용하지않습니다.
타이머를 사용합니다. 아래링크는 자료실에 있는 타이머 예제입니다.
http://www.newtc.co.kr/board/zboard.php?id=pds&select_arrange=headnum&desc=asc&page_num=15&selected=&exec=&sn=off&ss=on&sc=off&category=&keyword=%C5%B8%C0%CC%B8%D3
수고하세요
>다음 첨부된 파일을 보시고 딜레이를 어떻게 계산해야 하는지 좀 가르쳐주세요..
>
>포트 인터럽트 센서가 어떤 것이며 어떻게 사용해야 하는지 설명해 주세요..
>
>
>엔코더를 사용해서 딜레이를 계산할 수 있다고 들었는데 엔코더는 어떻게 사용하는 건지 좀 가르쳐 주세요..
>
>
>포트 인터럽트 사용방법과 엔코더 사용방법 그리고 제가 첨부한 파일들을 통해 딜레이를 어떻게 계산해야 하는 건지 좀 가르쳐주세요..
>
>
>저희는 LED 잔상 효과를 통해 문자열을 출력하려고 하는데 딜레이를 맞추는 방법을 몰라서 헤매고 있습니다..
>
>
>가르쳐 주시면 참 감사하겠습니다..!!
>
>정말 몇 일 밤까지 새며 했는데도 도저히 모르겠습니다.
>
>가르쳐주세요..
>
>
|
||||
| 5882 | 답변완료3축 가속도 센서모듈 AM-3AXIS-P 호환과 응답에 관하여 | 우순기 | 2010-11-17 | 1,266 |
|
학교에서 사용하는 보드가 .
휴인스사의 ARM926EJ-S 인데 .. 센서가 호환이 될까요 ?
만약 호환이 된다면
센서의 출력 신호는 어떤 형태로 나오나요
예를들어 . . 보드에 연결하고 센서를 움직였을때 핀으로 출력이 바로 나오는지 알고 싶습니다.
[email protected]
관리자 답변
안녕하세요
http://newtc.co.kr/download/AM-3AXIS/AM-3AXIS-P.pdf
인가되는 전압은 5볼트입니다. 그리고 그안에 센서에 맞는 전압3.3볼트로 내려서 동작합니다.
축에 대한 가속도 값은 아날로그 0 ~ 3.3 볼트 사이값이 출력됩니다.
ARM926EJ-S ADC 를 가지고 있는지를 이칩의 IO 전압이 3.3 볼트 사용하는지 확인하신후
연결해서 사용하면 됩니다.
수고하세요
>학교에서 사용하는 보드가 .
>
>휴인스사의 ARM926EJ-S 인데 .. 센서가 호환이 될까요 ?
>
>만약 호환이 된다면
>
>센서의 출력 신호는 어떤 형태로 나오나요
>
>예를들어 . . 보드에 연결하고 센서를 움직였을때 핀으로 출력이 바로 나오는지 알고 싶습니다.
>
>[email protected]
>
>
|
||||
| 5881 | 답변완료아래 uart 코드에 대해 다시한번 올립니다. | 박현철 | 2010-11-16 | 1,409 |
|
해더부분을 고쳤는데요. 또다른 에러가 납니다 확인좀 부탁드릴께요.
에러 :
C:\\iccv7avr\\bin\\imakew -f PROJECT.mak
iccavr -c -e -D__ICC_VERSION="7.20" -DATMega128 -l -g -MLongJump -MHasMul -MEnhanced -Wf-use_elpm ..\\..\\..\\..\\DOCUME~1\\room405\\바탕화~1\\박현철\\usb.c
!E C:\\DOCUME~1\\room405\\바탕화~1\\박현철\\usb.c(74): redeclaration of `putchar' previously declared at C:\\iccv7avr\\include\\stdio.h(18)
C:\\iccv7avr\\bin\\imakew.exe: Error code 1
Done: there are error(s). Exit code: 1. Tue Nov 16 23:03:59 2010
코드
//ICC-AVR application builder : 2009-07-21 오후 5:03:53
// Target : M128
// Crystal: 16.000Mhz
//Option->System-> change CSTACK to 0xFF
//then printf will work on.
#include <iom128v.h>
#include <stdio.h>
void port_init(void)
{
PORTA = 0x00;
DDRA = 0x00;
PORTB = 0x00;
DDRB = 0x00;
PORTC = 0x00; //m103 output only
DDRC = 0x00;
PORTD = 0x00;
DDRD = 0x00;
PORTE = 0x00;
DDRE = 0x00;
PORTF = 0x00;
DDRF = 0x00;
PORTG = 0x00;
DDRG = 0x00;
}
//UART0 initialize
// desired baud rate: 115200
// char size: 8 bit
// parity: Disabled
void uart0_init(void)
{
UCSR0B = 0x00; //disable while setting baud rate
UCSR0A = 0x00;
UCSR0C = 0x06;
UBRR0L = 0x08; //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
}
int getchar(void)
{
int in;
while ((UCSR0A & 0x80) == 0);
in = UDR0;
return in;
}
int putchar(int c)
{
while (((UCSR0A>>5)&0x01) == 0) ; // UDRE, data register empty
UDR0 = c;
return c;
}
//
void main(void)
{
char in;
init_devices();
//insert your functional code here...
printf("\\r\\nTEST");
while(1){
in = getchar();
//scanf("%c", &in);
switch(in){
case 'A' : printf("\\r\\nPressed A");
break;
case 'B' : printf("\\r\\nPressed B");
break;
case 'C' : printf("\\r\\nPressed C");
break;
case 'D' : printf("\\r\\nPressed D");
break;
default : //printf("\\r\\nPressed E~Z or other");
break;
}
}
}
(기본 예제입니다)
관리자 답변
compiler options 의 paths 내용을 모두 지우세요.
|
||||
| 5880 | 답변완료라인트레이서 소스 봐주세요 | 최승태 | 2010-11-16 | 1,297 |
|
#include <mega128.h>
#include <delay.h>
//#define MLB PORTD.0
//#define MLA PORTD.1
//#define MRB PORTD.2
//#define MRA PORTD.3
void main(void){
DDRB=0x0F; DDRD=0xFF;
delay_ms(1000);
while(1){
if (PINB.0)PORTD=0b0110; // Sensor=1LL Motor=CCW, CW
else if(PINB.3)PORTD=0b1001; // Sensor=4RR Motor=CW, CCW
else if(PINB.1)PORTD=0b0010; // Sensor=2L Motor=00, CW
else if(PINB.2)PORTD=0b1000; // Sensor=3R Motor=CW, 00
else PORTD=0b1010; // Motor=CW, CW
}
}
이렇게 소스를 짜서 했는데 가변저항을 돌려도 LED 불이 안들어오네요...
프로그램이 잘못된건가요 아님 망가진건가요??...
저는코드비젼을 사용하고있습니다
관리자 답변
안녕하세요? 고객님,
질문은 까페나 이곳 중에서 한 곳에만 남겨 주세요.
그리고, 하드웨어 구성도 없고, 무슨 내용인지 알 수가 없습니다.
자세히 질문하여 주시기 바랍니다.
FAQ에서 질문하기 요령이 있는 데, 요령을 한 번 읽어 주시기 바랍니다.
자세히 질문하여야 실질적인 답변이 가능합니다.
감사합니다.
>#include <mega128.h>
>#include <delay.h>
>//#define MLB PORTD.0
>//#define MLA PORTD.1
>//#define MRB PORTD.2
>//#define MRA PORTD.3
>
>void main(void){
> DDRB=0x0F; DDRD=0xFF;
> delay_ms(1000);
> while(1){
> if (PINB.0)PORTD=0b0110; // Sensor=1LL Motor=CCW, CW
> else if(PINB.3)PORTD=0b1001; // Sensor=4RR Motor=CW, CCW
> else if(PINB.1)PORTD=0b0010; // Sensor=2L Motor=00, CW
> else if(PINB.2)PORTD=0b1000; // Sensor=3R Motor=CW, 00
> else PORTD=0b1010; // Motor=CW, CW
> }
>}
>
>이렇게 소스를 짜서 했는데 가변저항을 돌려도 LED 불이 안들어오네요...
>프로그램이 잘못된건가요 아님 망가진건가요??...
>저는코드비젼을 사용하고있습니다
|
||||
| 5879 | 답변완료아~~ 답답합니다.ㅠㅠ | JinJin | 2010-11-16 | 1,301 |
|
avr 초보자인데요..
image craft를 이용해서 테스트 하고 있습니다.
사용하는건 atmega128 pro 제품이고요...
근데 다른건 다 좋은데...
printf로 값을 되돌려 받을때요...
첨부파일 처럼 되요... 하이퍼터미널 보면 달랑 이상한 문자 두 세개만 받아져요ㅠㅠ
여기 강좌(avr printf를 이용하여 디버깅 하기)대로 했거든요...
printf문도 함수 추가해서 문제 없겠다 싶을 정도로 했는데 어떻하죠??
관리자 답변
안녕하세요? 고객님
저희 뉴티씨 제품을 이용하여 주셔서 감사합니다.
그 강좌에 보면 11.0592MHz를 시스템 클럭으로 사용하는 것으로 해서 되어 있습니다만,
현재 제품은 16MHz를 사용하고 있습니다. 따라서, 클럭이 틀리니까, 소스코드 중 uart 초기화 코드가 틀려지게 됩니다.
UART 강좌(컴파일러별)을 참고하시기 바랍니다.
거기 딸린 예제가 있으니, 그 예제를 보세요.
수고하세요.
>avr 초보자인데요..
>image craft를 이용해서 테스트 하고 있습니다.
>
>사용하는건 atmega128 pro 제품이고요...
>
>근데 다른건 다 좋은데...
>
>printf로 값을 되돌려 받을때요...
>
>첨부파일 처럼 되요... 하이퍼터미널 보면 달랑 이상한 문자 두 세개만 받아져요ㅠㅠ
>
>여기 강좌(avr printf를 이용하여 디버깅 하기)대로 했거든요...
>
>printf문도 함수 추가해서 문제 없겠다 싶을 정도로 했는데 어떻하죠??
|
||||
| 5878 | 답변완료라인트레이서 | 최승태 | 2010-11-16 | 1,276 |
|
제가 라인트레이서를 만들려고 AM-IRS4D, AM-CD2L 키트를 샀는데요 ㅠㅠ..
프로그램을 못짜서그런데 동영상처럼 가는 프로그램좀 올려주시면 안될까요 ㅠㅠ..
코드비젼으로 올려주시면 더욱 감사합니다
관리자 답변
안녕하세요? 고객님,
저희 뉴티씨 제품을 이용하여 주셔서 감사합니다.
자료실->기존 자료실에 CD2L 관련된 예제가 있습니다.
검색하여 테스트 하여 보시기 바랍니다.
- 아래 -
http://www.newtc.co.kr/board/zboard.php?id=pds&select_arrange=headnum&desc=asc&page_num=15&selected=&exec=&sn=off&ss=on&sc=off&category=&keyword=cd2l
IRS4D 관련도 마찬가지 입니다. 예제를 찾아서 돌려 보세요.
- 아래 -
http://www.newtc.co.kr/board/zboard.php?id=pds&select_arrange=headnum&desc=asc&page_num=15&selected=&exec=&sn=off&ss=on&sc=off&category=&keyword=IRS4D
소스는 직접 수정하여 써야 합니다.
소스를 못짠다고 남한테 의존적인 태도는 좋지 않습니다.
본사에서는 각 모듈의 예제는 제공하여 드리고, 강좌->동영상 강좌를 자세히 보시면서 보면, 예제를 설명까지 해 드리고 있습니다. 강좌를 보고, 꼭 공부하여 하시기 바랍니다.
청년 학생들 정도라면, 이틀 정도만 밤새서 공부하면 충분히 만들어 낼 수 있습니다.
강좌를 보고 C 언어를 이해하는 분이라면, 하루만에도 하겠지요.
인생에서 지금이 정말 마지막 좋은 기회일 수도 있습니다.
열심히 노력해서 꼭 열매를 따시기 바랍니다.
하다가 하다가 안되면 하시다가 잘 안되시면, Q&A로 질문 올려 주세요.
감사합니다.
>제가 라인트레이서를 만들려고 AM-IRS4D, AM-CD2L 키트를 샀는데요 ㅠㅠ..
>
>프로그램을 못짜서그런데 동영상처럼 가는 프로그램좀 올려주시면 안될까요 ㅠㅠ..
>
>코드비젼으로 올려주시면 더욱 감사합니다
|
||||
| 5877 | 답변완료128 질문입니다.. | 전헌섭 | 2010-11-16 | 1,255 |
|
제가 완전 초보라 이렇게 질문드립니다.
선배한테 ATMEGA128 키트를 받았는데, 전원을 꽂지 않고 컴퓨터 유에스비에만
연결해도 전원이 들어가게 되어있네요..
이거 다시 전원 콘센트로 공급받는것으로 바꾸는 방법이 궁금해요..
모터돌릴거라 출력이 있어야 할듯해서요 .. 부탁드립니다!
관리자 답변
안녕하세요
ATMEGA128 키트에는 USB 단자가 없습니다.
ATMEGA128 키트에 있는 아탑터잭에 전원을 8~12 볼트 를 인가하면됩니다.
USB로 된것은 다운로드 같아 보입니다.
아랭링크 메뉴얼은 보시면 USB 전원으로 보드를 동작시키는 방법에 대해 나와 있습니다.
그걸 번대로 하시면 됩니다.
http://newtc.co.kr/product_AD-USBISP-L.php
정확한 제품 명칭을 적어 주시길 바랍니다.
수고하세요
> 제가 완전 초보라 이렇게 질문드립니다.
>
>선배한테 ATMEGA128 키트를 받았는데, 전원을 꽂지 않고 컴퓨터 유에스비에만
>
>연결해도 전원이 들어가게 되어있네요..
>
>이거 다시 전원 콘센트로 공급받는것으로 바꾸는 방법이 궁금해요..
>
>모터돌릴거라 출력이 있어야 할듯해서요 .. 부탁드립니다!
|
||||
| 5876 | 답변완료코드비젼 질문이요 | 박양우 | 2010-11-16 | 1,419 |
|
KR - DL 라인트레이서 구매자입니다.
코드비젼을 써서 씨디의 예제 소스를 넣으려 하는데요
계속 ICCAVR 만 호환된다고 합니다
어떤건지좀 알려주세요
관리자 답변
안녕하세요? 고객님,
컴파일러마다 약간씩, 소스의 내용이 바뀝니다.
예를 들어서, include 하는 헤더 파일 이름이라던가,
ICCAVR에서는
#include <iom16v.h>
#include <macros.h>
이렇게 되는 것이, 코드비전에서는
#include <mega16.h>
#include <delay.h>
#include <stdio.h>
이렇게 하시면 되는 거죠.
코드비전에서 ICCAVR용 소스를 쓰려면,
ICCAVR 소스의 init_devices() 함수 안에서 cli(); 나 sei(); 를 그냥
//로 주석처리하여 막아주시면 되요. 사용 안되도록요.
나머지 타이머나 이런 것들은 그 소스에는 없으니까, 그냥 쓰시면 되겠네요.
printf는 내장함수 별도 선언 없이 그냥 사용하시면 되구요.
컴파일러마다 달라지는 부분은 매번 고쳐 쓰면 되는 데, 달라지는 부분들은
강좌->AVR 강좌에서 컴파일러별 UART 강좌를 참고하시면 되겠네요.
http://www.newtc.co.kr/board/view.php?id=mega128_lecture&page=1&sn1=&divpage=1&sn=off&ss=on&sc=on&select_arrange=headnum&desc=asc&no=101
수고하세요.
>KR - DL 라인트레이서 구매자입니다.
>
>코드비젼을 써서 씨디의 예제 소스를 넣으려 하는데요
>
>계속 ICCAVR 만 호환된다고 합니다
>
>어떤건지좀 알려주세요
|
||||
| 5875 | 답변완료스텝모터 9kg급 구동에 관한 질문입니다. | 김지훈 | 2010-11-16 | 1,312 |
|
atmega128과 AM-MS2를 이용해서 스텝모터를 제어하고 있습니다.
다름이 아니라 ADC를 한 결과값을 가지고
스텝모터를 제어하고 있습니다.
ADC를 하지 않고 스텝모터만 제어하면 제대로 돌아가지만
ADC와 함께 하면 스텝모터가 제대로 돌아가지 않습니다.
딜레이 주는 시간을 수정하면 만족할 만큼은 아니지만 돌아가는 때가 있는 걸로 봐선
딜레이 시간이 문제인 듯 한데 어떻게 하면 제대로 될까요?
AM-MS2에는 SMPS에서 12V 2A 선을 물려줬습니다.
//////////////////
void stepMotor(int dir, int delay_ms){
static int stepleft = 0, stepright = 0;
int i;
for(i=0; i<16; i++){
stepright = RIGHTmotorOneClock(stepright, dir);
stepleft = LEFTmotorOneClock(stepleft, dir);
_delay_ms(60);
MOTOR_PORT = stepleft|stepright;
}
}
////////////////
관리자 답변
안녕하세요
자세한 내용은 모르지만, 딜레이 문제는 아니듯 보입니다.
모터에 관한 루틴을 빼면 ADC만 하면 정상적으로 동작하는지요?
ADC와 모터관련 루틴이 서로 안맞는듯합니다.
수고하세요
>atmega128과 AM-MS2를 이용해서 스텝모터를 제어하고 있습니다.
>
>다름이 아니라 ADC를 한 결과값을 가지고
>스텝모터를 제어하고 있습니다.
>
>ADC를 하지 않고 스텝모터만 제어하면 제대로 돌아가지만
>ADC와 함께 하면 스텝모터가 제대로 돌아가지 않습니다.
>
>딜레이 주는 시간을 수정하면 만족할 만큼은 아니지만 돌아가는 때가 있는 걸로 봐선
>딜레이 시간이 문제인 듯 한데 어떻게 하면 제대로 될까요?
>
>
>AM-MS2에는 SMPS에서 12V 2A 선을 물려줬습니다.
>
>
>//////////////////
>void stepMotor(int dir, int delay_ms){
> static int stepleft = 0, stepright = 0;
> int i;
> for(i=0; i<16; i++){
> stepright = RIGHTmotorOneClock(stepright, dir);
> stepleft = LEFTmotorOneClock(stepleft, dir);
> _delay_ms(60);
> MOTOR_PORT = stepleft|stepright;
> }
>}
>////////////////
>
|
||||
| 5874 | 답변완료RF통신 모듈을 이용한 UART 수신 코드가 작동이 안됩니다. | 박현철 | 2010-11-15 | 1,428 |
|
이 소스를 넣어서 F9를 누르면
E .\\..\\..\\..\\..\\DOCUME~1\\room405\\바탕화~1\\파일\\cola.c(8): cannot include source file "iom128.h"; file not found
C:\\iccv7avr\\bin\\imakew -f KOREA.mak
iccavr -c -e -D__ICC_VERSION="7.20" -DATMega128 -l -g -MLongJump -MHasMul -MEnhanced -Wf-use_elpm ..\\..\\..\\..\\DOCUME~1\\room405\\바탕화~1\\파일\\cola.c
!E C:\\DOCUME~1\\room405\\바탕화~1\\파일\\cola.c(8): cannot include source file "iom128.h"; file not found
C:\\iccv7avr\\bin\\imakew.exe: Error code 1
Done: there are error(s). Exit code: 1. Mon Nov 15 23:08:54 2010
에러가 납니다. 왜 이렇게 나는지 알려주세요.
(* 보드는 KD-128 pro 완제입니다.)
(소스자료)
//ICC-AVR application builder : 2009-07-21 오후 5:03:53
// Target : M128
// Crystal: 16.000Mhz
//Option->System-> change CSTACK to 0xFF
//then printf will work on.
#include <iom128.h>
#include <stdio.h>
void port_init(void)
{
PORTA = 0x00;
DDRA = 0x00;
PORTB = 0x00;
DDRB = 0x00;
PORTC = 0x00; //m103 output only
DDRC = 0x00;
PORTD = 0x00;
DDRD = 0x00;
PORTE = 0x00;
DDRE = 0x00;
PORTF = 0x00;
DDRF = 0x00;
PORTG = 0x00;
DDRG = 0x00;
}
//UART0 initialize
// desired baud rate: 115200
// char size: 8 bit
// parity: Disabled
void uart0_init(void)
{
UCSR0B = 0x00; //disable while setting baud rate
UCSR0A = 0x00;
UCSR0C = 0x06;
UBRR0L = 0x08; //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
}
int getchar(void)
{
int in;
while ((UCSR0A & 0x80) == 0);
in = UDR0;
return in;
}
int putchar(int c)
{
while (((UCSR0A>>5)&0x01) == 0) ; // UDRE, data register empty
UDR0 = c;
return c;
}
//
void main(void)
{
char in;
init_devices();
//insert your functional code here...
printf("\\r\\nTEST");
while(1){
in = getchar();
//scanf("%c", &in);
switch(in){
case 'A' : printf("\\r\\nPressed A");
break;
case 'B' : printf("\\r\\nPressed B");
break;
case 'C' : printf("\\r\\nPressed C");
break;
case 'D' : printf("\\r\\nPressed D");
break;
default : //printf("\\r\\nPressed E~Z or other");
break;
}
}
}
관리자 답변
안녕하세요
#include <iom128.h>
이런 헤더는 없습니다.
#include <iom128v.h> 수정후 컴파일 해 보시길 바랍니다.
수고하세요
>이 소스를 넣어서 F9를 누르면
>E .\\..\\..\\..\\..\\DOCUME~1\\room405\\바탕화~1\\파일\\cola.c(8): cannot include source file "iom128.h"; file not found
>C:\\iccv7avr\\bin\\imakew -f KOREA.mak
> iccavr -c -e -D__ICC_VERSION="7.20" -DATMega128 -l -g -MLongJump -MHasMul -MEnhanced -Wf-use_elpm ..\\..\\..\\..\\DOCUME~1\\room405\\바탕화~1\\파일\\cola.c
>!E C:\\DOCUME~1\\room405\\바탕화~1\\파일\\cola.c(8): cannot include source file "iom128.h"; file not found
>C:\\iccv7avr\\bin\\imakew.exe: Error code 1
>Done: there are error(s). Exit code: 1. Mon Nov 15 23:08:54 2010
>
>에러가 납니다. 왜 이렇게 나는지 알려주세요.
>(* 보드는 KD-128 pro 완제입니다.)
>
>(소스자료)
>//ICC-AVR application builder : 2009-07-21 오후 5:03:53
>// Target : M128
>// Crystal: 16.000Mhz
>
>//Option->System-> change CSTACK to 0xFF
>//then printf will work on.
>
>#include <iom128.h>
>#include <stdio.h>
>
>void port_init(void)
>{
> PORTA = 0x00;
> DDRA = 0x00;
> PORTB = 0x00;
> DDRB = 0x00;
> PORTC = 0x00; //m103 output only
> DDRC = 0x00;
> PORTD = 0x00;
> DDRD = 0x00;
> PORTE = 0x00;
> DDRE = 0x00;
> PORTF = 0x00;
> DDRF = 0x00;
> PORTG = 0x00;
> DDRG = 0x00;
>}
>
>//UART0 initialize
>// desired baud rate: 115200
>// char size: 8 bit
>// parity: Disabled
>void uart0_init(void)
>{
> UCSR0B = 0x00; //disable while setting baud rate
> UCSR0A = 0x00;
> UCSR0C = 0x06;
> UBRR0L = 0x08; //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
>}
>
>
>int getchar(void)
>{
> int in;
> while ((UCSR0A & 0x80) == 0);
> in = UDR0;
> return in;
>}
>
>int putchar(int c)
>{
> while (((UCSR0A>>5)&0x01) == 0) ; // UDRE, data register empty
>
> UDR0 = c;
> return c;
>}
>
>//
>void main(void)
>{
> char in;
> init_devices();
>
> //insert your functional code here...
> printf("\\r\\nTEST");
> while(1){
> in = getchar();
> //scanf("%c", &in);
> switch(in){
> case 'A' : printf("\\r\\nPressed A");
> break;
> case 'B' : printf("\\r\\nPressed B");
> break;
> case 'C' : printf("\\r\\nPressed C");
> break;
> case 'D' : printf("\\r\\nPressed D");
> break;
> default : //printf("\\r\\nPressed E~Z or other");
> break;
> }
> }
>}
>
|
||||
