회원가입 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 = 50;

if(RPM>=FRPM)
OCR0 = 0;

}

}

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

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

}


정말 간단한 것인데 목표값을 지정했을때 목표값보다 훨씬넘어간다음에 멈추는 현상이 있습니다. 어떻게 해야 목표값에더 가깝게 되는지 질문합니다. 그리고 stop하면 속도가 바로 안떨어지고 아주 천천이 떨어집니다. 고수님들 부탁드려요~ 어디를 수정해야할지
댓글 1
  • No Profile

    모터에 직류전원을 어떻게 공급하느냐에 따라 달라집니다

    이유는 잔류전류로 인한건데요 릴레이 전단에 물리적인 스위칭회로가 포함되면 문제를 간단히 해결할 수 있습니다

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

search
번호 분류 제목 글쓴이 조회 수 날짜
6 Digital 회로 설계 RS플립플롭으로 존슨카운터 만들기 hnp109 121 2021.12.03
5 Digital 회로 설계 Reset IC 관련 CPU 문의 드립니다.3 Maa 211 2021.06.28
4 Digital 회로 설계 회로 질문드립니다. -2923 200 2020.12.12
3 Digital 회로 설계 relay 질문드립니다. -4903 153 2020.11.29
2 Digital 회로 설계 잡은 많은 신호가 NOT게이트 통과한다면?1 -3953 157 2020.10.21
1 Digital 회로 설계 논리회로 카르노맵 이렇게 그려도 되나요?1 Qwerty87 236 2020.09.22
  • 어느 사회에서나 유아들에게 우유를 먹이는 것보다 더 좋은 투자는 없다.
    - 처칠
  • * 납포인트 정보 *
  • 글 작성 : 3
  • 댓글 작성 : 1
  • 내 글이 추천받음 : 1
저작권법에 위배되는 콘텐츠는 등록 불가하며, 저작물에 대한 권리는 저작자에게 있습니다.
Copyright 2006-2021 © hardwareis.com, All rights reserved.