디시인사이드 갤러리

갤러리 이슈박스, 최근방문 갤러리

갤러리 본문 영역

유리한과 함께하는 AVR로 임베디드 개념쌔우기 - #9. 돌아라~

유리한갤로그로 이동합니다. 2007.08.16 12:43:50
조회 2488 추천 0 댓글 10













한번 삭제 됐다가 알바한테 찌질대서 다시 살려낸 게시물.

지금 또 짤릴까 걱정되서 짤방은 그냥..

(물론 개념없는 듣보잡 찌질이가 신고한걸 무개념 먹튀알바가 확인없이 날린거였겠지만
그래도 바꿨다.)

그리고 인간적으로 관심 1g 좀.. 맆흘수가 어째..






유리한과 함께하는 AVR로 임베디드 개념쌔우기 - #9. 돌아라~


벌써 9번째 강좌 되시겠다.

별로 올린것도 없는데 9번째 강좌라니..

감동이다.

오늘 진도는 모터에 관한 내용이다. 로봇을 만들때는 필수지.

자, 흔히 MCU로 제어하는 모터는 크게 세가지.

DC모터, 스테핑모터, 서보모터 가 있겠다.

d0052452_46c3c593b3476.jpg


<DC기어모터>
d0052452_46c3c5a269f05.jpg
<스테핑모터>
d0052452_46c3c59942a71.jpg
<서보모터>
(사진출처 : 엘레파츠)

사진을 보면 대충 감이 오나?

dc모터는 그냥 미니카에 들어가던 모터. 일명 문방구 모터 되시겠다.

사진에 있는건 기어를 달아놔서 속도는 느려도 힘은 작살인 기어모터 되시겠다.

dc모터의 선은 두가닥이다. 말안해도 알겠지? 전원을 어느 라인에 걸어주느냐에 따라서

회전 방향이 바뀐다.

주의할점은 io포트에 다이렉트로 엮으면 역기전류때문에 칩이 뒈질수가 있다.

포토커플러나 TR, FET같은걸로 전원단을 분리해주는게 좋다.

(간단하게 io포트 출력으로 스위치를 껐다 켰다 하듯이 조절하라는거다.)

이건 스테핑모터도 마찬가지다.

스테핑모터를 보자면 좀 묵직하게 생겼다.

뭐하는 놈인고 하니 나름 정확한 각도제어가 가능 하시겠다.

선을 보면 6가닥으로 되어있다. 전원/접지를 제외하면 남는핀은 네개.

신호선이 네가닥 되시겠다.

A,  B, /A, /B 로 표현하는데.. 번갈아가면서 신호를 주면 돌아간다.

뭐 구동방법은 몇가지가 있긴한데.. 용어는 기억이 안난다.ㅋ

하여간.. 간단히 알아보자.

A B /A /B 순으로 나간다.

1 0 0 0
0 1 0 0
0 0 1 0
0 0 0 1

이렇게 주는 방법이 있지만 좀 부드럽지 못하다는 단점이 있지.

그래서 나온 방식이

1 1 0 0
0 1 1 0
0 0 1 1
1 0 0 1

이런 방식이나

1 0 0 0
1 1 0 0
0 1 0 0
0 1 1 0
0 0 1 0
0 0 1 1
0 0 0 1
1 0 0 1

같은 방식이 있겠고..

1 1 0 0
1 1 1 0
0 1 1 0
0 1 1 1
0 0 1 1
1 0 1 1
1 0 0 1
1 1 0 1

이라던지..

뭐 맘에 드는 방법으로 써라.

간단하게 소스 나가신다.

 1
 2
 3 /*  초단순 스텝모터 드라이빙 함수
 4  *  Step Moter == PORTD
 5  *  A   -   0x01    PD0
 6  *  B   -   0x02    PD1
 7  *  /A  -   0x04    PD2
 8  *  /B  -   0x08    PD3
 9  */
10
11
12 #define     MOT_PORT    PORTD
13 #define     FORWARD     1
14 #define     BACKWARD    -1
15
16 void Step_Mot(char Direction,int Delay_Time)
17 {
18     static signed char Mot_Step=0;
19
20     if(Direction==FORWARD)
21         ++Mot_Step;
22     else if(Direction==BACKWARD)
23         --Mot_Step;
24     else return;
25
26     if(Mot_Step==-1)
27         MOT_Step=3;
28     if(Mot_Step==4)
29         Mot_Step=0;
30
31     MOT_PORT=1<<Mot_Step;
32     delay_ms(Delay_Time);
33
34     return;    
35 }
36 



지금 대충 만들어서 잘 돌아갈지는 장담 못한다.
뭐 이런식으로 돌리면 된다는걸 말해주는것 뿐이다.
딜레이는 필수로 줘야되는데, 안주면 뭐 안돈다. 속도생각해서 알맞게 주도록 하고..
저놈 사용하려면 for(i=0;i<1000;++i) Step_mot(FORWARD,100); 형태로 루프 돌려야 된다. ㅇㅋ?

