Q&A
| 번호 | 제목 | 작성자 | 등록일 | 조회 |
|---|---|---|---|---|
| 5193 | 답변완료릴레이보드사용문의드립니다. | 신정훈 | 2010-05-23 | 1,304 |
|
릴레이보드를 구입하였는데요~~
릴레이보드를 이용하여 DC 12V 와 AC 220V 제품을 제어하려고 합니다.
가능한가요??
예를 들어 채널 A에는 DC 12V 팬을 물리고 채널 B에는 AC 220V 워터펌프를 물리려고 하는데
이렇게 사용할 수 있나요?? 또 제어도 가능한가요?
관리자 답변
안녕하세요? 고객님,
저희 뉴티씨 제품을 이용하여 주셔서 감사합니다.
소스 전압은 한가지만 사용이 가능합니다.
예를 들어서 DC 12V를 전원소스로 사용한다면, 4개 채널 모두 12V를 온오프 하는 식으로 사용됩니다.
따라서, 릴레이 보드 두개를 구매하셔서, 한쪽은 DC12V 용으로 그리고, 다른 한 쪽은 AC220V 용으로 셋팅하여 쓰시면 될 것 같습니다.
수고하세요.
>
> 릴레이보드를 구입하였는데요~~
>
> 릴레이보드를 이용하여 DC 12V 와 AC 220V 제품을 제어하려고 합니다.
>
> 가능한가요??
>
> 예를 들어 채널 A에는 DC 12V 팬을 물리고 채널 B에는 AC 220V 워터펌프를 물리려고 하는데
>
> 이렇게 사용할 수 있나요?? 또 제어도 가능한가요?
|
||||
| 5192 | 답변완료제품문의 | 박영재 | 2010-05-23 | 1,357 |
|
AB-M128-B,와 AVR용 USB-ISP AD-USBISP 와 AVR STUDIO 4.13 을 사용 하고 있습니다
ATMEGA 2560 개발보드AB-M2560 를 사용코자하는데
제가지금사용중인 USB-ISP 와 AVR STUDIO 4.13 을 그대로 사용 가능한지요?
USB-ISP는 3개월전쯤구매했었는데 V02인지 V03 인지 잘 모르겠네요
관리자 답변
안녕하세요? 고객님,
그대로 사용 가능하십니다. 3개월 전이면, V03일 겁니다.
그리고, 본사 제품은 USBISP V01부터 모두 사용 가능합니다. 다만, V01과 V02은 가능하면,
본사에서 무상이오니 펌웨어를 업그레이드 하시는 것을 권고합니다.
그냥 쓰시면 됩니다.
감사합니다.
>AB-M128-B,와 AVR용 USB-ISP AD-USBISP 와 AVR STUDIO 4.13 을 사용 하고 있습니다
>
>ATMEGA 2560 개발보드AB-M2560 를 사용코자하는데
>제가지금사용중인 USB-ISP 와 AVR STUDIO 4.13 을 그대로 사용 가능한지요?
>
>USB-ISP는 3개월전쯤구매했었는데 V02인지 V03 인지 잘 모르겠네요
|
||||
| 5191 | 답변완료예제소스질문 | 황선민 | 2010-05-22 | 1,490 |
|
자꾸 같은걸로 질문해서 죄송합니다
while((ADCSRA & 0x10) != 0x10);
X[0] = ADCL;
X[1] = ADCH & 0x3f;
X[1] = X[1]<<8;
X[2] = X[LOW] + X[HIGH];
X[2] = X[2] * ((3300/676)/2);
X[3] = X[2] + X[3];
buf[2] = (X[3] & 0x3f00)>>8;
buf[3] = (X[3] & 0x00ff);
기존의 자이로센서 예제 코드 중 제가 바꾼 부분입니다
X[1]에 저장되는 ADCH의 데이터를 왼쪽으로 8비트 쉬프트한다음에
X[0]과 더해서 ADCL과 ADCH의 데이터를 합치고
공식 적용해서 degree로 바꾼다음에 --> X[2]
위치 데이터를 얻기위해 X[2]와 X[3](defaut=0)을 더해서 X[3]에 저장했구요
X[3]의 데이터를 각각 나눠서 buf[2]와 buf[3]에 저장했습니다
degree로 변환된 위치 데이터를 얻기위해 이렇게 수정했는데요
제대로 한건가요?
위 코드 외에 다른부분은 건드리지 않았습니다.
관리자 답변
zxTWQj <a href="http://ghpqzaqkwhtk.com/">ghpqzaqkwhtk</a>, [url=http://bgfnpbvnhulc.com/]bgfnpbvnhulc[/url], [link=http://wydurvsubzty.com/]wydurvsubzty[/link], <a href=http://rslxdsaumjvd.com/ target=_blank>http://rslxdsaumjvd.com/</a>
|
||||
| 5190 | 답변완료spi 통신에 대해 질문드립니다. | 정현우 | 2010-05-22 | 1,415 |
|
안녕하세요.
AB-128PRO 를 가지고 프로젝트를 진행하고 있습니다.
TN-901이라는 비접촉온도센서를 연결하여, 해당 데이터 값을 받아오려고 합니다.
TN-901은 SPI통신방식으로 데이터를 보내준다고 해서
SPI통신방식으로 프로그램을 작성하여 다운로드시키면
해당레지스터값이 이미 사용 중이라고 에러가 뜹니다.
곰곰히 생각해 보면..
컴퓨터와 ATMEGA128 을 USB로 연결하였는데
이것이 SPI방식아닐까 생각합니다.
따라서..
ATMEGA가 두개의 SPI통신이 불가능한 것은 아닌지 궁금합니다.
좋은 하루 되시길 바랍니다.
관리자 답변
안녕하세요
avr 시리즈의 다운로드방법은 spi 형식의 다운로드가 맞습니다.
그러나 mega128만 다른 핀으로 사용하여 다운로드를 받습니다.
데이터 포맷은 spi 맞으나 다운로드에 사용되는 핀은 uart0 핀에 물려 공용으로 사용합니다.
그리고 다운로드에 관련된 spi 와 주위 디바이간의 연결된 spi는 별개입니다.
사용용도가 틀립니다. 다운로드용 spi 는 reset 시에만 적용됩니다.
수고하세요
>안녕하세요.
>AB-128PRO 를 가지고 프로젝트를 진행하고 있습니다.
>TN-901이라는 비접촉온도센서를 연결하여, 해당 데이터 값을 받아오려고 합니다.
>
>TN-901은 SPI통신방식으로 데이터를 보내준다고 해서
>SPI통신방식으로 프로그램을 작성하여 다운로드시키면
>해당레지스터값이 이미 사용 중이라고 에러가 뜹니다.
>
>곰곰히 생각해 보면..
>컴퓨터와 ATMEGA128 을 USB로 연결하였는데
>이것이 SPI방식아닐까 생각합니다.
>
>따라서..
>ATMEGA가 두개의 SPI통신이 불가능한 것은 아닌지 궁금합니다.
>
>좋은 하루 되시길 바랍니다.
>
|
||||
| 5189 | 답변완료128과 JTAG연결 오류 | 오뚜기 | 2010-05-22 | 1,279 |
|
◎ 컴파일러 : WinAVR-20080610
◎ 사용IDE : Avr Studio 4.15
◎ 문제점 : 컴파일 후 디버거 실행하면 아래와 같은 에러메세지 박스가 뜬다.
"The OCD JTAG adapter was detected. gut the target device did not return a valid JTAG ID.
이하 생략.."
◎ 제쪽에서 확인한 것 :
1. AVRISP에서 Fuses탭을 선택하여 JTAGEN을 1로 설정하여 구웠음.
2. JTAG와 결선도는 3차례나 확인함.
◎ 질문내용 : Winavr에서 컴파일하면 cof파일이 나오지 않는데.. 혹시 이것때문에 문제인지요?
아니면 Winavr과 avrstudio를 예를 든 설명파일은 없는지요?
관리자 답변
안녕하세요? 고객님,
저희 뉴티씨를 이용하여 주셔서 감사합니다.
아마도 가지고 계신 JTAG 장비와 AVR Studio의 버전이 서로 맞지 않는 것 같습니다.
현재 가지고 계신 JTAG에 맞는 AVR Studio 버전을 다운로드 받아서 쓰시거나,
JTAG 펌웨어를 업그레이드 하여, 현재 가지고 계신 버전으로 펌웨어를 맞춰서 써야 합니다.
본사 장비라면, JTAG 판매시 맨 앞에 그 버전이 표시가 되어 있습니다.
또한, 아래에 업그레이드 요령이 나와 있습니다. 이 때, 반드시 ISP가 필요합니다.
- 아래 -
http://www.newtc.co.kr/board/view.php?id=pds&page=1&sn1=&divpage=1&sn=off&ss=on&sc=off&keyword=jtag&select_arrange=headnum&desc=asc&no=203
본사 JTAG 인 경우, 잘 안되시면, 본사로 가져와 보세요. 최신 버전으로 펌웨어 업그레이드를 무료로 해드립니다.
수고하세요.
>◎ 컴파일러 : WinAVR-20080610
>◎ 사용IDE : Avr Studio 4.15
>◎ 문제점 : 컴파일 후 디버거 실행하면 아래와 같은 에러메세지 박스가 뜬다.
>
> "The OCD JTAG adapter was detected. gut the target device did not return a valid JTAG ID.
> 이하 생략.."
>
>◎ 제쪽에서 확인한 것 :
> 1. AVRISP에서 Fuses탭을 선택하여 JTAGEN을 1로 설정하여 구웠음.
> 2. JTAG와 결선도는 3차례나 확인함.
>
>◎ 질문내용 : Winavr에서 컴파일하면 cof파일이 나오지 않는데.. 혹시 이것때문에 문제인지요?
> 아니면 Winavr과 avrstudio를 예를 든 설명파일은 없는지요?
>
>
|
||||
| 5188 | 답변완료USB ISP 연결이 되지 않습니다. | 채호식 | 2010-05-22 | 1,196 |
|
AB - M128 B 에 USB ISP를 물려서 사용하려고 하는데요
NTC 매뉴얼 따라서 다 설정했는데도 되지를 않습니다.
엊그제 배송 오자마자 한건데...
뭐가 잘못된건가요
설정값과 에러메세지를 같이 첨부합니다.
AVR studio에서도 연결할 수 없다고 뜨구요
포트번호 : com6과
프로그램 경로 : c:\\3PP\\ ~ 는 정확합니다.
관리자 답변
안녕하세요? 고객님,
저희 뉴티씨 제품을 이용하여 주셔서 감사합니다.
AVR Studio 버전에 따라서 COM1 ~ COM4까지만 사용이 가능한 버전이 있습니다.
따라서, COM6으로 잡혔다면 COM2 정도로 강제로 변경하여 사용하시기 바랍니다.
수고하세요.
>AB - M128 B 에 USB ISP를 물려서 사용하려고 하는데요
>
>NTC 매뉴얼 따라서 다 설정했는데도 되지를 않습니다.
>
>엊그제 배송 오자마자 한건데...
>
>뭐가 잘못된건가요
>
>
>설정값과 에러메세지를 같이 첨부합니다.
>
>AVR studio에서도 연결할 수 없다고 뜨구요
>
>포트번호 : com6과
>프로그램 경로 : c:\\3PP\\ ~ 는 정확합니다.
>
|
||||
| 5187 | 답변완료전력 관련 질문입니다. | 현경섭 | 2010-05-22 | 1,279 |
|
AB-M128-B와 AM-CS2P 2개를 연결해 스텝모터 3개를 동시에 이용하는 승강기를 개발중입니다.
전원으로 사용하는 어댑터는 12V 1.5A인데 모터를 2개 연결할 때 부터 개발보드와 AM-CS2P의 전원등이 점멸하면서 모터가 돌아가지 않더군요. 전류부족으로 생각되는데 더 높은 A를 가하는 어댑터를 사용하면 될까요? AM-CS2P는 3A까지가 입력한계전류인데 만약 12V 5A 어댑터를 사용하면 기판에 손상이 있을까요?
답변 부탁드립니다.
관리자 답변
안녕하세요? 고객님,
모터 드라이버에 전원을 높은 것으로 준다고 망가지지는 않습니다. 보통 전원은 정전압 방식이 대부부분이라 필요한 만큼만 당겨 쓰기 때문이죠.
전원으로 24V 100W 짜리 SMPS를 쓰는 게 가장 좋습니다. 본사에서도 필요하신 분을 대상으로 해당 SMPS를 판매하고 있습니다.
구매시 본사로 전화연락 주시면 됩니다.
감사합니다.
>AB-M128-B와 AM-CS2P 2개를 연결해 스텝모터 3개를 동시에 이용하는 승강기를 개발중입니다.
>
>전원으로 사용하는 어댑터는 12V 1.5A인데 모터를 2개 연결할 때 부터 개발보드와 AM-CS2P의 전원등이 점멸하면서 모터가 돌아가지 않더군요. 전류부족으로 생각되는데 더 높은 A를 가하는 어댑터를 사용하면 될까요? AM-CS2P는 3A까지가 입력한계전류인데 만약 12V 5A 어댑터를 사용하면 기판에 손상이 있을까요?
>
>답변 부탁드립니다.
|
||||
| 5186 | 답변완료AVRMEGA128모듈(AM-128PRO) 을 블루투스와 연결하는데요. | 정진승 | 2010-05-21 | 1,202 |
|
블루투스가 ttl신호라서 max232거치지 않으려면 rx와tx핀에 직접 연결하면되나요?
아니면 블루투스 쪽에도 따로 max232연결하여 128과 연결해야하나요??
답변기다리겠습니다.
즐거운 휴일되세요.
관리자 답변
안녕하세요
uart ttl 신호이면 max232 들어 가기전의 핀을 이용해서 연결해야 합니다.
아니면 애기하신대로 둘모듈을 max232 연결해서 사용해도 됩니다.
즉. ttl 레벨은 ttl 레벨끼리 아니면 max232(rs232) 레벨이면 rs232 레벨 끼리 연결해야
사용해야 합니다.
수고하세요
>블루투스가 ttl신호라서 max232거치지 않으려면 rx와tx핀에 직접 연결하면되나요?
>아니면 블루투스 쪽에도 따로 max232연결하여 128과 연결해야하나요??
>답변기다리겠습니다.
>즐거운 휴일되세요.
|
||||
| 5185 | 답변완료AM-SLCD420BL에 대한 질문입니다. | 위예슬 | 2010-05-21 | 1,280 |
|
AM-SLCD420BL에 대한 질문입니다.
저희가 짠 코드 결과를 LCD 창으로 나타내려합니다.
두 가지를 나타내야 하는데
첫째는 도보/지하철/버스 세 가지 중에 하나를 나타내는 것이고
하나는 시간을 나타내는 것입니다.
예를 들어 “ 도보 23분 ” 이렇게 나타내려 합니다.
홈페이지에 있는 동영상 강의를 들어봐도 기초적인 것부터 잘 모르겠어서요 ..
컴파일러는 ICC AVR C 컴파일러를 실행시켜서 하는 것인지도 잘 모르겠고
코드를 불러들여 "RUN"만 누르면 실행이 되는지도 잘 모르겠습니다 ...
저희가 하려는 결과 말고도 AM-SLCD420BL에서 예제 코드를 추가 시켜서 "RUN"시켜봤는데 잘 안되더라고요 ...
AM-SLCD420BL과 연결했다는 설정을 하지 않아서 그런지도 잘 모르겠습니다 ...
도와주세요 ... T-T
관리자 답변
안녕하세요
LED 불을 켜서 동작하시는 것부터 시작하시길 바랍니다.
자기가 의도하는 대로 불이 켜는지..
컴파일러가 컴파일을 하면 hex파일 정상적으로 만들어지는지..
기본적인 것부터 차례대로 시작하시갈 바랍니다.
수고하세요
>AM-SLCD420BL에 대한 질문입니다.
>
>저희가 짠 코드 결과를 LCD 창으로 나타내려합니다.
>
>두 가지를 나타내야 하는데
>
>첫째는 도보/지하철/버스 세 가지 중에 하나를 나타내는 것이고
>
>하나는 시간을 나타내는 것입니다.
>
>예를 들어 “ 도보 23분 ” 이렇게 나타내려 합니다.
>
>홈페이지에 있는 동영상 강의를 들어봐도 기초적인 것부터 잘 모르겠어서요 ..
>
>컴파일러는 ICC AVR C 컴파일러를 실행시켜서 하는 것인지도 잘 모르겠고
>
>코드를 불러들여 "RUN"만 누르면 실행이 되는지도 잘 모르겠습니다 ...
>
>저희가 하려는 결과 말고도 AM-SLCD420BL에서 예제 코드를 추가 시켜서 "RUN"시켜봤는데 잘 안되더라고요 ...
>
>AM-SLCD420BL과 연결했다는 설정을 하지 않아서 그런지도 잘 모르겠습니다 ...
>
>도와주세요 ... T-T
>
|
||||
| 5184 | 답변완료스테핑 모터 | 정영 | 2010-05-21 | 1,437 |
|
kt-m128키트에서 제공하는 se-sm243스테핑 모터를
테스트 하고 있는데요
이거를 돌리지는 않고 전원이랑 계속 연결해 놨는데
상당히 뜨거워 지는데요.
왜 그럴까요?;;
그리고 문제가 없는 건가요?
관리자 답변
안녕하세요
어떤 모터 드라이버로 연결해서 사용하시는 것지요 ?
높은 전류를 소모하면 열로 발산됩니다.
모터드라이버에 가변저항으로 전류 를 제한할수 있습니다.
그 드라이버에 맞는 예제코드 를 다운받아서 코드를 넣으후 테스트를 하시는 것가요 ?
질문시 .. 개발환경및 사용하는 코드 등 을 적으시길 바랍니다.
수고하세요
>
>kt-m128키트에서 제공하는 se-sm243스테핑 모터를
>
>테스트 하고 있는데요
>
>이거를 돌리지는 않고 전원이랑 계속 연결해 놨는데
>
>상당히 뜨거워 지는데요.
>
>왜 그럴까요?;;
>
>그리고 문제가 없는 건가요?
|
||||
| 5183 | 답변완료AM-CSVP 출력 전압 관련 문의 드립니다. | 조현수 | 2010-05-20 | 1,403 |
|
AM-CSVP 로 SE-A410 8개를 제어하고 있습니다.
8관절 4족 로봇인데 토크가 약간 딸려서 걷는것이 불안불안 합니다.
아답터 전류가 1000mA 라서 전류가 부족한건가요??
전에 본사로 직접 구입하러 갔을 때 8개 제어하는데 300mA짜리를 주셔서
집에 있는 1000mA 로 바꿨는데도..
전류 부족이 아니라면, 전압을 증가시켜서라도 토크를 더 내고 싶은데요,
AM-CSVP의 기본 출력은 5V로 SE-A410은 6V에서 더 큰 토크를 낼 수 있는 것으로 알고
있는데요, 출력을 5V에서 6V로 증가시키는 방법이 없을까요?
관리자 답변
안녕하세요
A410 는 무부하시 180mA 입니다.
8개이면 1440mA 입니다.
부하시 더큰 소모전류 올라 갑니다.
아탑터 용량을 변경하여 사용하시길를 권장합니다.
수고하세요
>AM-CSVP 로 SE-A410 8개를 제어하고 있습니다.
>
>8관절 4족 로봇인데 토크가 약간 딸려서 걷는것이 불안불안 합니다.
>
>아답터 전류가 1000mA 라서 전류가 부족한건가요??
>
>전에 본사로 직접 구입하러 갔을 때 8개 제어하는데 300mA짜리를 주셔서
>
>집에 있는 1000mA 로 바꿨는데도..
>
>전류 부족이 아니라면, 전압을 증가시켜서라도 토크를 더 내고 싶은데요,
>
>AM-CSVP의 기본 출력은 5V로 SE-A410은 6V에서 더 큰 토크를 낼 수 있는 것으로 알고
>
>있는데요, 출력을 5V에서 6V로 증가시키는 방법이 없을까요?
|
||||
| 5182 | 답변완료문의드립니다. | 천대성 | 2010-05-20 | 1,380 |
|
안녕하십니까 AB-M128-B보드와 관련해 질문 드릴 것이 있습니다.
프로젝트 진행과 관련해 atmega128 - pc간 통신으로 모터를 제어하는 프로그램을 만들었습니다.
처음 작성한 코드를 사용해 직렬 유선 통신을 해보고 잘 동작하는 것을 확인한 후에 무선 통신을 하기 위해 패킷의 처음과 끝을 구분하는 부분을 추가한 코드를 타겟보드로 다운로드 한 뒤부터 타겟보드가 정상 동작을 하지 않습니다. 여분의 타겟보드에 정상적으로 동작하는 코드를 라이팅하고 확인해보니 잘 동작했고, 다시 무선 통신용으로 약간 수정한 코드를 라이팅하고 확인해보니 동작하지 않습니다.
문제는 두 보드 모두 정상 작동 하던 코드를 다시 라이팅해도 동작하지 않고 있습니다.
다른 코드들도 라이팅 해보고 erase device도 해서 다시 라이팅도 해보고 일주일째 여러 방법을 찾아봤는데 허사였습니다.
글로 설명드리자니 어려운데 우선 아래에 정상 동작하던 코드와 문제가 된 코드를 첨부하겠습니다. 두 코드엔 큰차이가 없고 패킷을 구분하는 0xC0를 추가하고 pc에서 명령을 받을 시 0xC0 다음부터만 받도록 구현했습니다.
사용한 장비(?)들은 AB-M128-B, AD-USBISP V03, AM-DC2-4C입니다. 전원 공급은 DC12V, 500mA어댑터 또는 리튬폴리머 DC11.1V, 100mA를 사용했습니다.
개발 환경은 AVRStudio 4.15버젼을 사용했습니다.
바쁘신데 시간 내어주셔서 감사드립니다.
---------------------정상 동작 코드---------------------
#include <avr/io.h>
#include <avr/signal.h>
char rec=0;
void delay(void)
{
unsigned int i=0,j=0;
for(i=0; i<10000; i++)
{
for(j=0; j<5000; j++);
}
}
void TX0_char(unsigned char data)
{
while((UCSR0A & 0x20) == 0x00);
UDR0 = data;
}
void TX0_string(unsigned char *string)
{
while(*string !='\\0')
{
TX0_char(*string);
string++;
}
TX0_char(0x0d);
TX0_char(0x0a);
delay();
}
SIGNAL(SIG_UART0_RECV)
{
rec= UDR0;
switch(rec)
{
case 'w' : PORTD = 0x00; //모터 정방향
break;
case 's' : PORTD = 0x02; //모터 역방향
break;
case 'a' : OCR0 = 0x70; //속도 느리게
break;
case 'd' : OCR0 = 0xff; //속도 빠르게
break;
case ' ' : PORTD = 0x01; //모터 정지
break;
default : break;
}
}
int main(void)
{
DDRD = 0xff;
DDRB = 0XFF;
UBRR0H = 0; //9600 baud
UBRR0L = 103;
UCSR0A = 0X00; // asynchronous normal mode
UCSR0B = 0X98; // RX/TX enable, RX interrupt enable, 8 data
UCSR0C = 0X06; // No Parity, 1 stop, 8data
TIMSK = 0x03; //Enable OCR Interrupt & Overflow Interrupt
TCCR0 = 0x6B; //Nornal mode, CLK/32 -> f=1953Hz
TCNT0 = 0x00;
OCR0 = 0x60; //Duty 50% ->모터 속도조절
SREG = 0X80;
PORTD = 0x00;
while(1)
{
TX0_string("Pig Huf");
}
}
---------------------------문제 코드----------------------------
#include <avr/io.h>
#include <avr/signal.h>
#define FEND 0xC0
char rec=0;
void delay(void)
{
unsigned int i=0,j=0;
for(i=0; i<10000; i++)
{
for(j=0; j<5000; j++);
}
}
void TX0_char(unsigned char data)
{
while((UCSR0A & 0x20) == 0x00);
UDR0 = data;
}
void TX0_string(unsigned char *string)
{
while(*string !='\\0')
{
TX0_char(*string);
string++;
}
TX0_char(0x0d);
TX0_char(0x0a);
delay();
}
SIGNAL(SIG_UART0_RECV)
{
static enum {READY, START} RxSeq = READY;
rec= UDR0;
switch(RxSeq)
{
case READY:
if(rec == FEND)
RxSeq = START;
break;
case START:
switch(rec)
{
case 'w' : PORTD = 0x01; //모터 정방향
break;
case 's' : PORTD = 0x02; //모터 역방향
break;
case 'a' :
OCR0 = 0x70; //속도 느리게
break;
case 'd' :
OCR0 = 0xff; //속도 빠르게
break;
case ' ' : PORTD = 0x03; //모터 정지
break;
default :
if(rec == FEND)
RxSeq = READY;
break;
}
break;
default: RxSeq = READY; break;
}
}
int main(void)
{
DDRD = 0xff;
DDRB = 0XFF;
UBRR0H = 0; //9600 baud
UBRR0L = 103;
UCSR0A = 0X00; // asynchronous normal mode
UCSR0B = 0X98; // RX/TX enable, RX interrupt enable, 8 data
UCSR0C = 0X06; // No Parity, 1 stop, 8data
TIMSK = 0x03; //Enable OCR Interrupt & Overflow Interrupt
TCCR0 = 0x6B; //Nornal mode, CLK/32 -> f=1953Hz
TCNT0 = 0x00;
OCR0 = 0x60; //Duty 50% ->모터 속도조절
SREG = 0X80;
while(1)
{
TX0_string("ICU_TX");
}
}
관리자 답변
안녕하세요
잘 동작하던 코드 안하는 경우는 설정이나 변경되거나 퓨즈를 변경시켜 칩이 망가진 경우가 있습니다.
칩의 퓨즈비트가 정상적인지 확인 보시길 바랍니다. 0xff19ef 나 xffd9ef 로 나오는지
확인해 보시길 바랍니다.
수고하세요
>안녕하십니까 AB-M128-B보드와 관련해 질문 드릴 것이 있습니다.
>
>프로젝트 진행과 관련해 atmega128 - pc간 통신으로 모터를 제어하는 프로그램을 만들었습니다.
>
>처음 작성한 코드를 사용해 직렬 유선 통신을 해보고 잘 동작하는 것을 확인한 후에 무선 통신을 하기 위해 패킷의 처음과 끝을 구분하는 부분을 추가한 코드를 타겟보드로 다운로드 한 뒤부터 타겟보드가 정상 동작을 하지 않습니다. 여분의 타겟보드에 정상적으로 동작하는 코드를 라이팅하고 확인해보니 잘 동작했고, 다시 무선 통신용으로 약간 수정한 코드를 라이팅하고 확인해보니 동작하지 않습니다.
>문제는 두 보드 모두 정상 작동 하던 코드를 다시 라이팅해도 동작하지 않고 있습니다.
>다른 코드들도 라이팅 해보고 erase device도 해서 다시 라이팅도 해보고 일주일째 여러 방법을 찾아봤는데 허사였습니다.
>글로 설명드리자니 어려운데 우선 아래에 정상 동작하던 코드와 문제가 된 코드를 첨부하겠습니다. 두 코드엔 큰차이가 없고 패킷을 구분하는 0xC0를 추가하고 pc에서 명령을 받을 시 0xC0 다음부터만 받도록 구현했습니다.
>
>사용한 장비(?)들은 AB-M128-B, AD-USBISP V03, AM-DC2-4C입니다. 전원 공급은 DC12V, 500mA어댑터 또는 리튬폴리머 DC11.1V, 100mA를 사용했습니다.
>개발 환경은 AVRStudio 4.15버젼을 사용했습니다.
>
>바쁘신데 시간 내어주셔서 감사드립니다.
>
>---------------------정상 동작 코드---------------------
>#include <avr/io.h>
>#include <avr/signal.h>
>
>char rec=0;
>
>void delay(void)
>{
> unsigned int i=0,j=0;
> for(i=0; i<10000; i++)
> {
> for(j=0; j<5000; j++);
> }
>}
>
>void TX0_char(unsigned char data)
>{
> while((UCSR0A & 0x20) == 0x00);
> UDR0 = data;
>}
>
>void TX0_string(unsigned char *string)
>{
> while(*string !='\\0')
> {
> TX0_char(*string);
> string++;
> }
> TX0_char(0x0d);
> TX0_char(0x0a);
> delay();
>}
>
>SIGNAL(SIG_UART0_RECV)
>{
> rec= UDR0;
> switch(rec)
> {
> case 'w' : PORTD = 0x00; //모터 정방향
> break;
> case 's' : PORTD = 0x02; //모터 역방향
> break;
> case 'a' : OCR0 = 0x70; //속도 느리게
> break;
> case 'd' : OCR0 = 0xff; //속도 빠르게
> break;
> case ' ' : PORTD = 0x01; //모터 정지
> break;
> default : break;
> }
>}
>
>
>int main(void)
>{
> DDRD = 0xff;
> DDRB = 0XFF;
> UBRR0H = 0; //9600 baud
> UBRR0L = 103;
> UCSR0A = 0X00; // asynchronous normal mode
> UCSR0B = 0X98; // RX/TX enable, RX interrupt enable, 8 data
> UCSR0C = 0X06; // No Parity, 1 stop, 8data
>
> TIMSK = 0x03; //Enable OCR Interrupt & Overflow Interrupt
> TCCR0 = 0x6B; //Nornal mode, CLK/32 -> f=1953Hz
> TCNT0 = 0x00;
> OCR0 = 0x60; //Duty 50% ->모터 속도조절
> SREG = 0X80;
>
> PORTD = 0x00;
>
>
> while(1)
> {
> TX0_string("Pig Huf");
> }
>}
>
>
>---------------------------문제 코드----------------------------
>#include <avr/io.h>
>#include <avr/signal.h>
>
>
>#define FEND 0xC0
>
>
>char rec=0;
>
>void delay(void)
>{
> unsigned int i=0,j=0;
> for(i=0; i<10000; i++)
> {
> for(j=0; j<5000; j++);
> }
>}
>
>void TX0_char(unsigned char data)
>{
> while((UCSR0A & 0x20) == 0x00);
> UDR0 = data;
>}
>
>void TX0_string(unsigned char *string)
>{
> while(*string !='\\0')
> {
> TX0_char(*string);
> string++;
> }
> TX0_char(0x0d);
> TX0_char(0x0a);
> delay();
>}
>
>SIGNAL(SIG_UART0_RECV)
>{
> static enum {READY, START} RxSeq = READY;
>
> rec= UDR0;
>
> switch(RxSeq)
> {
> case READY:
> if(rec == FEND)
> RxSeq = START;
> break;
> case START:
> switch(rec)
> {
> case 'w' : PORTD = 0x01; //모터 정방향
> break;
> case 's' : PORTD = 0x02; //모터 역방향
> break;
> case 'a' :
> OCR0 = 0x70; //속도 느리게
> break;
> case 'd' :
> OCR0 = 0xff; //속도 빠르게
> break;
> case ' ' : PORTD = 0x03; //모터 정지
> break;
> default :
> if(rec == FEND)
> RxSeq = READY;
> break;
> }
> break;
> default: RxSeq = READY; break;
> }
>}
>
>
>int main(void)
>{
> DDRD = 0xff;
> DDRB = 0XFF;
> UBRR0H = 0; //9600 baud
> UBRR0L = 103;
> UCSR0A = 0X00; // asynchronous normal mode
> UCSR0B = 0X98; // RX/TX enable, RX interrupt enable, 8 data
> UCSR0C = 0X06; // No Parity, 1 stop, 8data
>
>
> TIMSK = 0x03; //Enable OCR Interrupt & Overflow Interrupt
> TCCR0 = 0x6B; //Nornal mode, CLK/32 -> f=1953Hz
> TCNT0 = 0x00;
> OCR0 = 0x60; //Duty 50% ->모터 속도조절
> SREG = 0X80;
>
> while(1)
> {
> TX0_string("ICU_TX");
> }
>}
>
>
|
||||
| 5181 | 답변완료스테핑모터9kg (SE-SM) 속도제어할때 8051로 .. | 최유미 | 2010-05-20 | 1,318 |
|
스테핑모터9kg (SE-SM2)에 AM-MS2(모터 구동보드)를 연결하여 속도제어할때 8051로 제어하려하는데 모터 구동 예제소스좀 구할수 없을까요?
관리자 답변
안녕하세요
89s52로 ms2를 구동시키는 코드는 현재는 없습니다.
avr용으로 있는 기본 코드를 분석후 8051로 변환하여 작성해야 할것같네요
하지만, 8051용 CS2P 컨트롤러용 예제 소스는 있습니다. 아래를 참고하세요.
- 아래 -
http://www.newtc.co.kr/board/view.php?id=pds&page=1&sn1=&divpage=1&sn=off&ss=on&sc=off&keyword=89S52&select_arrange=headnum&desc=asc&no=311
수고하세요
>스테핑모터9kg (SE-SM2)에 AM-MS2(모터 구동보드)를 연결하여 속도제어할때 8051로 제어하려하는데 모터 구동 예제소스좀 구할수 없을까요?
|
||||
| 5180 | 답변완료질문이요. 서보모터 스텝모터관련 | 정영 | 2010-05-20 | 1,449 |
|
이번에 cds로 광량을 받아서
블라인드 각도를 조절하는걸 해볼려고 하는데요.
밝으면 블라인드 슬릿이 닫히고 어두우면 열리는~
키트는 kt m128을 사용하고 컴파일러는 iccavr입니다.
막 공부를 시작하면서 막막함을 느끼는데요.
스테핑모터가 좋을까요 아니면 서보모터가 좋을까요.
예제소스로 스테핑모터는 구동시켜 봤는데요.
생각해보니까 스테핑 모터로 특정 광량에 따라 기준점으로 부터 모터회전각을 지정해서
움직이게 할 수 있을까요?
예를들면 광량이 500일때는 60도. 200일때는 30도.
30도 만큼 회전이 아니라 기준점에대해서 30도 혹은 60도 회전한 '상태'인거죠.
이걸 스테핑모터로 구현할 수 있나요?
피드백 제어가 아니라 가능할까라는 생각이 들어서 ...
서보모터로 바꿔야 하나 고민중입니다. (지금까지 일단 스테핑만 공부했거든요 ㅠ;;)
만약 할 수 있다면 어떤 방식으로 코딩을 해야하는지
힌트좀 주세요. 다 가르쳐달라는 말이 아닙니다. ㅠㅠ;
관리자 답변
안녕하세요
rc서보는 움직일수있는 각도 제한이 있습니다.
범위각안에만 움직일수 있죠
스텝은 정확히 클럭준 만큼만 이동하기 떄문에 구동토크에 문제가 없으면
제어가 가능합니다.
cds는 전압을 adc로 받는것, 스텝모터 각도 제어 따로 구현해서
합치는 방식을 나을것 같네요
기본 소스예제는 자료실 >기존자료실에 찾아보시면 있습니다.
수고하세요
>
>이번에 cds로 광량을 받아서
>블라인드 각도를 조절하는걸 해볼려고 하는데요.
>밝으면 블라인드 슬릿이 닫히고 어두우면 열리는~
>
>키트는 kt m128을 사용하고 컴파일러는 iccavr입니다.
>
>막 공부를 시작하면서 막막함을 느끼는데요.
>스테핑모터가 좋을까요 아니면 서보모터가 좋을까요.
>예제소스로 스테핑모터는 구동시켜 봤는데요.
>생각해보니까 스테핑 모터로 특정 광량에 따라 기준점으로 부터 모터회전각을 지정해서
>움직이게 할 수 있을까요?
>예를들면 광량이 500일때는 60도. 200일때는 30도.
>30도 만큼 회전이 아니라 기준점에대해서 30도 혹은 60도 회전한 '상태'인거죠.
>이걸 스테핑모터로 구현할 수 있나요?
>피드백 제어가 아니라 가능할까라는 생각이 들어서 ...
>서보모터로 바꿔야 하나 고민중입니다. (지금까지 일단 스테핑만 공부했거든요 ㅠ;;)
>만약 할 수 있다면 어떤 방식으로 코딩을 해야하는지
>힌트좀 주세요. 다 가르쳐달라는 말이 아닙니다. ㅠㅠ;
>
>
|
||||
| 5179 | 답변완료에러 나오기전 설정상태입니다/ | 김광록 | 2010-05-20 | 1,299 |
|
ㅇ
관리자 답변
이미지를 확인해 본결과 퓨즈비트를 설정해 사용해서 망가진 상태입니다.;;;
퓨즈를 변경할때만 program fuse bit 체크를한후
아래 세부내역에 있는 비트를 체크해야합니다.
제품 출하시 사용할수 있도록 미리 셋팅되어 나가기 떄문에 따로 퓨즈 변경해서 사용할일을
잘 없습니다.
출하시 셋팅된값을 0xffd9ef
BOOTZ1, BOOTZ0, SUT0 이 3개 비트가 체크 되어 나갑니다.
사용안할때는 program fuse bit 체크 하지 않고 일반적으로 사용합니다.
보드 점검을 받아 보시길 바랍니다..
수고하세요
>ㅇ
|
||||
