회원가입 ID/PW 찾기
AA
int main(void)
{
// 포트 설정
DDRA = 0xFF;
DDRB = 0x10;
DDRG = 0x03;
DDRF = 0x01;

// 인터럽트 설정 
EICRA = 0x29;
EICRB = 0x30;
EIMSK = 0x4F;
// 모터제어용 PWM 설정
TCCR0 = 0x00;
TCNT0 = 0;
TIMSK = 0x00;
//OCR0 = 200;
// 10MS 타이머 인터럽트 설정
TCCR2 = 0x0B;
TCNT2 = 0;
OCR2 = 156;
TIMSK |= 1<<OCIE2;

sei();
LCD_InitDriver();

while (1)
{
// RPM 값 출력
LCD_CMD(LINE1);
printf("RPM : %2d",RPM);
// PWM 값 출력
LCD_CMD(LINE2);
printf("OCR : %2d",OCR0);
//FRPM 값 출력
LCD_CMD(LINE3);
printf("FRPM : %2d",FRPM);

if (RPM>=FRPM)
OCR0 = 0;
if (RPM<FRPM)
OCR0 = FRPM/RPM*0.2;
}

}

ISR (TIMER2_COMP_vect ) {
// 10MS 인터럽트
static aa=0;

aa++;
if ( aa>=100) {
// 매 1초마다 실행 RPM 계산
RPM = counter*2;
counter = 0;
aa = 0;
}

}
On/Off제어는 할줄 알겠는데 ..
P제어를 할려고 하는데 ..
저기 빨간색으로 칠해져있는 부분을 어떻게 해야할지를 모르겠네요 
아무리 해봐도 ㅠ안되네요 목표값에 가까울수록 속도가 늦춰지고 목표값에 멀어질수록 빨라지도록 할려고 하는데 
고수님들 도와주세요 ㅠ
댓글 2
  • No Profile

    PWM으로 모터의 속도를제어 하려 하시는 건가요?


    PWM의 원리는 이해를 하셨는지요?


    모터에 걸리는 전압은 원래 고정전압이지만 PWM를 사용하게 되면 고정전압이 구형파형테의 짧은 펄스로 바뀌게 됩니다.

    즉 펄스갑(PWM)의 반복적인 출력값의 양에 의해 속도를 제어하게 되는거지요

  • No Profile

    p제어라면

    출력을 ( 입력-출력) 으로 하시면 피드백이 걸리는효과가 있지요...

    여기서 입력이란 기준치에 해당하는 것을 의미합니다.

    즉 ..출력 = 기준치(입력) - 현재출력;   <-- 당연히 현제 출력에 출력이 기준치에 도달하면  P제어기는 작동은 되지 않게 되지요..

    if (RPM>=FRPM)   <--- 이런 것은 의미가 없는 루틴입니다.

    이렇게 프로그램이 되어야 피드백이 걸리는 효과가 있지요.

     

하드웨어 설계 및 개발에 대하여 개발자들이 자유롭게 토론하는 공간입니다.
- Q&A, 자유주재 토론, 관련 정보 공유
- 분야 : 마이크로프로세서 응용, 전기/전자(아날로그/디지털) 회로 설계, C/C++ 프로그래밍, 펌웨어,
         PCB Artwork, 트러블슈팅 등 하드웨어 설계에 관한 전반인 내용
※ 게시글에 맞는 분류를 선택하여 글을 작성해 주시면 쾌적한 사이트 운영에 많은 도움이 됩니다.
※ 하드웨어 인사이트는 회원들간의 거래정보를 게재할 뿐이지, 그 어떤 책임과 의무도 가지지 않습니다.

search
번호 분류 제목 글쓴이 조회 수 날짜
106 펌웨어 & 코딩언어 객체지향프로그래밍4 끼르 332 2017.06.19
105 펌웨어 & 코딩언어 적외선 센서에 대한 질문입니다.3 jaemi2010 339 2016.02.25
104 펌웨어 & 코딩언어 구조체 포인터 캐스팅??1 기다려줄래 315 2015.07.10
103 펌웨어 & 코딩언어 matlab에서 작성된 m file을 c++로 변환하고 싶습니다.1 마린스토리 279 2014.04.28
102 펌웨어 & 코딩언어 HOTC언어로된 MPPT제어 프로그램 Code Vision 으로 변환하기 찰떡젤리 579 2014.04.21
101 펌웨어 & 코딩언어 HOTC 명령어 좀 상세히 알고 싶습니다1 jsp 401 2014.04.03
100 펌웨어 & 코딩언어 HOT피보나치 수열..2 aNitMotD 546 2013.10.30
99 펌웨어 & 코딩언어 HOT1D FEM coding 문제 ..원하는 답이 안나와요 수치해석미쵸 503 2013.09.29
98 펌웨어 & 코딩언어 HOTPIC 16F628A와 CCSC 기반의 프로그래밍 질문입니다. 제발 도와주세요ㅠㅠ 신천동주민 479 2013.09.24
97 펌웨어 & 코딩언어 HOT비주얼베이직 연산 및 줄바꿈에 대한 질문입니다.1 원할머니보고쌈 677 2012.11.07
96 펌웨어 & 코딩언어 c언어 질문인데요..3 하하하하히 391 2012.09.10
95 펌웨어 & 코딩언어 HOTC언어제어3 tbwnaoslwj1 651 2012.08.09
94 펌웨어 & 코딩언어 HOTmatlab 질문입니다.. 소다수1 408 2012.06.06
93 펌웨어 & 코딩언어 HOT-(C언어(함수호출)로 만든 크리스*마스*트리*프로그램)-1 리종순2 1472 2011.12.14
92 펌웨어 & 코딩언어 HOT외부 SRAM 컨트롤하는 것좀 도와주세요.1 쩡무 1374 2011.11.15
91 펌웨어 & 코딩언어 HOTunikey program 수정 jjhuem 1123 2011.10.11
90 펌웨어 & 코딩언어 HOTAtmega128에서 Reset 하는 방법 중 궁금한 점이 있습니다!!!4 공돌이의꿈 3153 2011.06.21
89 펌웨어 & 코딩언어 HOTC언어랑 matlab의 차이?1 약곰탱이 3523 2011.06.02
88 펌웨어 & 코딩언어 HOTVHDL 전가산기 설계 질문입니다. 나트륨 2987 2011.03.26
87 펌웨어 & 코딩언어 HOTC 배열이용해서 엑셀 데이터 끌어오는 방법???2 꼬꼴리 2121 2011.03.24
  • 맹세는 말에 지나지 않고, 말은 바람에 지나지 않는다.
    - 버틀러
  • * 납포인트 정보 *
  • 글 작성 : 3
  • 댓글 작성 : 1
  • 내 글이 추천받음 : 1
저작권법에 위배되는 콘텐츠는 등록 불가하며, 저작물에 대한 권리는 저작자에게 있습니다.
Copyright 2006-2021 © hardwareis.com, All rights reserved.