로그인 | 회원가입 | 주문 조회
총 10,748개의 질문이 있습니다.
번호 제목 작성자 등록일 조회
5168 답변완료밑에 모터 퍼짐 현상을 질문한 학생입니다. 김호연 2010-05-19 1,256
카페에 답글 달아주신것도 읽고 여기 Q&A에 올려주신것도 읽었습니다.. 카페에다가는 다시 질문을 남겼는데 시간이 부족해서 이곳에다가도 다시 남깁니다. 답변주신 전류공급이 부족한다고 하셨는데, 저희는 뉴티씨에서 모터 구입시 24V 100W SMPS를 같이 구매해서 그것을 사용하고 있습니다. 연결은 SMPS->5V레귤레이터 -> MCU SMPS->5V레귤레이터 -> 모터 전원 SMPS->CS2 이렇게 연결 된 상태입니다. 말씀하신 전류 부족을 생각해 보았는데 전류가 부족하여 모터가 멈추는 상태라면 모터에 발열이 심하지 않나요? 발열은 거의 없다시피 합니다(400RPM에서 계속 멈춰서 그런지는 모르겠지만...) (아 그리고 MS2와 CS2 두 모터드라이버를 다 가지고 있어서 착각했는데 MS2가 아닌 CS2를 사용중입니다..) 모터 드라이버는 3A까지 공급이 가능하다고 나와있는데 가속테이블 제작 전에 전류를 좀 더 공급하려고 모터드라이버에 있는 전류 공급 가변저항을 MAX가까이 올렸더니 타는 냄새가 나서 급히 가운데로 놓은 후 변경하지를 않았는데요, CS2에서 가변저항을 얼마정도로 하는게 모터에 충분한 전류를 줄 수 있을까요?? 또한 전류공급 전선 VCC와 GND는 학교 실습실에서 사용하는 브레드보드용 굵은 단선을 사용합니다. 게다가 단선으로 전원 공급 후 단선 위에 납으로 굵게 해놨구요... 변수가 너무많아 찾기가 힘드네요 ㅠ -24V 100W SMPS를 사용하는데도 전류가 부족할 수 있나요? -그렇다면 모터 드라이버에서 충분한 전력을 주지 못하는것인지?(가변저항은 가운데 있습니다.) -아니면 모터의 고장이라던가 -그것도 아니라면 가속테이블이 너무 급한 경사로 올라가서 그러는것인가... 마음이 급하여 뉴티씨 카페에 덧글과 이곳에도 글을 남겨봅니다. 답변기다리겠습니다. 감사합니다 (__)
관리자 답변 NEWTC · 2010-05-20
안녕하세요 24V 100W , 9KG 스텝모터를 구동시키는 것은 별 무리 없습니다. 제가 ms2p 로 테스트 해본 결과 클럭 주파수 5000hz 넘어가면 탈조가 일어났습니다. 그래프상 5kHz 이면 1500rpm 입니다. 제가 한 가속테이블은 대략 1초 20kHz간격으로 주파수를 올렸습니다. 모터가 이상하다고 느끼시면 본사로 방문하시거나 택배를 보내시어 테스트를 받아 보시길 바랍니다. 수고하세요 >카페에 답글 달아주신것도 읽고 여기 Q&A에 올려주신것도 읽었습니다.. > >카페에다가는 다시 질문을 남겼는데 시간이 부족해서 이곳에다가도 다시 남깁니다. > >답변주신 전류공급이 부족한다고 하셨는데, > >저희는 뉴티씨에서 모터 구입시 24V 100W SMPS를 같이 구매해서 그것을 > >사용하고 있습니다. > >연결은 > >SMPS->5V레귤레이터 -> MCU >SMPS->5V레귤레이터 -> 모터 전원 >SMPS->CS2 > >이렇게 연결 된 상태입니다. > >말씀하신 전류 부족을 생각해 보았는데 > >전류가 부족하여 모터가 멈추는 상태라면 모터에 발열이 심하지 않나요? > >발열은 거의 없다시피 합니다(400RPM에서 계속 멈춰서 그런지는 모르겠지만...) > >(아 그리고 MS2와 CS2 두 모터드라이버를 다 가지고 있어서 착각했는데 >MS2가 아닌 CS2를 사용중입니다..) > >모터 드라이버는 3A까지 공급이 가능하다고 나와있는데 > >가속테이블 제작 전에 전류를 좀 더 공급하려고 모터드라이버에 있는 > >전류 공급 가변저항을 MAX가까이 올렸더니 타는 냄새가 나서 급히 > >가운데로 놓은 후 변경하지를 않았는데요, > >CS2에서 가변저항을 얼마정도로 하는게 모터에 충분한 전류를 줄 수 있을까요?? > > >또한 전류공급 전선 VCC와 GND는 학교 실습실에서 사용하는 브레드보드용 > >굵은 단선을 사용합니다. > >게다가 단선으로 전원 공급 후 단선 위에 납으로 굵게 해놨구요... > >변수가 너무많아 찾기가 힘드네요 ㅠ > >-24V 100W SMPS를 사용하는데도 전류가 부족할 수 있나요? > >-그렇다면 모터 드라이버에서 충분한 전력을 주지 못하는것인지?(가변저항은 가운데 있습니다.) > >-아니면 모터의 고장이라던가 > >-그것도 아니라면 가속테이블이 너무 급한 경사로 올라가서 그러는것인가... > >마음이 급하여 뉴티씨 카페에 덧글과 이곳에도 글을 남겨봅니다. > >답변기다리겠습니다. > >감사합니다 (__)
5167 답변완료스테핑라인트레이서 박인용 2010-05-19 1,298
스테핑 라인트레이서 완제품을 구매했습니다. 이 제품에서 남은 포트를 이용해 RF모듈을 장착할수 있는지 궁금합니다. 아니면 RF모듈을 통해서 라인트레이서의 역할을 RC카처럼 무선조종이 가능할수 있는 방법이 있는지 알려주십시오!
관리자 답변 NEWTC · 2010-05-19
안녕하세요 rf 모듈은 uart 통신으로 연결이 가능합니다. 일반포트가 아니 uart포트를 사용해야합니다. mega128일경우는 uart 2개가 있습니다. mega16 은 uart 1개입니다. uart 하나당 2개 포트 rx ,td 가 존재합니다. 구현하실려는 것은 가능하고 코드는 짜드릴지는 않습니다. 수고하세요 >스테핑 라인트레이서 완제품을 구매했습니다. >이 제품에서 남은 포트를 이용해 >RF모듈을 장착할수 있는지 궁금합니다. >아니면 RF모듈을 통해서 라인트레이서의 역할을 >RC카처럼 무선조종이 가능할수 있는 방법이 있는지 알려주십시오!
5166 답변완료감사합니다!! 한가지 더 질문이있어요^^; 김영훈 2010-05-19 1,324
RF모듈 테스트해봤는데 정말 잘되더군요^^ 감사합니다. 제가 한가지 더 추가를 해보려하는데... 생각처럼 잘안되서...조언한번 더 구하려고 이렇게 질문 드립니다^^;; 오늘 알려주신 코드비전 RF테스트 소스에서 포트A번을 제어하고싶은데.. 포트A에 스위치를 달고 스위치가 on 되면 "RF TEST" 라는 문구를 RF모듈로 전송하는건 어떻게해야하나요? 예제랑 찾아서 조합하면서 해보고있는데 잘 안되더라구요.. 부탁드립니다^^
관리자 답변 NEWTC · 2010-05-19
안녕하세요 예제코드 제공과 하드웨어 대해 문의만을 받습니다. 코드 작성은 해드릴지 않습니다. 포트A 0번째 핀에 스위치 일경우 if (PINA&0x01 ) // 액티브 하이 printf ( "rf test"); if ( ~(PINA&0x01) ) // 액티브 로우 printf ( "rf test"); 수고하세요 >RF모듈 테스트해봤는데 정말 잘되더군요^^ 감사합니다. >제가 한가지 더 추가를 해보려하는데... >생각처럼 잘안되서...조언한번 더 구하려고 이렇게 질문 드립니다^^;; >오늘 알려주신 코드비전 RF테스트 소스에서 >포트A번을 제어하고싶은데.. >포트A에 스위치를 달고 스위치가 on 되면 "RF TEST" 라는 문구를 RF모듈로 전송하는건 어떻게해야하나요? >예제랑 찾아서 조합하면서 해보고있는데 잘 안되더라구요.. >부탁드립니다^^
5165 답변완료AM-2561PRO Module 에서.. 정진승 2010-05-19 1,358
AM-2561PRO Module에서요 . 전원 5V를 모듈 위에 전원 커넥터에 연결하면 따로 핀에 있는 VCC에 5V를 따로 안 주어도 되나요? GND도요.
관리자 답변 NEWTC · 2010-05-19
안녕하세요 2핀컨넥터에 VCC에 5볼트를 공급하면 VCC 라고 적혀있는 곳은 전부 연결되어있습니다.; 그러므로 VCC 라는 한곳에만 전압을 인가하면 다른 VCC 핀에 5볼트가 인가됩니다. 수고하세요 >AM-2561PRO Module에서요 . 전원 5V를 모듈 위에 전원 커넥터에 연결하면 따로 핀에 있는 VCC에 5V를 따로 안 주어도 되나요? GND도요.
5164 답변완료RC서보제어 김광수 2010-05-19 1,418
AM-128PRO와 AB-M128-A를 사용하고 있는 사용자입니다. 이두가지를 이용하여 RC서보모터를 5개를 각각 조절하고 싶습니다. 여기에 사용할 수 있는 예제가 있는지 있으면 어디서 파일을 받을 수 있는지 알고 싶습니다.
관리자 답변 NEWTC · 2010-05-19
안녕하세요 기본적인 예제코드 자료실 > 기존자료실에 다 있습니다. 아래는 서보와 관련된 예제코드입니다. 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=%BC%AD%BA%B8 수고하세요 >AM-128PRO와 AB-M128-A를 사용하고 있는 사용자입니다. > >이두가지를 이용하여 RC서보모터를 5개를 각각 조절하고 싶습니다. > >여기에 사용할 수 있는 예제가 있는지 > >있으면 어디서 파일을 받을 수 있는지 알고 싶습니다.
5163 답변완료다시 문의요 박준연 2010-05-19 1,427
안녕하세요 이미지 1번째에 ISP frequency 1.206khz 를 제일 높은 주파수로 변경해서 사용하십시오 (1.843Mhz 로 변경) 변경을 했는데도 에러 메시지가 나오면 점검을 받아 보시길 바랍니다 이렇게 답변해주셨는데 원래 제일 높은 주파수로 설정되어있는걸 낮은 주파수로 하나씩 변경하면서 모두 해봤는데 안되었습니다. 지금 타겟보드와 연결이 안되는것 같은데 이런상황에 맞는 팁같은건 없나요? 제가 올린 스샷으로는 하드웨어 문제인건지 제가 설정을 잘못해서 그런건지 정확하게 알려주실수는 없는건가요? 새로산 보드에서 실행했을때도 저렇게 나오는데 isp가 문제가 있는건지 정확한 답변바랍니다.
관리자 답변 NEWTC · 2010-05-19
안녕하세요 고객님이 사용하실때 ISP frequency 1.206khz 저절로 변경된 값이라면 USBISP 문제가 있어 보입니다. 점검을 보내실떄는 타겟보드와 함께 보내시길 바랍니다. 직접확인해야 정확히 알수 있습니다. 수고하세요 >안녕하세요 > >이미지 1번째에 ISP frequency 1.206khz 를 제일 높은 주파수로 변경해서 사용하십시오 >(1.843Mhz 로 변경) > >변경을 했는데도 에러 메시지가 나오면 점검을 받아 보시길 바랍니다 > >이렇게 답변해주셨는데 > >원래 제일 높은 주파수로 설정되어있는걸 낮은 주파수로 하나씩 >변경하면서 모두 해봤는데 안되었습니다. >지금 타겟보드와 연결이 안되는것 같은데 이런상황에 맞는 팁같은건 없나요? >제가 올린 스샷으로는 >하드웨어 문제인건지 제가 설정을 잘못해서 그런건지 정확하게 알려주실수는 없는건가요? >새로산 보드에서 실행했을때도 저렇게 나오는데 isp가 문제가 있는건지 정확한 답변바랍니다.
5162 답변완료스텝모터 9kg 모터 탈조(?)퍼짐(?)현상 때문에 질문드립니다. 김호연 2010-05-18 1,428
귀사의 스텝모터9kg 급과 모터드라이버 MS2를 사용하여 LED자상을 출력하는 프로젝트를 하는 학생입니다. 현재 가속테이블을 이용하여 모터 RPM을 600까지 회전시키려 하고 있으나 무슨 이유인지 400RPM에서 계속 모터가 죽어버리는 현상이 일어나고 있습니다. 회전체에서 모터 축과 중심이 맞지 않을까 생각하여 회전체 H/W를 전부 재구성 해서 돌려본결과 같은 400RPM에서 퍼짐현상이 계속 일어나네요.(아직 흔들림이 조금은 남아 있습니다) 가속테이블에서 좀 더 시간을 두며 천천히 올려야 할지, 아니면 모터가 흔들려서 퍼지는 현상이 일어나는지, 그것도 아니면 모터가 고장이 난것인지 회전체가 무거워서인지...(약 1KG정도 되는것 같습니다.) 도저히 감이 오지 않네요; 가속테이블 그래프 캡쳐 사진과 모터를 돌리는 동영상을 첨부합니다. (디카로 세워서 찍었더니 90도 회전에 되어버렸네요, 하지만 보시는데 지상은 없을것같아 그냥 첨부합니다.) 감사합니다.
관리자 답변 NEWTC · 2010-05-19
안녕하세요? 고객님, 저희 뉴티씨 제품을 이용하여 주셔서 감사합니다. 아마도, 그 경우라면 충분한 전류를 공급해 주어야 하는 데, 전류 부족이 아닐까 싶습니다. MS2에 공급해 주는 모터 전원으로 100W 24V SMPS를 사용하시고, 반드시 나름 굵은 선으로 전원을 연결하여 주시기 바랍니다. 또한, 아래 내용도 확인하여 보세요. FAQ의 CS2P, MS2 스테핑 모터 구동부 사용시 확인하실 내용입니다. - 아래 - http://www.newtc.co.kr/board/view.php?id=faq&page=1&sn1=&divpage=1&sn=off&ss=on&sc=on&select_arrange=headnum&desc=asc&no=40 수고하세요. >귀사의 스텝모터9kg 급과 모터드라이버 MS2를 사용하여 LED자상을 > >출력하는 프로젝트를 하는 학생입니다. > >현재 가속테이블을 이용하여 모터 RPM을 600까지 회전시키려 하고 있으나 > >무슨 이유인지 400RPM에서 계속 모터가 죽어버리는 현상이 일어나고 있습니다. > >회전체에서 모터 축과 중심이 맞지 않을까 생각하여 회전체 H/W를 > >전부 재구성 해서 돌려본결과 같은 400RPM에서 퍼짐현상이 > >계속 일어나네요.(아직 흔들림이 조금은 남아 있습니다) > > 가속테이블에서 좀 더 시간을 두며 천천히 올려야 할지, > >아니면 모터가 흔들려서 퍼지는 현상이 일어나는지, > >그것도 아니면 모터가 고장이 난것인지 > >회전체가 무거워서인지...(약 1KG정도 되는것 같습니다.) > >도저히 감이 오지 않네요; > >가속테이블 그래프 캡쳐 사진과 > >모터를 돌리는 동영상을 첨부합니다. > >(디카로 세워서 찍었더니 90도 회전에 되어버렸네요, 하지만 보시는데 > >지상은 없을것같아 그냥 첨부합니다.) > > >감사합니다.
5161 답변완료안녕하세요^^ 김영훈 2010-05-18 1,299
안녕하세요. 지난 13일 용산본사로 4명이서 떼거지로 찾아간 학생들입니다^^; 다름이아니고 RF간의 통신은 확인해주셨었고, 저희도 다시 해보니 정상적으로 작동이 됩니다. 그러나...저희가 AM-128PL을 사용해서 할때는 좀처럼 잘 되지가 않아서요.. 저희 구조가 AM-128PL -----RF (무선구간) RF-----PC 인데요... 코드비전 avr을 사용하여 AM-128PL에 코딩을할때... 어떻게 설정을 해야하는지 자세히 부탁드립니다. 혹시 예제파일이 있다면 어디있는지좀 알려주셨으면 합니다. 제가 예제파일을 찾아보고 실행을 해보긴했는데..전혀 작동을 안해서요.. 꼭 부탁드립니다! 제가 테스트해보고싶은것은 AM-128PL에서 PC로 RF통신을 사용하여 "TEST" 라는 문구 한번 보내보고싶어요 ㅠ.ㅠ
관리자 답변 NEWTC · 2010-05-19
안녕하세요? 고객님, 저희 뉴티씨 제품을 이용하여 주셔서 감사합니다. 우선, 첨부한 예제 소스는 UART 테스트 소스인데, 코드비전으로 짠 소스입니다. 강좌->AVR 강좌에서 컴파일러별 UART 강좌를 참고 바랍니다. 거기에 소스도 있습니다. 하지만, 거기 소스는 통신속도를 9,600bps 로 맞춰 놓은 것이라서, 첨부 소스에 115,200 bps로 변경하여 올려 드렸습니다. RFMOD 를 디폴트 셋팅으로 쓸 경우, 첨부 소스를 AM-128PL에 올려 쓰면 됩니다. 그런데, AM-128PL과 RF 모듈과의 사이에 1:1 케이블로 하세요. 그렇게 하면, RX와 TX가 서로 크로스로 연결되게 됩니다. 반드시 이 부분 확인하세요. 수고하세요. >안녕하세요. >지난 13일 용산본사로 4명이서 떼거지로 찾아간 학생들입니다^^; >다름이아니고 RF간의 통신은 확인해주셨었고, 저희도 다시 해보니 정상적으로 작동이 됩니다. >그러나...저희가 AM-128PL을 사용해서 할때는 좀처럼 잘 되지가 않아서요.. >저희 구조가 AM-128PL -----RF (무선구간) RF-----PC 인데요... >코드비전 avr을 사용하여 AM-128PL에 코딩을할때... >어떻게 설정을 해야하는지 자세히 부탁드립니다. >혹시 예제파일이 있다면 어디있는지좀 알려주셨으면 합니다. >제가 예제파일을 찾아보고 실행을 해보긴했는데..전혀 작동을 안해서요.. >꼭 부탁드립니다! >제가 테스트해보고싶은것은 AM-128PL에서 PC로 RF통신을 사용하여 >"TEST" 라는 문구 한번 보내보고싶어요 ㅠ.ㅠ
5160 답변완료레인센서를 만들었는데요~AT MEGA128에 연결할때,, parkji 2010-05-18 1,453
레인센서를 만들었습니다. 회로는 첨부했어요.^^ㅎ 회로 보시면 저희는 1,2번 엔드게이트만 사용했습니다. 1,2번 엔드게이트 출력인 3번을 병렬로 8,9번에 넣어서 10번으로 출력을 했습니다. 10번 뒤에 출력에 저항과 트랜지스터도 모두 달았는데요.....그 뒤에 LED를 달아서 제대로 동작하는지 아닌지도 확인을 했습니다. 근데 여기서 질문이 있습니다. 저희가 10번 다리에서 바로 출력선을 뽑아서 사용했는데요.. 이 센서로 ATMEGA128에 연결 할 때 방법을 잘 몰라서 문의드립니다. 이 출력선과128사이에 제어 할 수 있는 무언가가 들어가야 하는 것인지..아니면 그 출력선을 바로 포트핀에 꼽아서 사용 할 수 있는 것인지.. 5.8V전원전압을 넣었을 때 출력은 5.66V정도 나왔는데요...전류는 0.41mA가 나오네요.. 혹시 질문이 이해 안되신다면..질문 내용에 추가해야 할 사항 좀 알려주세요.. 죄송합니다 ㅜ_ㅠㅎ
관리자 답변 NEWTC · 2010-05-19
안녕하세요? 제대로 동작하는 것을 확인했다니, 잘 동작한다니 다행입니다. 그래서, 하드웨어는 회로는 자세히 보지 않았습니다. LED를 달아서 확인했다는 것은 LED가 켜지고 꺼지고 하나 봅니다. 즉, 출력이 디지탈인가 봐요. 0 또는 1로 나오나 보죠. 그런데, 1일 때의 그 전압이 5.5V를 넣어서는 것 같은데, 그 경우, 4.5~ 5.5V 사이값 즉, 5V 값으로 만들어 주는 것이 중요합니다. 따라서, 간단하게 끝단에 저항으로 값을 배분해서, 5V를 출력하도록 맞춰 주세요. 그런 후에, GND는 GND 쪽에 그 출력선 5V 출력으로 변경한 것은 포트의 핀 하나를 할당하여 연결한 후, AVR에서 포트 입력으로 받으면 됩니다. 우선, AVR에서 입력 받기 전에 0 또는 1(즉, 0V <--> 5V) 로 변경하는 지 확인하여 보세요. 수고하세요. >레인센서를 만들었습니다. 회로는 첨부했어요.^^ㅎ >회로 보시면 저희는 1,2번 엔드게이트만 사용했습니다. >1,2번 엔드게이트 출력인 3번을 병렬로 8,9번에 넣어서 10번으로 출력을 했습니다. > >10번 뒤에 출력에 저항과 트랜지스터도 모두 달았는데요.....그 뒤에 LED를 달아서 >제대로 동작하는지 아닌지도 확인을 했습니다. >근데 여기서 질문이 있습니다. >저희가 10번 다리에서 바로 출력선을 뽑아서 사용했는데요.. >이 센서로 ATMEGA128에 연결 할 때 방법을 잘 몰라서 문의드립니다. > >이 출력선과128사이에 제어 할 수 있는 무언가가 들어가야 하는 것인지..아니면 >그 출력선을 바로 포트핀에 꼽아서 사용 할 수 있는 것인지.. >5.8V전원전압을 넣었을 때 출력은 5.66V정도 나왔는데요...전류는 0.41mA가 나오네요.. > >혹시 질문이 이해 안되신다면..질문 내용에 추가해야 할 사항 좀 알려주세요.. >죄송합니다 ㅜ_ㅠㅎ
5159 답변완료예제소스질문 황선민 2010-05-18 1,431
가속도 센서 예제 소스에서요 if(RIGHT_BTN == OK){ buf[9] = flexRight = 0xF0; }else{ buf[9] = flexRight = 0x00; } if(LEFT_BTN == OK){ buf[8] = flexLeft = 0xF0; }else{ buf[8] = flexLeft = 0x00; } 이부분이 하는 역할을 잘 모르겠습니다 int putchar(char c) { while((UCSR0A & 0x20)==0x00); //UDR0 empty??? UDR0 = c; return c; } 이 함수가 데이터를 USART를 통해 PC로 전송하는 함수인가요? 만약 그렇다면 buf[0], buf[1]을 먼저 전송하는 이유를 알려주셨으면 합니다 그리고 출력 데이터를 degree로 받으려면 따로 코드를 넣어야 하는거 같은데 맞나요? 마지막으로 자이로 센서와 가속도 센서를 동시에 사용하기 위해서 PORT F의 1, 5, 9, 10번 핀을 자이로 센서의 1,5, 9, 10번핀에 연결하고 가속도 센서의 1번핀을 PORT F의 3번 핀에, 9, 10 번핀을 다른 PORT의 9번 10번 핀과 연결했는데요 이렇게 하면 동시에 사용 가능한건가요? 두 센서 모두 1축의 데이터만이 필요해서 나머지 핀은 연결하지 않았습니다
관리자 답변 NEWTC · 2010-05-18
안녕하세요? 고객님, 저희 뉴티씨 제품을 이용하여 주셔서 감사합니다. 답변하여 드릴께요. >가속도 센서 예제 소스에서요 > > if(RIGHT_BTN == OK){ > buf[9] = flexRight = 0xF0; > }else{ > buf[9] = flexRight = 0x00; > } > if(LEFT_BTN == OK){ > buf[8] = flexLeft = 0xF0; > }else{ > buf[8] = flexLeft = 0x00; > } > >이부분이 하는 역할을 잘 모르겠습니다 ==> 함께 제공하는 윈도 프로그램 중 마우스 관련 프로그램에서 마우스의 버튼으로 인식하게 하기 위한 약속된 코드를 생성합니다. 즉, 마우스 오른쪽 버튼인지 왼쪽 버튼인지 어느것이 눌렸는 지를 확인합니다. > >int putchar(char c) >{ > while((UCSR0A & 0x20)==0x00); //UDR0 empty??? > > UDR0 = c; > return c; >} > >이 함수가 데이터를 USART를 통해 PC로 전송하는 함수인가요? ==> printf 함수의 내장함수입니다. 이 부분을 고쳐넣게 되면, UART1로 전송하게 할 수도 있고, LCD 로 출력하게 만들 수도 있습니다. > >만약 그렇다면 buf[0], buf[1]을 먼저 전송하는 이유를 알려주셨으면 합니다 > ==> 패킷의 시작임을 명확하게 알려주기 위하여 시작이라고 약속된 두 바이트를 전송합니다. >그리고 출력 데이터를 degree로 받으려면 따로 코드를 넣어야 하는거 같은데 맞나요? > ==> 네, 맞습니다. 자료실->기존자료실에서 가속도 라고 쳐서 나오는 데이터 들과 FAQ에서 가속도 센서 관련되서 FAQ에 만들어 놓은 자료를 참고 바랍니다. >마지막으로 자이로 센서와 가속도 센서를 동시에 사용하기 위해서 PORT F의 1, 5, 9, 10번 핀을 > >자이로 센서의 1,5, 9, 10번핀에 연결하고 가속도 센서의 1번핀을 PORT F의 3번 핀에, > >9, 10 번핀을 다른 PORT의 9번 10번 핀과 연결했는데요 이렇게 하면 동시에 사용 가능한건가요? > >두 센서 모두 1축의 데이터만이 필요해서 나머지 핀은 연결하지 않았습니다 ==> 센서마다 한 축만 필요한 경우 네 그렇게 하면 되겠습니다. 수고하세요.
5158 답변완료KR-SL16라인트레이서(반제품)에 프로그래밍이 안되서 글올렸던 사람입니다. 김만석 2010-05-18 1,401
주어진 씨디 안에 있는 라인트레이서 구동 예제소스를 icc avr을 이용해 프로그래밍했는데 프로그래밍은 된거 같은데 포트A에 연결한 4개짜리 센서보드가 전원LED가 들어오지않고 인식도 되지않습니다. 포트B에 연결하면 전원LED도 들어오고 센서도 인식하는 것으로 보입니다. 센서보드 테스트용 예제소스를 프로그래밍해본 결과 여전히 센서보드에 전원LED와 인식이 전혀 되지않습니다. 이 예제소스를 넣었을 때에도 포트B에 센서보드를 연결하면 위와 같은 현상이 일어납니다. 그리고 센서보드 테스트용 예제소스를 ATmega128기준에서 16으로 설정하는 방법, 바뀌어야될 소스내용과 프로그래밍 방법을 알려주시면 감사하겠습니다. 첨부한 파일은 씨디의 라인트레이서 구동 예제소스입니다.
관리자 답변 NEWTC · 2010-05-18
안녕하세요? 고객님, 자료실-> 기존자료실에서 16 이라고 치면 여러가지 소스가 나옵니다. 참고 하면 되겠습니다. 그리고, 128 소스를 16으로 포팅하는 것 관련해서는 일단, 16용으로 마법사를 이용하여 기본 소스를 생성한 이후, 128 소스에서 쓰던 만들어서 쓰는 부분을 가져다가 합쳐야 합니다. 기초가 부족하신 듯 한데, 강좌->동영상 강좌를 참고하면 좋겠습니다. AVR로 라인트레이서 만들기가 있고, 거기에 적외선 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=16 수고하세요. >주어진 씨디 안에 있는 라인트레이서 구동 예제소스를 icc avr을 이용해 >프로그래밍했는데 프로그래밍은 된거 같은데 포트A에 연결한 4개짜리 센서보드가 >전원LED가 들어오지않고 인식도 되지않습니다. >포트B에 연결하면 전원LED도 들어오고 센서도 인식하는 것으로 보입니다. >센서보드 테스트용 예제소스를 프로그래밍해본 결과 여전히 센서보드에 전원LED와 인식이 전혀 되지않습니다. 이 예제소스를 넣었을 때에도 포트B에 센서보드를 연결하면 위와 같은 현상이 일어납니다. >그리고 센서보드 테스트용 예제소스를 ATmega128기준에서 16으로 설정하는 방법, 바뀌어야될 소스내용과 프로그래밍 방법을 알려주시면 감사하겠습니다. > >첨부한 파일은 씨디의 라인트레이서 구동 예제소스입니다.
5157 답변완료질문있습니다! 정혜현 2010-05-18 1,296
#include <iom128v.h> #include <macros.h> #include <stdio.h> #define MOTOR_PORT PORTC #define MOTOR_DDR DDRC #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&=0xEF) #define DIR2_ON (MOTOR_PORT|=0x20) #define DIR2_OFF (MOTOR_PORT&=0xDF) #define ENABLE2_ON (MOTOR_PORT|=0x40) #define ENABLE2_OFF (MOTOR_PORT&=0xBF) 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; } 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 = 0x08; } //ADC initialize // Conversion time: 75uS void adc_init(void) { ADCSRA = 0x00; //disable adc ADMUX = 0x00; //select adc input 0 ACSR = 0x80; //comparator off & 노이즈부분에서 향상시킴 ADCSRA = 0xC6; //11000110 //ADC활성화 및 ADC변환 시작 &단일모드 &64division } //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(); adc_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 putchar(char c) { while (((UCSR0A>>UDRE0)&0x01) == 0) ; UDR0 = c; return c; } int getchar(void) { while ((UCSR0A & 0x80) == 0); return UDR0; } void startConvertion(int ch) { ADCSRA = ADCSRA & 0x3f; //11000110*00111111=00000110 즉 우선 ADC OFF ADMUX = 0x40; //01000000 내부 Avcc를 Reference전압으로 이용 //ADC변환 data왼쪽 정렬하지않음 & ADC0 을 input 핀으로 사용함 ADCSRA = ADCSRA | 0xC0; //00000110+11000000=11000110 -> 다시 ADC켜고 시작 } unsigned int readConvertData(void) { unsigned int temp,cl,ch; while((ADCSRA & 0x10)==0); ADCSRA = ADCSRA | 0x10; cl = ADCL; //변환결과 저장 낮은 ADC7~ADC0 ch = ADCH; //변환 결과저장 ADC9~ADC8 temp = cl + ch*256; // 밑에 그림에서 보듯이 저런 식으로 저장 //출력은 10bit인데 8bit씩 나누어서 저장해야 하므로 ch에 256을 곱해줍니다. ADCSRA = ADCSRA | 0x10; return temp; } void delay(int n) { volatile int i,j; for(i=1;i<n;i++) { for(j=1;j<600;j++); } } void motor(void) { int i,d; MOTOR_DDR = 0xff; // 모터포트 초기화 ENABLE1_ON; DIR1_ON; // Ch1 정방향 DIR2_ON; // Ch2 정방향 for(d=0; d<10; d++){ // 10 단계로 속도 조절 for(i=0; i<1000; i++){ // 100 번 PWM 발생 PWM1_ON; // PWM1 신호 1 PWM2_ON; // PWM2 신호 1 delay(10-d); PWM1_OFF; // PWM1 신호 0 PWM2_OFF; // PWM2 신호 0 delay(d); } } DIR1_OFF; // Ch1 역방향 DIR2_OFF; // Ch2 역방향 for(d=0; d<10; d++){ // 10 단계로 속도 조절 for(i=0; i<1000; i++){ // 100 번 PWM 발생 PWM1_ON; // PWM1 신호 1 PWM2_ON; // PWM2 신호 1 delay(10-d); PWM1_OFF; // PWM1 신호 0 PWM2_OFF; // PWM2 신호 0 delay(d); } } } void main(void) { unsigned int i, temp; init_devices(); PORTF = 0x00; motor(); while(1){ startConvertion(0); temp = readConvertData(); temp = (temp*5*10)/1024; printf("Tem.: %d \\n\\r", temp); motor(); delay(600); } } 이런식으로 소스를 구현하였는데 그랬더니 원래 motor(); 여기를 주석처리해서 온도센서 값만 하는걸로 하면 글씨가 제대로 나오는데 저런식으로 구현하니가 일본어가 나와여..왜이런거죠 ??
관리자 답변 NEWTC · 2010-05-18
안녕하세요? 고객님, 저희 뉴티씨 제품을 이용하여 주셔서 감사합니다. 같은 질문이 있는 데, 아래에 있는 내용을 참고 바랍니다. - 아래 - http://www.newtc.co.kr/board/view.php?id=qna&page=1&sn1=&divpage=3&sn=off&ss=on&sc=off&keyword=slcd&select_arrange=headnum&desc=asc&no=12558 수고하세요. >#include <iom128v.h> >#include <macros.h> >#include <stdio.h> > >#define MOTOR_PORT PORTC >#define MOTOR_DDR DDRC >#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&=0xEF) >#define DIR2_ON (MOTOR_PORT|=0x20) >#define DIR2_OFF (MOTOR_PORT&=0xDF) >#define ENABLE2_ON (MOTOR_PORT|=0x40) >#define ENABLE2_OFF (MOTOR_PORT&=0xBF) > > > >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; >} >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 = 0x08; >} >//ADC initialize >// Conversion time: 75uS >void adc_init(void) >{ > ADCSRA = 0x00; //disable adc > ADMUX = 0x00; //select adc input 0 > ACSR = 0x80; //comparator off & 노이즈부분에서 향상시킴 > ADCSRA = 0xC6; //11000110 >//ADC활성화 및 ADC변환 시작 &단일모드 &64division >} >//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(); > adc_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 putchar(char c) >{ > while (((UCSR0A>>UDRE0)&0x01) == 0) ; > UDR0 = c; > return c; >} >int getchar(void) >{ > while ((UCSR0A & 0x80) == 0); > return UDR0; >} > >void startConvertion(int ch) >{ > ADCSRA = ADCSRA & 0x3f; >//11000110*00111111=00000110 즉 우선 ADC OFF > ADMUX = 0x40; >//01000000 내부 Avcc를 Reference전압으로 이용 >//ADC변환 data왼쪽 정렬하지않음 & ADC0 을 input 핀으로 사용함 > ADCSRA = ADCSRA | 0xC0; >//00000110+11000000=11000110 -> 다시 ADC켜고 시작 >} > >unsigned int readConvertData(void) >{ > unsigned int temp,cl,ch; > while((ADCSRA & 0x10)==0); > ADCSRA = ADCSRA | 0x10; > cl = ADCL; //변환결과 저장 낮은 ADC7~ADC0 > ch = ADCH; //변환 결과저장 ADC9~ADC8 > temp = cl + ch*256; // 밑에 그림에서 보듯이 저런 식으로 저장 >//출력은 10bit인데 8bit씩 나누어서 저장해야 하므로 ch에 256을 곱해줍니다. > ADCSRA = ADCSRA | 0x10; > return temp; >} > >void delay(int n) >{ > volatile int i,j; > for(i=1;i<n;i++) > { > for(j=1;j<600;j++); > } >} > >void motor(void) >{ >int i,d; >MOTOR_DDR = 0xff; // 모터포트 초기화 > ENABLE1_ON; > > DIR1_ON; // Ch1 정방향 > DIR2_ON; // Ch2 정방향 > for(d=0; d<10; d++){ // 10 단계로 속도 조절 > for(i=0; i<1000; i++){ // 100 번 PWM 발생 > PWM1_ON; // PWM1 신호 1 > PWM2_ON; // PWM2 신호 1 > delay(10-d); > PWM1_OFF; // PWM1 신호 0 > PWM2_OFF; // PWM2 신호 0 > delay(d); > } > } > > DIR1_OFF; // Ch1 역방향 > DIR2_OFF; // Ch2 역방향 > for(d=0; d<10; d++){ // 10 단계로 속도 조절 > for(i=0; i<1000; i++){ // 100 번 PWM 발생 > PWM1_ON; // PWM1 신호 1 > PWM2_ON; // PWM2 신호 1 > delay(10-d); > PWM1_OFF; // PWM1 신호 0 > PWM2_OFF; // PWM2 신호 0 > delay(d); > } > } >} > >void main(void) >{ > unsigned int i, temp; > init_devices(); > > PORTF = 0x00; > motor(); > while(1){ > startConvertion(0); > temp = readConvertData(); > temp = (temp*5*10)/1024; > printf("Tem.: %d \\n\\r", temp); > > motor(); > delay(600); > } >} > > > > >이런식으로 소스를 구현하였는데 >그랬더니 원래 motor(); 여기를 주석처리해서 온도센서 값만 하는걸로 하면 글씨가 제대로 나오는데 > > >저런식으로 구현하니가 일본어가 나와여..왜이런거죠 ??
5156 답변완료LED를 포트 어디에 연결해야 하나요? 송지원 2010-05-18 1,382
//ICC-AVR application builder : 2007-12-23 오후 7:09:56 // Target : M128 // Crystal: 16.000Mhz #include <iom128v.h> #include <macros.h> void port_init(void) { PORTA = 0x00; DDRA = 0xff; PORTB = 0x00; DDRB = 0xff; PORTC = 0x00; //m103 output only DDRC = 0xff; PORTD = 0x00; DDRD = 0xff; PORTE = 0x00; DDRE = 0xff; PORTF = 0x00; DDRF = 0xff; PORTG = 0x00; DDRG = 0xff; } //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 = 0x08; } //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 main(void) { volatile char data=0; int i=0; init_devices(); printf("\\n\\r\\n\\nATMega128 테스트 프로그램.\\n\\r"); PORTG = 0x01; while(1){ PORTD = ~PORTD; if(data==0){ printf("i : %d\\n\\r", i); i++; data = 0x01; PORTG = ~PORTG; } PORTA = data; PORTB = data; PORTC = data; PORTD = data; PORTE = data; PORTF = data; data = data << 1; delay(100); } } void delay(int n) { volatile int i,j; for(i=1;i<n;i++) { for(j=1;j<600;j++); } }
관리자 답변 NEWTC · 2010-05-18
안녕하세요? 고객님, 사용하시고자 하는 포트에 연결하면 됩니다. 질문 내용으로 보아서, AVR에 관하여 전혀 기초가 없으신 듯 합니다. 우선, 강좌->AVR 동영상 강좌를 참고 바랍니다. 질문은 자세히 해 주시기 바랍니다. 수고하세요. >//ICC-AVR application builder : 2007-12-23 오후 7:09:56 >// Target : M128 >// Crystal: 16.000Mhz > >#include <iom128v.h> >#include <macros.h> > >void port_init(void) >{ > PORTA = 0x00; > DDRA = 0xff; > PORTB = 0x00; > DDRB = 0xff; > PORTC = 0x00; //m103 output only > DDRC = 0xff; > PORTD = 0x00; > DDRD = 0xff; > PORTE = 0x00; > DDRE = 0xff; > PORTF = 0x00; > DDRF = 0xff; > PORTG = 0x00; > DDRG = 0xff; >} > >//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 = 0x08; >} > >//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 main(void) >{ > volatile char data=0; > int i=0; > init_devices(); > > printf("\\n\\r\\n\\nATMega128 테스트 프로그램.\\n\\r"); > > PORTG = 0x01; > while(1){ > PORTD = ~PORTD; > if(data==0){ > printf("i : %d\\n\\r", i); > i++; > data = 0x01; > PORTG = ~PORTG; > } > PORTA = data; > PORTB = data; > PORTC = data; > PORTD = data; > PORTE = data; > PORTF = data; > > data = data << 1; > delay(100); > } >} > > >void delay(int n) >{ > volatile int i,j; > for(i=1;i<n;i++) > { > for(j=1;j<600;j++); > } >}
5155 답변완료안녕하세요 송지원 2010-05-18 1,394
여기서 제공하는 울트라 소닉과 SFR04초음파센서를 이용한 거리 탐지기 소스를 공부중인데요 제가 이쪽 전공이 아니라서 모르는게 너무 많아요 제가 적는게 어떤 내용인지 좀 알려주세요 ㅠㅠㅠㅠ PORTC = 0X00; //m103 output only 여기서 m103이 머죠? while (((UCSR0A>>UDRE0)&0x01) == 0) ; // UDRE, data register empty UDR0 = c; 이게 무슨 내용인지 좀 알려주세요 ㅎ ASSR = 0x00 //set async mode UCSR0B, UBRR0가 먼지 좀 알려주세요 부탁드립니다 ^-^
관리자 답변 NEWTC · 2010-05-18
안녕하세요 예제코드 제공하지만 코드 분석을 해드릴지 하지않습니다. 아래 링크의 avr 강좌를 보시길 바랍니다. http://newtc.co.kr/board/zboard.php?id=mega128_lecture >PORTC = 0X00; //m103 output only 여기서 m103이 머죠? 예전의 mega103 단종으로 호환으로 사용할경우 c포트는 출력포트로만 사용이 가능합니다. >UDR0 = c; >이게 무슨 내용인지 좀 알려주세요 ㅎ > >ASSR = 0x00 //set async mode > >UCSR0B, UBRR0가 먼지 좀 알려주세요 uart 에 관련된 레지스터입니다. 자세한 내용 업로드된 데이타시트를 다운로드 받아 보시길 바랍니다. 수고하세요 >여기서 제공하는 울트라 소닉과 SFR04초음파센서를 이용한 거리 탐지기 소스를 공부중인데요 >제가 이쪽 전공이 아니라서 모르는게 너무 많아요 >제가 적는게 어떤 내용인지 좀 알려주세요 ㅠㅠㅠㅠ > >PORTC = 0X00; //m103 output only 여기서 m103이 머죠? > >while (((UCSR0A>>UDRE0)&0x01) == 0) ; // UDRE, data register empty > >UDR0 = c; >이게 무슨 내용인지 좀 알려주세요 ㅎ > >ASSR = 0x00 //set async mode > >UCSR0B, UBRR0가 먼지 좀 알려주세요 >부탁드립니다 ^-^ > >
5154 답변완료NK243-01AT 스텝모터 데이터시트 없나여? 정진성 2010-05-18 1,339
얼마전 SE-SM243 스텝모터를 구입 하였는데 대체품으로 NK243으로 받았습니다. 그런데 두제품다 홈페이지에 있는 파일은 간단한 규격들만 나와있고 자세한 데이터 시트가 아니네여 모터에대한 자세한 데이터 시트를 메일로 보내주셨으면 합니다.
관리자 답변 NEWTC · 2010-05-18
안녕하세요 두개가 동일한 스펙입니다. http://www.newtc.co.kr/board/data/pds/스텝모터_SE_SM.pdf 수고하세요 >얼마전 SE-SM243 스텝모터를 구입 하였는데 대체품으로 NK243으로 받았습니다. >그런데 두제품다 홈페이지에 있는 파일은 간단한 규격들만 나와있고 자세한 데이터 >시트가 아니네여 모터에대한 자세한 데이터 시트를 메일로 보내주셨으면 합니다.