자동제어실험 (결과레포트) - PWM을 이용한 DC모터속도제어
- 최초 등록일
- 2012.11.25
- 최종 저작일
- 2010.05
- 3페이지/ 한컴오피스
- 가격 1,500원
소개글
자동제어실험 (결과레포트)
- PWM을 이용한 DC모터속도제어
목차
1. 학번
2. 실험제목
3. 실험목적
4. 실험과정
5. 실험결과
5.1 sw2를 누르면 모터 속도 증가, sw3을 누르면 모터 속도 감소, sw입력이 없으면 속도를 그대로 유지하라. (스위치 입력을 받을 때, Timer를 쓰도록 하시오.)
5.2 POT1(Potentiometer 1)에서 입력을 받아 ADC한 후, 이 값에 따라 모터 속도를 조절하라.
6. 결과분석 및 토의
본문내용
1. 학번 : 0000000000 이름 : ㅇㅇㅇ 실험조 : B-2
2. 실험제목 : PWM을 이용한 DC모터속도제어
3. 실험목적
1. Pulse Width Modulation을 이용하여 모터의 속도를 제어한다.
2. 포트의 제어 방법을 익힌다.
4. 실험과정
먼저 강의자료에있는 기본프로그램을 분석해본뒤 연습문제 프로그램을 작성해서
키트를 이용해서 돌려보고 결과가 제대로나오는지 확인해본다.
5. 실험결과
5.1 sw2를 누르면 모터 속도 증가, sw3을 누르면 모터 속도 감소, sw입력이 없으면 속도를 그대로 유지하라. (스위치 입력을 받을 때, Timer를 쓰도록 하시오.)
<중 략>
코드분석 : 예비 레포트에서는 source code를 짤 때 counter 값을 CCPR1L에 넣어 범위를 나누어 사용했었다. 그래서 초기 속도를 지정하기 위해 초기 counter를 중간 값인 128로 지정해 놨었다. 속도는 제어되었으나 이것은 단지 아날로그값을 받아서 모터를 제어한 것으로 PWM을 사용하지 않았기 때문에 duty cycle을 조절해 모터 속도를 제어하기위해 그래서 위에 소스코드에 나와 있듯이 모터 속도 증가를 위해 sw2입력을 받고 CCPR1L을 하나씩 증가시키고 모터 속도 감소를 위해 sw3입력을 받고 CCPR1L값을 하나씩 감소시켰다. 이 때 CCPR1L값이 254를 넘어갈 경우 254로 고정되게 하였고(즉 254이상 안올라가도록(8비트는 254가 최고이기때문)) 0이하로 내려갈 경우 0으로 고정되게 하였다.
스위치가 한번누를때마다 한번씩 눌리도록 하기위해서 딜레이가 필요했는데 딜레이함수를 쓰는대신 타이머를 이용해서 딜레이역활을 하도록 하였다. 즉 스위치를 누를 때 타이머 오버플로우가 발생하면 그때 한번 CCPR1L값을 증가 or 감소시키는 동작을 한번하고 그이후에는 다시 스위치를 누르기전까지 스위치입력을 받지 않도록 만들었다.
참고 자료
없음