A -> B - > /A -> /B 까지 한사이클을 돌면 1.8도가 움직이는거야.

180도를 움직이고 싶다면 100번 사이클을 돌려주면 되는거지. 저 함수의 경우에는 100*4 번 돌리면 될테고. ㅇㅋ?

추가하자면, 따로 IC칩을 쓰면 알아서 신호를 돌려주는 놈도 있다. 전류값에 따라 알아서 신호를 준다더라. 써본적 없으니 패스.


자, 이제 서보모터 한개 남았다.

어디다 쓰는 놈이냐? -90~+90도 까지 180도 밖에 안움직인다.

디지털 도어락에도 사용되고

로봇 관절에 사용된다. 자동차 와이퍼도 서보모터 쓰던가?

원운동이지만 직선운동도 가능하게 할수 있다.

이놈은 선이 세개다.

역시 전원 1 접지 1 한개는 신호선.

근데 디지털 신호가 아니라 아날로그 신호다.
(물론 디지털 서보나 rs-232나 485를 지원하는 서보도 있다더라. 써본적 없으니 역시 패스.)

20ms 주기로 0.7~2.3m 까지 PWM 신호를 주면 -90~+90 까지 움직인덴다.
(PWM개념은 초반 강좌에 있을꺼다.)
 
지금은 테스트할 방법이 없으니

역시 발로 짠 소스를 보자.

 1
 2 // 비트 토글
 3 #define     ServoOn     PORTD|=0x01;
 4 #define     ServoOff    PORTD&=~0x01;
 5
 6 ISR(TIMER0_OVF_vect)
 7 {
 8     static unsigned int cnt;
 9     TCNT0 = 0x00;  //계산하기 귀찮아. 하여간 100us.
10     if(cnt<200)
11         cnt++;
12     else cnt=0;
13     if(Servo<cnt)
14         ServoOn;
15     else ServoOff;
16 }
17

주기는 알아서 100us로 맞춰라. 자세한 내용은 강좌 중 delay 부분에 있다.

100us * 200은 20ms 되시겠고..

0.7~2.3이라고 했으니 서보모터를 움직이고 싶을때 Serv0 값을 7~23 까지 주고싶은데로 주면

-90~+90까지 움직이겠지?



오늘 강좌는 이것으로 끝이다.

사족을 붙이자면 dc모터 속도제어도 PWM 방식으로 가능하다.

스텝은 딜레이 따라 속도가 달라지고

서보는 속도조절 그딴거 업ㅂ다



다들 즐거운 하루 되시라

난 휴가 마지막 날이다..ㅠㅠ

그리고 캐생키들

관심좀..ㅠㅠ 굽신굽신

뻘글도 맆흘이 두자린데 이건뭐..


다음번 강좌는 뭘로할까?

초음파센서나 할까?

adc도 해야되나..?

추천 비추천

0

고정닉 0

0

댓글 영역

전체 댓글 0
본문 보기

하단 갤러리 리스트 영역

왼쪽 컨텐츠 영역

갤러리 리스트 영역

갤러리 리스트
번호 제목 글쓴이 작성일 조회 추천
설문 주류 모델하면 매출 폭등시킬 것 같은 아이돌 스타는? 운영자 26/01/05 - -
AD 집에서 즐기는 Fresh 미식회 운영자 25/12/22 - -
공지 프로그래밍 갤러리 이용 안내 [98] 운영자 20.09.28 49202 65
2909970 "이게 CG가 아니라고?" 카이스트가 공개한 소름돋는 영상, 1인칭 변환 발명도둑잡기(118.216) 01:58 10 0
2909968 잊고 지내다 생각나네. 급여 5000만원 못받음 [5] 프갤러(220.79) 01:09 33 0
2909967 35살인데 c++ 지식 조금있는데 게임프로그래머로 취직은 불가능하겠지? [1] 프갤러(119.192) 00:43 30 1
2909965 프로그래머스 3래벨 이거 이력서에 적으면 득임? [7] 프갤러(182.229) 01.08 56 0
2909964 oh my opencode 머가 좋다는 건지 모르겠음 따당갤로그로 이동합니다. 01.08 37 0
2909963 Spynex Reverse Video Search 발명도둑잡기(118.216) 01.08 12 0
2909958 스위치 닌텐도 수리 완료 [2] 넥도리아(220.74) 01.08 40 0
2909957 형들 혹시 이런 프로그램은 없을까 [2] ㅇㅇ(110.12) 01.08 47 0
2909955 건설쪽에서 개발자로 넘어가려고한다.. [5] ㅇㅇ(211.194) 01.08 124 2
2909954 정리해준다 프갤러(39.7) 01.08 28 0
2909952 나중에 로봇 쪽으로 가고 싶은데 C언어 배우는 거 맞나요? [1] ㅇㅇ(115.21) 01.08 38 0
2909950 성능 필요한데서는 ㄹㅇ 매니지드 언어 안씀? [1] 프갤러(220.86) 01.08 49 0
2909948 "이거 모르면 한 달 월급 날린다.. 1분이면 끝나는 전국 찐템 수집법" ㅇㅇ(211.36) 01.08 52 0
2909947 도리도리춤 [4] 배구공(119.202) 01.08 48 0
2909946 정처기 따기 어렵냐? [4] 프갤러(118.235) 01.08 75 0
2909945 교재만 봤을 떄 수제비 vs 흥달썜 ㅈㅈ(125.131) 01.08 16 0
2909944 [대한민국] 출산율 통계 지표 ㅇㅇ(121.172) 01.08 19 0
2909943 관양로 53-1 공용전기 관리비 없어진지 오래 입니다. 넥도리아(220.74) 01.08 22 0
2909941 vscode 에서 갤질하기 [8] 따당갤로그로 이동합니다. 01.08 155 2
2909940 사장놀이 [2] 배구공(119.202) 01.08 48 0
2909939 여기 지대로 망했구나 [4] ㅇㅇ(222.108) 01.08 142 0
2909938 aws -> cloud flare 조언 부탁드려요 형들 [5] 프갤러(210.222) 01.08 110 1
2909937 회사에서 KOSA 경력 인정 안해주네 [4] 프갤러(125.140) 01.08 84 1
2909936 [한국폴리텍대학 대전캠퍼스] 2년제 학위과정 / 하이테크과정 (~ 1/1 [1] 프갤러(121.130) 01.08 48 0
2909935 컴공이 학점 잘 안보는 이유가 컴공에 원론적인 과목이 많아서라는데 [9] ㅇㅇ(59.16) 01.08 116 1
2909934 앞으로 치약은 무조건 2080 써야겟다 야옹아저씨갤로그로 이동합니다. 01.08 65 0
2909932 32살 sky 컴공 학점 좋음 [5] 프갤러(117.111) 01.08 106 1
2909931 수두 VS 수도, 헬름 vs 헴 프갤러(59.10) 01.08 21 0
2909930 딥러닝 텐서플로우vs파이토치 [2] 프갤러(118.235) 01.08 66 1
2909929 남의 나라를 선전포고 없이 침공하는 트황 넥도리아(220.74) 01.08 35 0
2909928 뻑가 뉴스가 다음 타깃 도널드 트럼프 경 미합중국 대통령 넥도리아(220.74) 01.08 23 0
2909925 태연 / 사철나무 / 자러간다~ 한시간 후에.. ㅇㅅㅇ 헤르 미온느갤로그로 이동합니다. 01.08 23 1
2909922 하루 한 번 헤르미온느 찬양 헤르 미온느갤로그로 이동합니다. 01.08 62 0
2909919 에이전트는 언제쯤 좋아질려나 [1] RyuDOG갤로그로 이동합니다. 01.08 44 0
2909918 메모장 디자인 리뉴얼끝났는데 [1] RyuDOG갤로그로 이동합니다. 01.08 53 0
2909915 디씨에 깃헙 링크 올리면 삭제됨? ㅇㅇ(169.212) 01.08 35 0
2909913 드레이스 카마갤로그로 이동합니다. 01.08 38 0
2909912 올해 4학년 좆된 컴공생인데 질문이 있습니다. [1] 프갤러(58.29) 01.08 109 0
2909911 대학생 원드라이브 제발 도와줘.. 급함 프갤러(211.208) 01.08 95 0
2909909 CSS는 시발 공부할 게 왜캐많지 프갤러(125.130) 01.08 60 0
2909905 문재인 시즌2 꿀잼 ㅋㅋㅋㅋ 타이밍뒷통수한방(1.213) 01.07 59 0
2909903 정리해준다 프갤러(39.7) 01.07 35 0
2909901 유데미 강의 들을만하냐? 프갤러(183.101) 01.07 43 0
2909900 안성재는 유승준처럼 내쫒겨야 정신차릴려나 프갤러(39.7) 01.07 43 0
2909898 스타링크 후기ㅇㅅㅇ [4] 프갤로갤로그로 이동합니다. 01.07 108 0
2909895 전산직 << 취업잘됨? [1] 프갤러(39.117) 01.07 105 0
2909894 j팝 들으면서 산책중 [2] 노력갤로그로 이동합니다. 01.07 48 0
2909892 퇴근 하고 개발 공부해야하는데 자꾸 책만 읽네.. [1] ㅇㅇ(61.82) 01.07 67 0
2909891 디시에 글 쓸 때 중국 족보 얼마나 섞여있는지 프갤러(39.7) 01.07 38 2
갤러리 내부 검색
제목+내용게시물 정렬 옵션

오른쪽 컨텐츠 영역

실시간 베스트

1/8

디시미디어

디시이슈

1/2